<?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>37205</bug_id>
          
          <creation_ts>2010-04-07 06:05:26 -0700</creation_ts>
          <short_desc>Implement CSSOM View matchMedia interface</short_desc>
          <delta_ts>2012-11-28 07:06:34 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt</keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>39220</dependson>
    
    <dependson>43216</dependson>
    
    <dependson>48028</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Luiz Agostini">luiz</reporter>
          <assigned_to name="Luiz Agostini">luiz</assigned_to>
          <cc>abarth</cc>
    
    <cc>annevk</cc>
    
    <cc>ap</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>gustavo</cc>
    
    <cc>hausmann</cc>
    
    <cc>hyatt</cc>
    
    <cc>kenneth</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>marja</cc>
    
    <cc>peter</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tnoleto</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>209595</commentid>
    <comment_count>0</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-04-07 06:05:26 -0700</bug_when>
    <thetext>To add support for ViewModeChangedEvent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209614</commentid>
    <comment_count>1</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-04-07 06:51:18 -0700</bug_when>
    <thetext>it is always good to have more detailed bug description as well as:

* always categorizing it corrently (this one is a enhacement),
* using Qt keywork
* a use case for this feature is REQUIRED for this case I think
* a spec explaining that, if apropriate

if possible, pls do</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209618</commentid>
    <comment_count>2</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-04-07 06:56:10 -0700</bug_when>
    <thetext>&gt; * using Qt keywork

It is not Qt specific, but the blocker takes care of that.

&gt; * a use case for this feature is REQUIRED for this case I think

The use case should be explained in the spec, which Luiz should have added a link to.

Btw, we have an action at the weekly W3C for discussing whether to change the name of the event to *Change* or leave it as *Changed*. I hope that will be figured out tomorrow.

For Qt only bugs please use http://webkit.org/new-qtwebkit-bug for creation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209690</commentid>
    <comment_count>3</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-04-07 10:00:58 -0700</bug_when>
    <thetext>specification can be found at http://dev.w3.org/2006/waf/widgets-vm/vm-interfaces.src.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>210916</commentid>
    <comment_count>4</comment_count>
      <attachid>52987</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-04-09 14:09:05 -0700</bug_when>
    <thetext>Created attachment 52987
patch 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>210971</commentid>
    <comment_count>5</comment_count>
      <attachid>53001</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-04-09 15:30:35 -0700</bug_when>
    <thetext>Created attachment 53001
patch 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>212012</commentid>
    <comment_count>6</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-04-13 11:04:46 -0700</bug_when>
    <thetext>As the specification seems to be changing the implementation needs to wait. Specification independent part of the latest patch was moved to bug 37505 that is now blocking this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222468</commentid>
    <comment_count>7</comment_count>
      <attachid>55394</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-05-07 10:36:36 -0700</bug_when>
    <thetext>Created attachment 55394
patch 3

First draft. Main objective is to receive some feedback and to use this patch as a reference for discussion.

Setting r? to get some feedback on the idea and the implementation.

The consensus on the W3C blah-blah [1] mailing list was that instead of adding individual DOM events for changes to media features, we should instead make it possible to get notified when a user defined media query has changed.

The idea was making it possible to supply a JavaScript function to the styleMedia.matchMedium(...) function.

As no exact IDL was proposed, I came up with one myself which I think fits the use-case, and implemented the feature for WebKit.

The result of my work became the following IDL, for which I would like comments/feedback:

    interface MediaChangeListener {
        void mediaChanged(in boolean queryResult);
    };

    interface StyleMedia {
        readonly attribute DOMString type;
        boolean matchMedium(in DOMString mediaquery, in MediaChangeListener listener);
    };

If listener is supplied to the  matchMedium call then its mediaChanged method will be called every time when then result of the expression given in &apos;mediaquery&apos; changes.
mediaChanged parameter queryResult receives the current value (true/false) of the corresponding mediaquery.

The idea and actual implementation has already gone through some initial feedback rounds with Kenneth Rohde Christiansen</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222473</commentid>
    <comment_count>8</comment_count>
      <attachid>55394</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-05-07 10:46:05 -0700</bug_when>
    <thetext>Comment on attachment 55394
patch 3

I don&apos;t like this idea. You&apos;re forcing the page author to call matchMedium() just to get callbacks about when media queries change. I think we need some new way in CSS to request that events are fired when media queries change, maybe via the CSS OM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222476</commentid>
    <comment_count>9</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-05-07 10:50:24 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 55394 [details])
&gt; I don&apos;t like this idea. You&apos;re forcing the page author to call matchMedium()
&gt; just to get callbacks about when media queries change. I think we need some new
&gt; way in CSS to request that events are fired when media queries change, maybe
&gt; via the CSS OM.

The idea came from dbaron and was discussed on irc with Anne (editor for CSSOM)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222478</commentid>
    <comment_count>10</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-05-07 10:52:30 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 55394 [details])
&gt; I don&apos;t like this idea. You&apos;re forcing the page author to call matchMedium()
&gt; just to get callbacks about when media queries change. I think we need some new
&gt; way in CSS to request that events are fired when media queries change, maybe
&gt; via the CSS OM.

Would you like the idea if there was a separate method for adding the listener? to avoid the first evaluation?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222482</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-07 10:54:05 -0700</bug_when>
    <thetext>Attachment 55394 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/2217025</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222494</commentid>
    <comment_count>12</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-05-07 11:09:31 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; The idea came from dbaron and was discussed on irc with Anne (editor for CSSOM)

I think there needs to be some discussion on www-style</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222495</commentid>
    <comment_count>13</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-05-07 11:12:47 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #9)
&gt; &gt; The idea came from dbaron and was discussed on irc with Anne (editor for CSSOM)
&gt; 
&gt; I think there needs to be some discussion on www-style

OK, I will ask Luiz to bring the discussion there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222496</commentid>
    <comment_count>14</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-05-07 11:15:49 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Created an attachment (id=55394) [details]
&gt; patch 3
&gt; 
&gt; First draft. Main objective is to receive some feedback and to use this patch
&gt; as a reference for discussion.
&gt; 
&gt; Setting r? to get some feedback on the idea and the implementation.
&gt; 
&gt; The consensus on the W3C blah-blah [1] mailing list was that instead of adding
&gt; individual DOM events for changes to media features, we should instead make it
&gt; possible to get notified when a user defined media query has changed.
&gt; 
&gt; The idea was making it possible to supply a JavaScript function to the
&gt; styleMedia.matchMedium(...) function.
&gt; 
&gt; As no exact IDL was proposed, I came up with one myself which I think fits the
&gt; use-case, and implemented the feature for WebKit.
&gt; 
&gt; The result of my work became the following IDL, for which I would like
&gt; comments/feedback:
&gt; 
&gt;     interface MediaChangeListener {
&gt;         void mediaChanged(in boolean queryResult);
&gt;     };
&gt; 
&gt;     interface StyleMedia {
&gt;         readonly attribute DOMString type;
&gt;         boolean matchMedium(in DOMString mediaquery, in MediaChangeListener
&gt; listener);
&gt;     };
&gt; 
&gt; If listener is supplied to the  matchMedium call then its mediaChanged method
&gt; will be called every time when then result of the expression given in
&gt; &apos;mediaquery&apos; changes.
&gt; mediaChanged parameter queryResult receives the current value (true/false) of
&gt; the corresponding mediaquery.
&gt; 
&gt; The idea and actual implementation has already gone through some initial
&gt; feedback rounds with Kenneth Rohde Christiansen

The actual mailing list is:

Extending CSSOM Views matchMedium with callback. public-webapps@w3.org.
http://lists.w3.org/Archives/Public/public-webapps/2010AprJun/0071.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222497</commentid>
    <comment_count>15</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-05-07 11:16:54 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 55394 [details])
&gt; I don&apos;t like this idea. You&apos;re forcing the page author to call matchMedium()
&gt; just to get callbacks about when media queries change. I think we need some new
&gt; way in CSS to request that events are fired when media queries change, maybe
&gt; via the CSS OM.

Do you mean to trigger an event every time one of the media features changes?

Some advantages of the current approach:

1) if you don&apos;t subscribe to any media query, there is no overhead
2) the query itself is cached (MediaList object)
3) with a MediaFeatureChangeEvent, the user would have to implement something similar to what I implemented inside WebCore, with little change of optimization. 
4) the current implemtation is quite simple and can easily be optimized if it proves to be a bottleneck.

Some comment regarding implementation:

To know if a media query changed it is needed to keep its current value so it is needed to evaluate the query when the request for events is received anyway. It makes sense to just put it in matchMedium. 

Listener parameter is optional. If it is not supplied matchMedium behavior is just to return the result of the query.

It is needed to evaluate the queries to check if it has changed. So, as the current value is available at event time it is sent to the user.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222503</commentid>
    <comment_count>16</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-05-07 11:25:40 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; The actual mailing list is:
&gt; 
&gt; Extending CSSOM Views matchMedium with callback. public-webapps@w3.org.
&gt; http://lists.w3.org/Archives/Public/public-webapps/2010AprJun/0071.html

This is general CSSOM feature, not a webapps feature, so www-style is the correct list.

Let&apos;s discuss there, and not in this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222505</commentid>
    <comment_count>17</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-05-07 11:31:15 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (In reply to comment #14)
&gt; &gt; The actual mailing list is:
&gt; &gt; 
&gt; &gt; Extending CSSOM Views matchMedium with callback. public-webapps@w3.org.
&gt; &gt; http://lists.w3.org/Archives/Public/public-webapps/2010AprJun/0071.html
&gt; 
&gt; This is general CSSOM feature, not a webapps feature, so www-style is the
&gt; correct list.
&gt; 
&gt; Let&apos;s discuss there, and not in this bug.

I think that it might make sense to cross post, as the idea comes from the fact that webapp developers needed to react on media features changes such as &quot;(orientation: ...)&quot;, &quot;(view-mode: ...)&quot; etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>232489</commentid>
    <comment_count>18</comment_count>
      <attachid>57489</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-05-31 12:11:14 -0700</bug_when>
    <thetext>Created attachment 57489
test - trying to find help with bindings.

This patch is just a test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>232490</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-31 12:13:15 -0700</bug_when>
    <thetext>Attachment 57489 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebCore/css/StyleMedia.h:33:  Alphabetical sorting problem.  [build/include_order] [4]
WebCore/css/StyleMedia.h:64:  This { should be at the end of the previous line  [whitespace/braces] [4]
WebCore/css/StyleMedia.cpp:117:  One line control clauses should not use braces.  [whitespace/braces] [4]
WebCore/css/StyleMedia.cpp:160:  Missing space after ,  [whitespace/comma] [3]
Total errors found: 4 in 17 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>232495</commentid>
    <comment_count>20</comment_count>
      <attachid>57491</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-05-31 12:37:04 -0700</bug_when>
    <thetext>Created attachment 57491
test - trying to find help with bindings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>232497</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-31 12:42:43 -0700</bug_when>
    <thetext>Attachment 57491 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebCore/css/QueryCallback.h:20:  #ifndef header guard has wrong style, please use: QueryCallback_h  [build/header_guard] [5]
WebCore/css/QueryCallback.h:31:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/css/QueryCallback.h:33:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/css/QueryCallback.h:34:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 4 in 19 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>232510</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-31 13:52:55 -0700</bug_when>
    <thetext>Attachment 57491 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/2768029</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>232874</commentid>
    <comment_count>23</comment_count>
      <attachid>57574</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-06-01 11:38:22 -0700</bug_when>
    <thetext>Created attachment 57574
test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>232903</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-01 12:31:38 -0700</bug_when>
    <thetext>Attachment 57574 did not build on gtk:
Build output: http://webkit-commit-queue.appspot.com/results/2756065</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>232927</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-01 13:24:03 -0700</bug_when>
    <thetext>Attachment 57574 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/2756069</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>232957</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-01 14:33:21 -0700</bug_when>
    <thetext>Attachment 57574 did not build on win:
Build output: http://webkit-commit-queue.appspot.com/results/2784062</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237217</commentid>
    <comment_count>27</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-06-11 18:58:18 -0700</bug_when>
    <thetext>If the matchMedium etc are really going to be renamed, you need to push that on the mailing list. Microsoft have just added matchMedium to their IE9 preview.

If the change goes through, you should start by supplying a patch for the renaming of these existing methods.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237435</commentid>
    <comment_count>28</comment_count>
      <attachid>57574</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-06-12 19:19:21 -0700</bug_when>
    <thetext>Comment on attachment 57574
test

Since the purpose of posting this patch was to get it tested, and it has been, setting review- now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263524</commentid>
    <comment_count>29</comment_count>
      <attachid>64174</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-08-11 17:07:57 -0700</bug_when>
    <thetext>Created attachment 64174
patch 4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263577</commentid>
    <comment_count>30</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-11 20:01:12 -0700</bug_when>
    <thetext>Attachment 64174 did not build on chromium:
Build output: http://queues.webkit.org/results/3728062</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263586</commentid>
    <comment_count>31</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-11 20:54:48 -0700</bug_when>
    <thetext>Attachment 64174 did not build on gtk:
Build output: http://queues.webkit.org/results/3712073</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263690</commentid>
    <comment_count>32</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-12 03:10:05 -0700</bug_when>
    <thetext>Attachment 64174 did not build on win:
Build output: http://queues.webkit.org/results/3752064</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263933</commentid>
    <comment_count>33</comment_count>
      <attachid>64251</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-08-12 13:19:39 -0700</bug_when>
    <thetext>Created attachment 64251
patch 5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263936</commentid>
    <comment_count>34</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-12 13:23:20 -0700</bug_when>
    <thetext>Attachment 64251 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebCore/bindings/v8/V8BooleanCallback.cpp:26:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 1 in 14 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264020</commentid>
    <comment_count>35</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-12 15:14:23 -0700</bug_when>
    <thetext>Attachment 64251 did not build on chromium:
Build output: http://queues.webkit.org/results/3744093</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265767</commentid>
    <comment_count>36</comment_count>
      <attachid>64631</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-08-17 14:30:02 -0700</bug_when>
    <thetext>Created attachment 64631
patch 6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265772</commentid>
    <comment_count>37</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-08-17 14:39:33 -0700</bug_when>
    <thetext>The CSS-WG still hasn&apos;t decided on an API, so I&apos;m not willing to review this yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265836</commentid>
    <comment_count>38</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-17 16:26:20 -0700</bug_when>
    <thetext>Attachment 64631 did not build on gtk:
Build output: http://queues.webkit.org/results/3738313</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265862</commentid>
    <comment_count>39</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-17 17:18:18 -0700</bug_when>
    <thetext>Attachment 64631 did not build on win:
Build output: http://queues.webkit.org/results/3747291</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265978</commentid>
    <comment_count>40</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-08-18 00:42:32 -0700</bug_when>
    <thetext>(In reply to comment #37)
&gt; The CSS-WG still hasn&apos;t decided on an API, so I&apos;m not willing to review this yet.

Is it somehow possible to let Luiz participate in our of your WG calls and discuss this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265992</commentid>
    <comment_count>41</comment_count>
    <who name="Anne van Kesteren">annevk</who>
    <bug_when>2010-08-18 02:01:00 -0700</bug_when>
    <thetext>Discussion happens here: http://lists.w3.org/Archives/Public/www-style/ No telephones involved :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>266101</commentid>
    <comment_count>42</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-08-18 07:41:54 -0700</bug_when>
    <thetext>Most recent proposal:
http://lists.w3.org/Archives/Public/www-style/2010Aug/0343.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267167</commentid>
    <comment_count>43</comment_count>
      <attachid>64934</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-08-20 01:31:50 -0700</bug_when>
    <thetext>Created attachment 64934
implementing most recent specification</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267170</commentid>
    <comment_count>44</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-20 01:37:51 -0700</bug_when>
    <thetext>Attachment 64934 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebCore/css/CSSMediaQuery.cpp:128:  Should have a space between // and comment  [whitespace/comments] [4]
Total errors found: 1 in 30 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267194</commentid>
    <comment_count>45</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-20 04:04:15 -0700</bug_when>
    <thetext>Attachment 64934 did not build on gtk:
Build output: http://queues.webkit.org/results/3756446</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267207</commentid>
    <comment_count>46</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-08-20 04:49:34 -0700</bug_when>
    <thetext>Win EWS always fails to apply the patch if I make changes to WebCore.vcproj/WebCore.vcproj.
Is there any known workaround for this issue?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267210</commentid>
    <comment_count>47</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-08-20 05:01:13 -0700</bug_when>
    <thetext>Adding Eric, he might be able to answer your question</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267238</commentid>
    <comment_count>48</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-20 07:00:10 -0700</bug_when>
    <thetext>I believe the failure to apply is bug 43981.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268571</commentid>
    <comment_count>49</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-08-24 08:47:22 -0700</bug_when>
    <thetext>Can any of the GTK guys look into the GTK build issues? and test the patch locally? It probably needs some work due to your binding system.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268572</commentid>
    <comment_count>50</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-08-24 08:48:55 -0700</bug_when>
    <thetext>Simon, as the patch seems to be pretty final, do you feel like giving it a preliminary review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>271743</commentid>
    <comment_count>51</comment_count>
      <attachid>64934</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-08-30 16:30:36 -0700</bug_when>
    <thetext>Comment on attachment 64934
implementing most recent specification

&gt; WebCore/ChangeLog:23
&gt; +        Preliminar tests in Qt and Safari.
Preliminar =&gt; Preliminary?

&gt; WebCore/ChangeLog:27
&gt; +        No new tests. (OOPS!)
This line will prevent this patch from landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273958</commentid>
    <comment_count>52</comment_count>
      <attachid>66502</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-09-03 08:39:12 -0700</bug_when>
    <thetext>Created attachment 66502
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273967</commentid>
    <comment_count>53</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-03 09:04:13 -0700</bug_when>
    <thetext>Attachment 66502 did not build on mac:
Build output: http://queues.webkit.org/results/3945086</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274164</commentid>
    <comment_count>54</comment_count>
      <attachid>66502</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-03 13:58:30 -0700</bug_when>
    <thetext>Comment on attachment 66502
patch

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

I found this patch very mysterious.  The changes to CodeGeneratorJS don&apos;t seem right.  There&apos;s too much of an assumption that these objects either return bool or void.  Also, passing 1/0 to that help function isn&apos;t terribly enlightening.

&gt; WebCore/bindings/js/JSMediaQueryListListenerCustom.cpp:39
&gt; +namespace WebCore {
&gt; +
&gt; +
Please remove blank line.

&gt; WebCore/bindings/js/JSMediaQueryListListenerCustom.cpp:40
&gt; +static bool hasNoValue(const JSValue value)
const JSValue&amp;    ?

&gt; WebCore/bindings/js/JSMediaQueryListListenerCustom.cpp:47
&gt; +bool JSMediaQueryListListener::isEqual(MediaQueryListListener* other)
&gt; +{
&gt; +    JSMediaQueryListListener* ptr = static_cast&lt;JSMediaQueryListListener*&gt;(other);
How do we know this case is valid?

&gt; WebCore/bindings/js/JSMediaQueryListListenerCustom.cpp:52
&gt; +    if (hasNoValue(m_data-&gt;callback()))
&gt; +        return hasNoValue(ptr-&gt;m_data-&gt;callback());
Abstracting hasNoValue into its own function just obfuscates what&apos;s going on here.

&gt; WebCore/bindings/js/JSMediaQueryListListenerCustom.cpp:55
&gt; +    ExecState* exec = m_data-&gt;globalObject()-&gt;globalExec();
&gt; +    return JSValueIsEqual(toRef(exec), toRef(exec, m_data-&gt;callback()), toRef(exec, ptr-&gt;m_data-&gt;callback()), 0);
Generally, grabbing the exec state like this is a bad idea.  I don&apos;t understand yet what this function is for.  Hopefully I&apos;ll learn later in the patch.

&gt; WebCore/bindings/scripts/CodeGeneratorJS.pm:2165
&gt; +            push(@headerContent, &quot;    virtual &quot; . GetNativeTypeForCallbacks($function-&gt;signature-&gt;type, 0) . &quot; &quot; . $function-&gt;signature-&gt;name . &quot;(&quot;);
Yuck.

&gt; WebCore/bindings/scripts/CodeGeneratorJS.pm:2261
&gt; +            if (GetNativeType($function-&gt;signature-&gt;type) eq &quot;bool&quot;) {
&gt; +                push(@implContent, &quot;        return true;\n\n&quot;);
&gt; +            } else {
&gt; +                push(@implContent, &quot;        return;\n\n&quot;);
&gt; +            }
This seems wrong.  What if there are other types besides bool and void?

&gt; WebCore/bindings/scripts/CodeGeneratorJS.pm:2269
&gt; +            foreach my $param (@params) {
&gt; +                if (!($param-&gt;type eq &quot;boolean&quot;)) {
&gt; +                    push(@implContent, &quot;    ExecState* exec = m_data-&gt;globalObject()-&gt;globalExec();\n&quot;);
&gt; +                    last;
&gt; +                }
&gt; +            }
Why is grabbing the ExecState conditional on whether there&apos;s a boolean parameter?  What if there&apos;s a string parameter?  Would we not need an ExecState in that case?

&gt; WebCore/bindings/scripts/CodeGeneratorV8.pm:2225
&gt; -                push(@args, GetNativeTypeForCallbacks($param-&gt;type) . &quot; &quot; . $param-&gt;name);
&gt; +                push(@args, GetNativeTypeForCallbacks($param-&gt;type, 1) . &quot; &quot; . $param-&gt;name);
Someone who reads this code later is going to have no idea what this 1 means.

&gt; WebCore/css/MediaQueryList.cpp:39
&gt; +PassRefPtr&lt;MediaQueryList&gt; MediaQueryList::create(PassRefPtr&lt;MediaQueryVector&gt; vector, PassRefPtr&lt;MediaList&gt; media, bool matches)
&gt; +{
&gt; +    return adoptRef(new MediaQueryList(vector, media, matches));
&gt; +}
We usually put these in the header.

&gt; WebCore/css/MediaQueryList.cpp:45
&gt; +    , m_changeRound(m_evalRound - 1)
The -1 here is super mysterious.

&gt; WebCore/css/MediaQueryListListener.idl:29
&gt; +        [Custom] boolean isEqual(in MediaQueryListListener other);
I see.  Why do we have this method?  Isn&apos;t JavaScript&apos;s notion of equality sufficient?  Which spec is this from?

&gt; WebCore/css/MediaQueryVector.cpp:103
&gt; +    return new MediaQueryEvaluator(mediaType(), m_frame, rootStyle.get());
Naked new.  Please use adoptPtr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274202</commentid>
    <comment_count>55</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-09-03 14:59:34 -0700</bug_when>
    <thetext>(In reply to comment #54)
&gt; (From update of attachment 66502 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=66502&amp;action=prettypatch
&gt; 
&gt; I found this patch very mysterious.  The changes to CodeGeneratorJS don&apos;t seem right.  There&apos;s too much of an assumption that these objects either return bool or void.  

The previous implementation was putting a COMPILE_ASSERT(false) in the generated header file if the return type was different of boolean. 
I just made a small change to accept void as well.

&gt; Also, passing 1/0 to that help function isn&apos;t terribly enlightening.

That is boolean for Perl. Any suggestions?

&gt; 
&gt; &gt; WebCore/bindings/js/JSMediaQueryListListenerCustom.cpp:39
&gt; &gt; +namespace WebCore {
&gt; &gt; +
&gt; &gt; +
&gt; Please remove blank line.

ok

&gt; 
&gt; &gt; WebCore/bindings/js/JSMediaQueryListListenerCustom.cpp:40
&gt; &gt; +static bool hasNoValue(const JSValue value)
&gt; const JSValue&amp;    ?

sure :) This function will be removed.
 
&gt; &gt; WebCore/bindings/js/JSMediaQueryListListenerCustom.cpp:47
&gt; &gt; +bool JSMediaQueryListListener::isEqual(MediaQueryListListener* other)
&gt; &gt; +{
&gt; &gt; +    JSMediaQueryListListener* ptr = static_cast&lt;JSMediaQueryListListener*&gt;(other);
&gt; How do we know this case is valid?

I should use dynamic_cast instaed.

&gt; 
&gt; &gt; WebCore/bindings/js/JSMediaQueryListListenerCustom.cpp:52
&gt; &gt; +    if (hasNoValue(m_data-&gt;callback()))
&gt; &gt; +        return hasNoValue(ptr-&gt;m_data-&gt;callback());
&gt; Abstracting hasNoValue into its own function just obfuscates what&apos;s going on here.

ok

&gt; 
&gt; &gt; WebCore/bindings/js/JSMediaQueryListListenerCustom.cpp:55
&gt; &gt; +    ExecState* exec = m_data-&gt;globalObject()-&gt;globalExec();
&gt; &gt; +    return JSValueIsEqual(toRef(exec), toRef(exec, m_data-&gt;callback()), toRef(exec, ptr-&gt;m_data-&gt;callback()), 0);
&gt; Generally, grabbing the exec state like this is a bad idea.  I don&apos;t understand yet what this function is for.  Hopefully I&apos;ll learn later in the patch.

It is what is done when calling the listeners (see JSCallbackData::invokeCallback).
The function is for recognizing that a listener is been added more then once and to find which is the listener to remove in removeListener calls.
The problem is that, for example, different instances of class MediaQueryListListener may refer to the same Javascript function (a new MediaQueryListListener instance is created every time methods addListener and removeListener are called from javascript)

&gt; 
&gt; &gt; WebCore/bindings/scripts/CodeGeneratorJS.pm:2165
&gt; &gt; +            push(@headerContent, &quot;    virtual &quot; . GetNativeTypeForCallbacks($function-&gt;signature-&gt;type, 0) . &quot; &quot; . $function-&gt;signature-&gt;name . &quot;(&quot;);
&gt; Yuck.
&gt; 
&gt; &gt; WebCore/bindings/scripts/CodeGeneratorJS.pm:2261
&gt; &gt; +            if (GetNativeType($function-&gt;signature-&gt;type) eq &quot;bool&quot;) {
&gt; &gt; +                push(@implContent, &quot;        return true;\n\n&quot;);
&gt; &gt; +            } else {
&gt; &gt; +                push(@implContent, &quot;        return;\n\n&quot;);
&gt; &gt; +            }
&gt; This seems wrong.  What if there are other types besides bool and void?

There are no other possible types. Other types are ignored in this part of the code. 
Other types are explicitly rejected by putting a COMPILE_ASSERT(false) in the generated header.

&gt; 
&gt; &gt; WebCore/bindings/scripts/CodeGeneratorJS.pm:2269
&gt; &gt; +            foreach my $param (@params) {
&gt; &gt; +                if (!($param-&gt;type eq &quot;boolean&quot;)) {
&gt; &gt; +                    push(@implContent, &quot;    ExecState* exec = m_data-&gt;globalObject()-&gt;globalExec();\n&quot;);
&gt; &gt; +                    last;
&gt; &gt; +                }
&gt; &gt; +            }
&gt; Why is grabbing the ExecState conditional on whether there&apos;s a boolean parameter?  What if there&apos;s a string parameter?  Would we not need an ExecState in that case?

The parameter was boolean in previous specification but it changed for an interface.
The problem was that an unused exec variable would generate a warning that is treated as error in some builds.
As the parameter I am interested on is no longer boolean I will remove this part of the code.

&gt; 
&gt; &gt; WebCore/bindings/scripts/CodeGeneratorV8.pm:2225
&gt; &gt; -                push(@args, GetNativeTypeForCallbacks($param-&gt;type) . &quot; &quot; . $param-&gt;name);
&gt; &gt; +                push(@args, GetNativeTypeForCallbacks($param-&gt;type, 1) . &quot; &quot; . $param-&gt;name);
&gt; Someone who reads this code later is going to have no idea what this 1 means.

I understand. But there is no &quot;true&quot; or &quot;false&quot; in Perl and that is why I used 0 or 1.
How could I make it more clear? Should I create a variable with a meaningful name? I will do this.

&gt; 
&gt; &gt; WebCore/css/MediaQueryList.cpp:39
&gt; &gt; +PassRefPtr&lt;MediaQueryList&gt; MediaQueryList::create(PassRefPtr&lt;MediaQueryVector&gt; vector, PassRefPtr&lt;MediaList&gt; media, bool matches)
&gt; &gt; +{
&gt; &gt; +    return adoptRef(new MediaQueryList(vector, media, matches));
&gt; &gt; +}
&gt; We usually put these in the header.

ok

&gt; 
&gt; &gt; WebCore/css/MediaQueryList.cpp:45
&gt; &gt; +    , m_changeRound(m_evalRound - 1)
&gt; The -1 here is super mysterious.

It just make sure that initial values of m_changeRound and m_evalRound are different.

&gt; 
&gt; &gt; WebCore/css/MediaQueryListListener.idl:29
&gt; &gt; +        [Custom] boolean isEqual(in MediaQueryListListener other);
&gt; I see.  Why do we have this method?  Isn&apos;t JavaScript&apos;s notion of equality sufficient?  Which spec is this from?

We may not be talking about Javascript. But even if it was just about Javascript, how can I know if different instances of class MediaQueryListListener refer to the same Javascript function?
The specification is http://dev.w3.org/csswg/cssom-view/#the-mediaquerylist-interface

&gt; 
&gt; &gt; WebCore/css/MediaQueryVector.cpp:103
&gt; &gt; +    return new MediaQueryEvaluator(mediaType(), m_frame, rootStyle.get());
&gt; Naked new.  Please use adoptPtr.

sure :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276289</commentid>
    <comment_count>56</comment_count>
      <attachid>66993</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-09-08 20:14:15 -0700</bug_when>
    <thetext>Created attachment 66993
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276309</commentid>
    <comment_count>57</comment_count>
      <attachid>66993</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-09-08 22:13:04 -0700</bug_when>
    <thetext>Comment on attachment 66993
patch

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

&gt; WebCore/bindings/scripts/CodeGeneratorJS.pm:2265
&gt; -            push(@implContent, &quot;        return true;\n\n&quot;);
&gt; +            if (GetNativeType($function-&gt;signature-&gt;type) eq &quot;bool&quot;) {
&gt; +                push(@implContent, &quot;        return true;\n\n&quot;);
&gt; +            } else {
&gt; +                push(@implContent, &quot;        return;\n\n&quot;);
&gt; +            }
You need a comment here why this cannot be something else than bool and void.

&gt; WebCore/bindings/scripts/CodeGeneratorJS.pm:2284
&gt; -            push(@implContent, &quot;    return !raisedException;\n&quot;);
&gt; +            if (GetNativeType($function-&gt;signature-&gt;type) eq &quot;bool&quot;) {
&gt; +                push(@implContent, &quot;    return !raisedException;\n&quot;);
&gt; +            }
comment?

&gt; WebCore/css/MediaQueryList.cpp:44
&gt; +    , m_evalRound(m_vector-&gt;evalRound())
Couldn&apos;t a better name for than round be used?

&gt; WebCore/css/MediaQueryList.cpp:45
&gt; +    , m_changeRound(m_evalRound - 1)
There should be a comment about the -1

&gt; WebCore/css/MediaQueryVector.cpp:154
&gt; +        return;
&gt; +    for (size_t i = 0; i &lt; m_listeners.size(); ++i)
&gt; +        m_listeners[i]-&gt;evaluate(evaluator.get());
Make a newline before this &apos;for&apos;

&gt; WebCore/page/DOMWindow.idl:775
&gt; +
&gt; +
&gt; +        MediaQueryList matchMedia(in DOMString query);
Why two newlines here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276338</commentid>
    <comment_count>58</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2010-09-09 00:05:20 -0700</bug_when>
    <thetext>(In reply to comment #49)
&gt; Can any of the GTK guys look into the GTK build issues? and test the patch locally? It probably needs some work due to your binding system.

If you are adding new IDL files that aren&apos;t optional you tell to tell the GObject bindings about it. Just add the new stuff following the pattern in WebCore/bindings/gobject/GNUmakefile.am</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276850</commentid>
    <comment_count>59</comment_count>
      <attachid>67119</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-09-09 16:51:57 -0700</bug_when>
    <thetext>Created attachment 67119
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276882</commentid>
    <comment_count>60</comment_count>
      <attachid>67119</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-09-09 17:45:35 -0700</bug_when>
    <thetext>Comment on attachment 67119
patch

&gt; diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog

&gt; +2010-09-09  Luiz Agostini  &lt;luiz.agostini@openbossa.org&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        Media listeners
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=37205

You should add some high-level comments here about what the new API does.


&gt; +        MediaQueryListLsitener is a callback. Custom methods are needed to implement

Typo &quot;MediaQueryListLsitener&quot;.



&gt; diff --git a/WebCore/bindings/js/JSMediaQueryListListenerCustom.cpp b/WebCore/bindings/js/JSMediaQueryListListenerCustom.cpp


&gt; +bool JSMediaQueryListListener::isEqualTo(MediaQueryListListener* other)
&gt; +{
&gt; +    if (!other || type() != other-&gt;type())
&gt; +        return false;
&gt; +
&gt; +    JSMediaQueryListListener* ptr = static_cast&lt;JSMediaQueryListListener*&gt;(other);

Use a more descriptive name than &quot;ptr&quot;.



&gt; diff --git a/WebCore/css/MediaQueryList.cpp b/WebCore/css/MediaQueryList.cpp
&gt; new file mode 100644
&gt; index 0000000..9752a4f
&gt; --- /dev/null
&gt; +++ b/WebCore/css/MediaQueryList.cpp
&gt; @@ -0,0 +1,87 @@
&gt; +/*
&gt; + * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
&gt; + *
&gt; + * Redistribution and use in source and binary forms, with or without
&gt; + * modification, are permitted provided that the following conditions
&gt; + * are met:
&gt; + * 1. Redistributions of source code must retain the above copyright
&gt; + *    notice, this list of conditions and the following disclaimer.
&gt; + * 2. Redistributions in binary form must reproduce the above copyright
&gt; + *    notice, this list of conditions and the following disclaimer in the
&gt; + *    documentation and/or other materials provided with the distribution.
&gt; + *
&gt; + * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS&apos;&apos; AND ANY
&gt; + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
&gt; + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
&gt; + * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
&gt; + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
&gt; + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
&gt; + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
&gt; + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
&gt; + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
&gt; + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
&gt; + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
&gt; + */
&gt; +
&gt; +#include &quot;config.h&quot;
&gt; +#include &quot;MediaQueryList.h&quot;
&gt; +
&gt; +#include &quot;MediaList.h&quot;
&gt; +#include &quot;MediaQueryEvaluator.h&quot;
&gt; +#include &quot;MediaQueryListListener.h&quot;
&gt; +#include &quot;MediaQueryVector.h&quot;
&gt; +
&gt; +namespace WebCore {
&gt; +
&gt; +PassRefPtr&lt;MediaQueryList&gt; MediaQueryList::create(PassRefPtr&lt;MediaQueryVector&gt; vector, PassRefPtr&lt;MediaList&gt; media, bool matches)
&gt; +{
&gt; +    return adoptRef(new MediaQueryList(vector, media, matches));
&gt; +}
&gt; +
&gt; +MediaQueryList::MediaQueryList(PassRefPtr&lt;MediaQueryVector&gt; vector, PassRefPtr&lt;MediaList&gt; media, bool matches)
&gt; +    : m_vector(vector)
&gt; +    , m_media(media)
&gt; +    , m_evalRound(m_vector-&gt;evalRound())
&gt; +    , m_changeRound(m_evalRound - 1) // m_evalRound and m_changeRound initial values must be different
&gt; +    , m_matches(matches)
&gt; +{
&gt; +}
&gt; +
&gt; +MediaQueryList::~MediaQueryList()
&gt; +{
&gt; +}
&gt; +
&gt; +String MediaQueryList::media() const
&gt; +{
&gt; +    return m_media-&gt;mediaText();
&gt; +}
&gt; +
&gt; +bool MediaQueryList::changed() const
&gt; +{
&gt; +    return m_vector-&gt;evalRound() == m_changeRound;
&gt; +}
&gt; +
&gt; +void MediaQueryList::addListener(PassRefPtr&lt;MediaQueryListListener&gt; listener)
&gt; +{
&gt; +    m_vector-&gt;addListener(listener, this);
&gt; +}
&gt; +
&gt; +void MediaQueryList::removeListener(PassRefPtr&lt;MediaQueryListListener&gt; listener)
&gt; +{
&gt; +    m_vector-&gt;removeListener(listener, this);
&gt; +}
&gt; +
&gt; +void MediaQueryList::evaluate(MediaQueryEvaluator* evaluator)
&gt; +{
&gt; +    if (m_evalRound == m_vector-&gt;evalRound() || !evaluator)
&gt; +        return;
&gt; +    m_evalRound = m_vector-&gt;evalRound();
&gt; +
&gt; +    bool newValue = evaluator-&gt;eval(m_media.get());
&gt; +    if (newValue != m_matches) {
&gt; +        m_matches = newValue;
&gt; +        m_changeRound = m_evalRound;
&gt; +    }
&gt; +}
&gt; +
&gt; +}

&gt; diff --git a/WebCore/css/MediaQueryList.h b/WebCore/css/MediaQueryList.h

&gt; +class MediaQueryList : public RefCounted&lt;MediaQueryList&gt; {

I&apos;d like to see a comment here describing what MediaQueryList is used for.

How does MediaQueryList differ from the existing MediaList, and your MediaQueryVector? We have lots of similarly named classes here, and it&apos;s too hard to keep them all distinct.

&gt; +    int m_evalRound;
&gt; +    int m_changeRound;

I&apos;d like to see a comment here about what these mean.

&gt; +    int m_matches;

or bool?

&gt; diff --git a/WebCore/css/MediaQueryListListener.h b/WebCore/css/MediaQueryListListener.h


&gt; +class MediaQueryList;
&gt; +
&gt; +class MediaQueryListListener : public RefCounted&lt;MediaQueryListListener&gt; {

Another good place for an explanatory comment.

&gt; +public:
&gt; +    enum Type {
&gt; +        JSMediaQueryListListenerType,
&gt; +        V8MediaQueryListListenerType
&gt; +    };

What about native code types? Seems wrong to enumerate these here, but I don&apos;t know what the correct solution is.

&gt; +    virtual ~MediaQueryListListener() {}
&gt; +    virtual void queryChanged(MediaQueryList*) = 0;
&gt; +    virtual int type() = 0;
&gt; +    virtual bool isEqualTo(MediaQueryListListener* other) = 0;
&gt; +
&gt; +protected:
&gt; +};

No need for &apos;protected&apos;.

&gt; diff --git a/WebCore/css/MediaQueryListListener.idl b/WebCore/css/MediaQueryListListener.idl

&gt; +module view {
&gt; +    interface [Callback] MediaQueryListListener {
&gt; +        void queryChanged(in MediaQueryList mql);
&gt; +        [Custom] long type();
&gt; +        [Custom] boolean isEqualTo(in MediaQueryListListener other);
&gt; +    };

I don&apos;t like the need to expose type(). We should talk to a bindings person to figure out how to avoid this.

&gt; diff --git a/WebCore/css/MediaQueryVector.cpp b/WebCore/css/MediaQueryVector.cpp

&gt; +MediaQueryListener::MediaQueryListener(PassRefPtr&lt;MediaQueryListListener&gt; listener, PassRefPtr&lt;MediaQueryList&gt; query)
&gt; +    : m_listener(listener)
&gt; +    , m_query(query)
&gt; +{
&gt; +}

MediaQueryListener should have its own file I think.

&gt; +MediaQueryVector::MediaQueryVector(Frame* frame)

I don&apos;t think this should hold on to a frame; that may break when the page goes into the page cache.
Document would be better I think.

&gt; +void MediaQueryVector::addListener(PassRefPtr&lt;MediaQueryListListener&gt; listener, PassRefPtr&lt;MediaQueryList&gt; query)
&gt; +{
&gt; +    if (m_terminated)
&gt; +        return;
&gt; +
&gt; +    for (size_t i = 0; i &lt; m_listeners.size(); ++i) {
&gt; +        if (m_listeners[i]-&gt;listener()-&gt;isEqualTo(listener.get()) &amp;&amp; m_listeners[i]-&gt;query() == query.get())
&gt; +            return;
&gt; +    }

Would be more efficient to use a sorted hash on the canonical query string.

&gt; diff --git a/WebCore/css/MediaQueryVector.h b/WebCore/css/MediaQueryVector.h

&gt; +class MediaQueryListener {
&gt; +public:
&gt; +    MediaQueryListener(PassRefPtr&lt;MediaQueryListListener&gt;, PassRefPtr&lt;MediaQueryList&gt;);
&gt; +    ~MediaQueryListener();
&gt; +
&gt; +    void evaluate(MediaQueryEvaluator*);
&gt; +
&gt; +    MediaQueryListListener* listener() { return m_listener.get(); }
&gt; +    MediaQueryList* query() { return m_query.get(); }
&gt; +
&gt; +private:
&gt; +    RefPtr&lt;MediaQueryListListener&gt; m_listener;
&gt; +    RefPtr&lt;MediaQueryList&gt; m_query;
&gt; +};
&gt; +

&gt; +class MediaQueryVector : public RefCounted&lt;MediaQueryVector&gt; {
Please add comment explaining the role of this class.

I don&apos;t like the name MediaQueryVector. This is a per-document singleton that handles all &quot;matchMedia&quot; queries, right?
So it should be MediaQueryMatcher or something.

&gt; +private:
&gt; +    MediaQueryVector(Frame*);
&gt; +    PassOwnPtr&lt;MediaQueryEvaluator&gt; prepareEvaluator() const;
&gt; +    String mediaType() const;
&gt; +
&gt; +    Frame* m_frame;
&gt; +    Vector&lt;MediaQueryListener*&gt; m_listeners;

Naively, I&apos;d expect this to have a hashtable that maps queries to listeners. Is there a reason you didn&apos;t implement it that way?

&gt; +    int m_evalRound;

What does this mean?

&gt; +    bool m_terminated;

Why is special termination handling required?

&gt; diff --git a/WebCore/dom/Document.cpp b/WebCore/dom/Document.cpp

&gt; @@ -558,6 +561,16 @@ Document::~Document()
&gt;          m_styleSheets-&gt;documentDestroyed();
&gt;  
&gt;      m_weakReference-&gt;clear();
&gt; +
&gt; +    if (m_mediaQueries)
&gt; +        m_mediaQueries-&gt;terminate();

Why doesn&apos;t this just cause m_mediaQueries to be destroyed, and why can&apos;t m_mediaQueries be an OwnPtr?

&gt; diff --git a/WebCore/page/DOMWindow.h b/WebCore/page/DOMWindow.h


&gt; diff --git a/WebCore/page/DOMWindow.idl b/WebCore/page/DOMWindow.idl

&gt; +        // CSSOM View Module
&gt; +        MediaQueryList matchMedia(in DOMString query);

You should put it up next to styleMedia, and add a comment that styleMedia is deprecated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277294</commentid>
    <comment_count>61</comment_count>
      <attachid>67202</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-09-10 10:54:13 -0700</bug_when>
    <thetext>Created attachment 67202
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277297</commentid>
    <comment_count>62</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-09-10 10:56:22 -0700</bug_when>
    <thetext>(In reply to comment #60)

&gt;
&gt; How does MediaQueryList differ from the existing MediaList, and your MediaQueryVector?

MediaList is the object produced by parsing a media query list string and MediaQueryList is the object returned by window.matchMedia.


&gt; We have lots of similarly named classes here, and it&apos;s too hard to keep them all distinct.

I agree. Maybe we could have a prefix for the classes that are used by the parser. It could be for example CSSMediaQuery, CSSMediaList, CSSMediaQueryExp, ...
I could work on it in a future patch.

&gt;
&gt; &gt; +public:
&gt; &gt; +    enum Type {
&gt; &gt; +        JSMediaQueryListListenerType,
&gt; &gt; +        V8MediaQueryListListenerType
&gt; &gt; +    };
&gt;
&gt; What about native code types? Seems wrong to enumerate these here, but I don&apos;t know what the correct solution is.
&gt;
&gt; &gt; diff --git a/WebCore/css/MediaQueryListListener.idl b/WebCore/css/MediaQueryListListener.idl
&gt;
&gt; &gt; +module view {
&gt; &gt; +    interface [Callback] MediaQueryListListener {
&gt; &gt; +        void queryChanged(in MediaQueryList mql);
&gt; &gt; +        [Custom] long type();
&gt; &gt; +        [Custom] boolean isEqualTo(in MediaQueryListListener other);
&gt; &gt; +    };
&gt;
&gt; I don&apos;t like the need to expose type(). We should talk to a bindings person to figure out how to avoid this.

I am getting convinced that I will need to implement all the bindings by hand instead of reling on code generators, following EventListener example.
But it would be good I could do it in a future patch. For now javascript is working (JS and V8).

Feedback from bindings persons would be very welcome.


&gt; MediaQueryListener should have its own file I think.

It is just a helper class. I made it an inner class of class MediaQueryMatcher


&gt; &gt; +void MediaQueryVector::addListener(PassRefPtr&lt;MediaQueryListListener&gt; listener, PassRefPtr&lt;MediaQueryList&gt; query)
&gt; &gt; +{
&gt; &gt; +    if (m_terminated)
&gt; &gt; +        return;
&gt; &gt; +
&gt; &gt; +    for (size_t i = 0; i &lt; m_listeners.size(); ++i) {
&gt; &gt; +        if (m_listeners[i]-&gt;listener()-&gt;isEqualTo(listener.get()) &amp;&amp; m_listeners[i]-&gt;query() == query.get())
&gt; &gt; +            return;
&gt; &gt; +    }
&gt;
&gt; Would be more efficient to use a sorted hash on the canonical query string.

The canonical query string is not good here because different calls to window.matchMedia will produce different instances of MediaQueryList objects even if the same string is used.
The objective is to relate MediaQueryList objects and MediaQueryListListener objects and to preserve the order in which they have been added to be able to call the listeners in that same order.
I also do not want to have RefPtr&lt;MediaQueryList&gt; in any place other then in this vector&apos;s items.


&gt;
&gt; &gt; +private:
&gt; &gt; +    MediaQueryVector(Frame*);
&gt; &gt; +    PassOwnPtr&lt;MediaQueryEvaluator&gt; prepareEvaluator() const;
&gt; &gt; +    String mediaType() const;
&gt; &gt; +
&gt; &gt; +    Frame* m_frame;
&gt; &gt; +    Vector&lt;MediaQueryListener*&gt; m_listeners;
&gt;
&gt; Naively, I&apos;d expect this to have a hashtable that maps queries to listeners. Is there a reason you didn&apos;t implement it that way?
&gt;
&gt; &gt; +    bool m_terminated;
&gt;
&gt; Why is special termination handling required?
&gt;
&gt; &gt; diff --git a/WebCore/dom/Document.cpp b/WebCore/dom/Document.cpp
&gt;
&gt; &gt; @@ -558,6 +561,16 @@ Document::~Document()
&gt; &gt;          m_styleSheets-&gt;documentDestroyed();
&gt; &gt;
&gt; &gt;      m_weakReference-&gt;clear();
&gt; &gt; +
&gt; &gt; +    if (m_mediaQueries)
&gt; &gt; +        m_mediaQueries-&gt;terminate();
&gt;
&gt; Why doesn&apos;t this just cause m_mediaQueries to be destroyed, and why can&apos;t m_mediaQueries be an OwnPtr?
&gt;

I will try to explain the objects lifecycle as it is implemented:


                                                         MediaQueryListListener
                                                                    ^
                                                                    |
                                                                    |
     Document --------&gt;  MediaQueryMatcher ------------------&gt;  Listener
                                 ^                           *      |
                                 |                                  |
                                 |                                  |
                                 +------  MediaQueryList  &lt;---------+
                                                ^
                                                |
                                                |
                                         JSMediaQueryList

* All arrows in this diagram, except the one between MediaQueryMatcher and Listener,
  are RefPtr&lt;&gt;.


No reference to MediaQueryList instances is kept by class MediaQueryMatcher itself. The reason
is that if MediaQueryList::addListener is not called the only reference to the MediaQueryList
object will be in Javascript and it will be destroyed as soon as the JS object is garbage
collected.

Class MediaQueryList does not keep a list of MediaQueryListListener. It calls
MediaQueryMatcher::addListener every time its addListener method is called, passing the
received MediaQueryListListener object and itself. MediaQueryMatcher::addListener will
then append a new MediaQueryMatcher::Listener to its internal vector, if the pair
MediaQueryListListener x MediaQueryList is not duplicated.

This new Listener object has a reference to the MediaQueryList object, that will keep
it alive to be passed to the callback. If all listeners are removed from that
MediaQueryList object, all Listener instances pointing to that MediaQueryList object will be
destroyed and again the only reference to the query will be in JS.

It may be that a MediaQueryMatcher instance has one or more Listener instances pointing to a
MediaQueryList and this MediaQueryList has a reference to that same MediaQueryMatcher instance,
preventing them from been destroyed (the cycle in the diagram). That is why the
MediaQueryMatcher object cannot be owned by the Document instance and an special termination
handling is required.

Method MediaQueryMatcher::terminate, called by Document just before releasing the
MediaQueryMatcher reference, will remove all references to MediaQueryList objects in
MediaQueryMatcher and will guarantee that no new one will be created. The only references to
MediaQueryList objects will be again in JS. All MediaQueryList objects will be destroyed as soon
as their corresponding JS objects get garbage collected and MediaQueryMatcher will die as soon
as the last MediaQueryList object dies.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277303</commentid>
    <comment_count>63</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-09-10 11:01:18 -0700</bug_when>
    <thetext>(In reply to comment #62)

&gt; I agree. Maybe we could have a prefix for the classes that are used by the parser. It could be for example CSSMediaQuery, CSSMediaList, CSSMediaQueryExp, ...
&gt; I could work on it in a future patch.

Or do it first!

&gt; I am getting convinced that I will need to implement all the bindings by hand instead of reling on code generators, following EventListener example.
&gt; But it would be good I could do it in a future patch. For now javascript is working (JS and V8).

I don&apos;t like incurring technical debt like this. Is it much work to do this from the start?

&gt; &gt; MediaQueryListener should have its own file I think.
&gt; 
&gt; It is just a helper class. I made it an inner class of class MediaQueryMatcher

OK

&gt; I will try to explain the objects lifecycle as it is implemented:
&gt; 
&gt; 
&gt;                                                          MediaQueryListListener
&gt;                                                                     ^
&gt;                                                                     |
&gt;                                                                     |
&gt;      Document --------&gt;  MediaQueryMatcher ------------------&gt;  Listener
&gt;                                  ^                           *      |
&gt;                                  |                                  |
&gt;                                  |                                  |
&gt;                                  +------  MediaQueryList  &lt;---------+
&gt;                                                 ^
&gt;                                                 |
&gt;                                                 |
&gt;                                          JSMediaQueryList
&gt; 
&gt; * All arrows in this diagram, except the one between MediaQueryMatcher and Listener,
&gt;   are RefPtr&lt;&gt;.
&gt; 
&gt; 
&gt; No reference to MediaQueryList instances is kept by class MediaQueryMatcher itself. The reason
&gt; is that if MediaQueryList::addListener is not called the only reference to the MediaQueryList
&gt; object will be in Javascript and it will be destroyed as soon as the JS object is garbage
&gt; collected.
&gt; 
&gt; Class MediaQueryList does not keep a list of MediaQueryListListener. It calls
&gt; MediaQueryMatcher::addListener every time its addListener method is called, passing the
&gt; received MediaQueryListListener object and itself. MediaQueryMatcher::addListener will
&gt; then append a new MediaQueryMatcher::Listener to its internal vector, if the pair
&gt; MediaQueryListListener x MediaQueryList is not duplicated.
&gt; 
&gt; This new Listener object has a reference to the MediaQueryList object, that will keep
&gt; it alive to be passed to the callback. If all listeners are removed from that
&gt; MediaQueryList object, all Listener instances pointing to that MediaQueryList object will be
&gt; destroyed and again the only reference to the query will be in JS.
&gt; 
&gt; It may be that a MediaQueryMatcher instance has one or more Listener instances pointing to a
&gt; MediaQueryList and this MediaQueryList has a reference to that same MediaQueryMatcher instance,
&gt; preventing them from been destroyed (the cycle in the diagram). That is why the
&gt; MediaQueryMatcher object cannot be owned by the Document instance and an special termination
&gt; handling is required.
&gt; 
&gt; Method MediaQueryMatcher::terminate, called by Document just before releasing the
&gt; MediaQueryMatcher reference, will remove all references to MediaQueryList objects in
&gt; MediaQueryMatcher and will guarantee that no new one will be created. The only references to
&gt; MediaQueryList objects will be again in JS. All MediaQueryList objects will be destroyed as soon
&gt; as their corresponding JS objects get garbage collected and MediaQueryMatcher will die as soon
&gt; as the last MediaQueryList object dies.

This would be great as a comment in the code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277327</commentid>
    <comment_count>64</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-09-10 11:35:22 -0700</bug_when>
    <thetext>(In reply to comment #63)
&gt; (In reply to comment #62)
&gt; 
&gt; &gt; I agree. Maybe we could have a prefix for the classes that are used by the parser. It could be for example CSSMediaQuery, CSSMediaList, CSSMediaQueryExp, ...
&gt; &gt; I could work on it in a future patch.
&gt; 
&gt; Or do it first!

Just let me keep focus on this implementation for now :-). I may do it soon.

&gt; 
&gt; &gt; I am getting convinced that I will need to implement all the bindings by hand instead of reling on code generators, following EventListener example.
&gt; &gt; But it would be good I could do it in a future patch. For now javascript is working (JS and V8).
&gt; 
&gt; I don&apos;t like incurring technical debt like this. Is it much work to do this from the start?

I would start working on it immediately. It is just about splitting the patch. I agree that it must be done now but it would be nice to work in smaller patches.
And this latest patch seems to be quite self contained.

&gt; 
&gt; &gt; &gt; MediaQueryListener should have its own file I think.
&gt; &gt; 
&gt; &gt; It is just a helper class. I made it an inner class of class MediaQueryMatcher
&gt; 
&gt; OK
&gt; 
&gt; &gt; I will try to explain the objects lifecycle as it is implemented:
&gt; &gt; 
&gt; &gt; 
&gt; &gt;                                                          MediaQueryListListener
&gt; &gt;                                                                     ^
&gt; &gt;                                                                     |
&gt; &gt;                                                                     |
&gt; &gt;      Document --------&gt;  MediaQueryMatcher ------------------&gt;  Listener
&gt; &gt;                                  ^                           *      |
&gt; &gt;                                  |                                  |
&gt; &gt;                                  |                                  |
&gt; &gt;                                  +------  MediaQueryList  &lt;---------+
&gt; &gt;                                                 ^
&gt; &gt;                                                 |
&gt; &gt;                                                 |
&gt; &gt;                                          JSMediaQueryList
&gt; &gt; 
&gt; &gt; * All arrows in this diagram, except the one between MediaQueryMatcher and Listener,
&gt; &gt;   are RefPtr&lt;&gt;.
&gt; &gt; 
&gt; &gt; 
&gt; &gt; No reference to MediaQueryList instances is kept by class MediaQueryMatcher itself. The reason
&gt; &gt; is that if MediaQueryList::addListener is not called the only reference to the MediaQueryList
&gt; &gt; object will be in Javascript and it will be destroyed as soon as the JS object is garbage
&gt; &gt; collected.
&gt; &gt; 
&gt; &gt; Class MediaQueryList does not keep a list of MediaQueryListListener. It calls
&gt; &gt; MediaQueryMatcher::addListener every time its addListener method is called, passing the
&gt; &gt; received MediaQueryListListener object and itself. MediaQueryMatcher::addListener will
&gt; &gt; then append a new MediaQueryMatcher::Listener to its internal vector, if the pair
&gt; &gt; MediaQueryListListener x MediaQueryList is not duplicated.
&gt; &gt; 
&gt; &gt; This new Listener object has a reference to the MediaQueryList object, that will keep
&gt; &gt; it alive to be passed to the callback. If all listeners are removed from that
&gt; &gt; MediaQueryList object, all Listener instances pointing to that MediaQueryList object will be
&gt; &gt; destroyed and again the only reference to the query will be in JS.
&gt; &gt; 
&gt; &gt; It may be that a MediaQueryMatcher instance has one or more Listener instances pointing to a
&gt; &gt; MediaQueryList and this MediaQueryList has a reference to that same MediaQueryMatcher instance,
&gt; &gt; preventing them from been destroyed (the cycle in the diagram). That is why the
&gt; &gt; MediaQueryMatcher object cannot be owned by the Document instance and an special termination
&gt; &gt; handling is required.
&gt; &gt; 
&gt; &gt; Method MediaQueryMatcher::terminate, called by Document just before releasing the
&gt; &gt; MediaQueryMatcher reference, will remove all references to MediaQueryList objects in
&gt; &gt; MediaQueryMatcher and will guarantee that no new one will be created. The only references to
&gt; &gt; MediaQueryList objects will be again in JS. All MediaQueryList objects will be destroyed as soon
&gt; &gt; as their corresponding JS objects get garbage collected and MediaQueryMatcher will die as soon
&gt; &gt; as the last MediaQueryList object dies.
&gt; 
&gt; This would be great as a comment in the code.

No problem. I will put it in MediaQueryMatcher.h.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277401</commentid>
    <comment_count>65</comment_count>
      <attachid>67227</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-09-10 13:25:40 -0700</bug_when>
    <thetext>Created attachment 67227
patch

windows build system.
Some more comments in source code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279157</commentid>
    <comment_count>66</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-09-14 14:03:59 -0700</bug_when>
    <thetext>Darin, would you mind taking a look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279165</commentid>
    <comment_count>67</comment_count>
      <attachid>67227</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-14 14:14:38 -0700</bug_when>
    <thetext>Comment on attachment 67227
patch

The patch to WebCore.vcproj failed to apply on the Windows EWS bot so this probably won’t work on Windows. Review coming shortly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279195</commentid>
    <comment_count>68</comment_count>
      <attachid>67227</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-14 14:57:46 -0700</bug_when>
    <thetext>Comment on attachment 67227
patch

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

Generally looks ambitious and pretty good. But the V8/JS part of this is taking the wrong approach. An approach we are not taking anywhere else in WebKit that is pretty heavyweight. Please look at ScriptFunctionCall and such.

&gt; LayoutTests/platform/chromium/test_expectations.txt:2498
&gt; +BUG40680 SKIP : fast/media/media-query-list-02.html = FAIL
&gt; +BUG40680 SKIP : fast/media/media-query-list-03.html = FAIL
I don’t get it. Why are we skipping these tests at the same time we are adding them?

&gt; LayoutTests/platform/mac/Skipped:146
&gt; +fast/media/media-query-list-02.html
&gt; +fast/media/media-query-list-03.html
Same question.

&gt; LayoutTests/platform/win/Skipped:854
&gt; +fast/media/media-query-list-02.html
&gt; +fast/media/media-query-list-03.html
Here too. Can we make these work instead of skipping them?

&gt; WebCore/bindings/js/JSMediaQueryListListenerCustom.cpp:30
&gt; +#include &lt;JavaScriptCore/APICast.h&gt;
&gt; +#include &lt;JavaScriptCore/JSValueRef.h&gt;
It’s wrong to be including this here. WebCore doesn’t use the public JavaScriptCore API.

&gt; WebCore/bindings/js/JSMediaQueryListListenerCustom.cpp:55
&gt; +    return JSValueIsEqual(toRef(exec), toRef(exec, m_data-&gt;callback()), toRef(exec, jsListener-&gt;m_data-&gt;callback()), 0);
This should use JSValue::equal if weu’re trying to get the same result as JavaScript &quot;==&quot;. But is that really the right behavior of this? I think this is strange behavior. Unprecedented even. Also, maybe we want &quot;===&quot; instead of &quot;==&quot;?

I also don’t see why we need a special case for the null JSValue. Very surprising. Is there a test case that covers this?

&gt; WebCore/css/MediaQueryList.cpp:64
&gt; +void MediaQueryList::removeListener(PassRefPtr&lt;MediaQueryListListener&gt; listener)
A remove function usually should not take a PassRefPtr. A raw pointer would make more sense.

&gt; WebCore/css/MediaQueryList.cpp:82
&gt; +    m_evalRound = m_matcher-&gt;evalRound();
&gt; +    if (newValue != m_matches) {
&gt; +        m_matches = newValue;
&gt; +        m_changeRound = m_evalRound;
&gt; +    }
The usual WebKit pattern is early return rather than nesting the work inside an if statement.

&gt; WebCore/css/MediaQueryList.h:41
&gt; +/**
We don’t use that &quot;**&quot; thing.

&gt; WebCore/css/MediaQueryList.h:43
&gt; +  The objects of this class are retuned by window.matchMedia. They may be used to
Typo: &quot;retuned&quot;.

&gt; WebCore/css/MediaQueryList.h:52
&gt; +    static PassRefPtr&lt;MediaQueryList&gt; create(PassRefPtr&lt;MediaQueryMatcher&gt;, PassRefPtr&lt;MediaList&gt;, bool);
&gt; +    ~MediaQueryList();
&gt; +    String media() const;
&gt; +    bool matches();
Need a blank line here after the destructor.

Why isn’t matches a cost?

&gt; WebCore/css/MediaQueryList.h:58
&gt; +    bool changed();
This is a very confusing function name. What changed? Changed since when? Should this be const?

&gt; WebCore/css/MediaQueryListListener.h:36
&gt; +  MediaQueryListListener is an abstraction of the callbacks.
No idea what that means.

But also you should not have to have two different types of listener at runtime. We don’t have builds that mix JavaScript and V8. We do not want to use virtual functions just to get to the code from different JavaScript engines.

&gt; WebCore/css/MediaQueryMatcher.cpp:133
&gt; +    for (size_t i = 0; i &lt; m_listeners.size(); ++i) {
&gt; +        if (m_listeners[i]-&gt;listener()-&gt;isEqualTo(listener.get()) &amp;&amp; m_listeners[i]-&gt;query() == query.get())
&gt; +            return;
&gt; +    }
Is this really the needed behavior? Is a listener considered the same based on the JavaScript language &quot;==&quot; operator?

I think the way we’re doing the abstraction of the different script engines here is not good. Given that the need to accommodate both script engines is needed the pattern of classes like ScriptValue should be used, rather than having a custom runtime abstraction here.

&gt; WebCore/css/MediaQueryMatcher.h:101
&gt; +    static PassRefPtr&lt;MediaQueryMatcher&gt; create(Document* doc) { return adoptRef(new MediaQueryMatcher(doc)); }
Please don’t abbreviate document as &quot;doc&quot;.

&gt; WebCore/css/MediaQueryMatcher.h:110
&gt; +    int evalRound() const { return m_evalRound; }
There has to be a better name for this. I don’t think “eval round” is a good term for it.

&gt; WebCore/css/MediaQueryMatcher.h:130
&gt; +private:
No reason to repeat private: here.

&gt; WebCore/dom/Document.h:1319
&gt; +    RefPtr&lt;MediaQueryMatcher&gt; m_mediaQueryMatcher;
Does this need to be owned by each document? Can it instead be global or per-Page?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279684</commentid>
    <comment_count>69</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-09-15 13:48:41 -0700</bug_when>
    <thetext>(In reply to comment #68)
&gt; (From update of attachment 67227 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=67227&amp;action=prettypatch
&gt; 
&gt; Generally looks ambitious and pretty good. But the V8/JS part of this is taking the wrong approach. An approach we are not taking anywhere else in WebKit that is pretty heavyweight. Please look at ScriptFunctionCall and such.

Could you please take a look at bug 43216. It is a preparation to the approach that you are suggesting, if I understood it. I will set review flag on and CC you.

&gt; 
&gt; &gt; LayoutTests/platform/chromium/test_expectations.txt:2498
&gt; &gt; +BUG40680 SKIP : fast/media/media-query-list-02.html = FAIL
&gt; &gt; +BUG40680 SKIP : fast/media/media-query-list-03.html = FAIL
&gt; I don’t get it. Why are we skipping these tests at the same time we are adding them?
&gt; 
&gt; &gt; LayoutTests/platform/mac/Skipped:146
&gt; &gt; +fast/media/media-query-list-02.html
&gt; &gt; +fast/media/media-query-list-03.html
&gt; Same question.
&gt; 
&gt; &gt; LayoutTests/platform/win/Skipped:854
&gt; &gt; +fast/media/media-query-list-02.html
&gt; &gt; +fast/media/media-query-list-03.html
&gt; Here too. Can we make these work instead of skipping them?

These tests are skipped here because they depend on method setViewModeMediaFeature() of LayoutTestController. It has been introduced in bug 37505 and I filed bugs to all main platforms (bug 43277, bug 43279 and bug 43280).
Today it is supported only by Qt and Gtk.

&gt; &gt; WebCore/css/MediaQueryList.cpp:64
&gt; &gt; +void MediaQueryList::removeListener(PassRefPtr&lt;MediaQueryListListener&gt; listener)
&gt; A remove function usually should not take a PassRefPtr. A raw pointer would make more sense.

This is because code generator will pass a PassRefPtr.

&gt; Why isn’t matches a cost?
&gt; 
&gt; &gt; WebCore/css/MediaQueryList.h:58
&gt; &gt; +    bool changed();
&gt; This is a very confusing function name. What changed? Changed since when? Should this be const?

These methods are not const because they try to evaluated the query again if it is outdated. For them to be const I would need to make some fields mutable. Should I do it?

&gt; But also you should not have to have two different types of listener at runtime. We don’t have builds that mix JavaScript and V8. We do not want to use virtual functions just to get to the code from different JavaScript engines.

Yes, but if I understood I may have JS and ObjC objects simultaneously at runtime. In next patch I plan to follow your suggestions regarding JS/V8 and to try to add ObjC listeners.

&gt; 
&gt; &gt; WebCore/css/MediaQueryMatcher.cpp:133
&gt; &gt; +    for (size_t i = 0; i &lt; m_listeners.size(); ++i) {
&gt; &gt; +        if (m_listeners[i]-&gt;listener()-&gt;isEqualTo(listener.get()) &amp;&amp; m_listeners[i]-&gt;query() == query.get())
&gt; &gt; +            return;
&gt; &gt; +    }
&gt; Is this really the needed behavior? Is a listener considered the same based on the JavaScript language &quot;==&quot; operator?

Yes. That is the idea.

&gt; 
&gt; I think the way we’re doing the abstraction of the different script engines here is not good. Given that the need to accommodate both script engines is needed the pattern of classes like ScriptValue should be used, rather than having a custom runtime abstraction here.

It is about ObjC and GObject listeners.

&gt; 
&gt; &gt; WebCore/dom/Document.h:1319
&gt; &gt; +    RefPtr&lt;MediaQueryMatcher&gt; m_mediaQueryMatcher;
&gt; Does this need to be owned by each document? Can it instead be global or per-Page?

Yes, I believe that it needs to be owned by the document.


I plan to submit a patch with a complete different bindings implementation soon. I hope I understood your comments regarding binding.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280981</commentid>
    <comment_count>70</comment_count>
      <attachid>67971</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-09-17 16:40:17 -0700</bug_when>
    <thetext>Created attachment 67971
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280988</commentid>
    <comment_count>71</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-09-17 16:49:56 -0700</bug_when>
    <thetext>I did not set the review flag because of the dependency on bug 43216. All bots would fail.

It seems that it is enough to implement JS bindings at the end.

Darin, I kept the basic abstract class for the listeners because I believe that other bindings may be implemented in future. Am I right or should I remove the abstraction to avoid virtual calls anyway? I tried to follow your suggestions in any other cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283299</commentid>
    <comment_count>72</comment_count>
      <attachid>68456</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-09-22 15:33:49 -0700</bug_when>
    <thetext>Created attachment 68456
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283309</commentid>
    <comment_count>73</comment_count>
      <attachid>68456</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-09-22 15:44:07 -0700</bug_when>
    <thetext>Comment on attachment 68456
patch

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

&gt; WebCore/WebCore.pri:90
&gt; +#    css/MediaQueryListListener.idl \

Why this? No comment?

&gt; WebCore/css/MediaQueryList.cpp:45
&gt; +    , m_changeRound(m_evalRound - 1) // m_evalRound and m_changeRound initial values must be different

Comments should end with a . (dot) :-)

&gt; WebCore/css/MediaQueryList.h:67
&gt; +    int m_evalRound; // indicates if the query has been evaluated after the last style selector change.
&gt; +    int m_changeRound; // used to know if the query has changed in the last style selector change.

And start with capital letter...

&gt; WebCore/css/MediaQueryListListener.h:53
&gt; +    int type() const { return m_type; }

int?

&gt; WebCore/css/MediaQueryMatcher.h:138
&gt; +    int m_evaluationRound; // this value is incremented at style selector changes.

This*

&gt; WebCore/css/MediaQueryMatcher.h:139
&gt; +                           // it is used to avoid evaluating queries more then once

It*

&gt; WebCore/page/DOMWindow.idl:144
&gt; +        readonly attribute StyleMedia styleMedia; // deprecated

Why not remove it? or add a FIXME, like // FIXME: Deprecated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283439</commentid>
    <comment_count>74</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-22 18:31:44 -0700</bug_when>
    <thetext>Sorry I did not have a chance to review yet.

I do not think the abstract base class and use of polymorphism is a good idea. We should not do that kind of thing just because we think we might need it in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287375</commentid>
    <comment_count>75</comment_count>
      <attachid>69310</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-09-29 21:52:46 -0700</bug_when>
    <thetext>Created attachment 69310
patch

Removing listener abstract base class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288828</commentid>
    <comment_count>76</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-10-04 01:23:49 -0700</bug_when>
    <thetext>Darin, would you mind taking a look if you have time?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289716</commentid>
    <comment_count>77</comment_count>
      <attachid>69310</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-10-05 10:23:19 -0700</bug_when>
    <thetext>Comment on attachment 69310
patch

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

Looks good. Still some work to be done I think.

&gt; WebCore/bindings/scripts/CodeGeneratorJS.pm:289
&gt; +    if ($type eq &quot;MediaQueryListListener&quot;) {
&gt; +        $implIncludes{&quot;MediaQueryListListener.h&quot;} = 1;
&gt; +    }

It’s really disappointing that this is necessary. Adding a new type to the bindings generator is a lot of extra work.

Specifically, you need to add test cases to the bindings tests. Take a look at the run-bindings-tests script, the test cases in WebCore/bindings/scripts/test, and the expected test results in the subdirectories of that directory. You’ll need to add test cases, and update the expected test results.

&gt; WebCore/css/MediaQueryList.cpp:44
&gt; +    , m_evalRound(m_matcher-&gt;evaluationRound())

If the full name is evaluationRound, then I suggest m_evaluationRound rather than m_evalRound.

&gt; WebCore/css/MediaQueryList.h:46
&gt; +/*
&gt; +  MediaQueryList interface is specified at http://dev.w3.org/csswg/cssom-view/#the-mediaquerylist-interface
&gt; +  The objects of this class are returned by window.matchMedia. They may be used to
&gt; +  retrieve the current value of the given media query and to add/remove listeners that
&gt; +  will be called whenever the value of the query changes.
&gt; +*/

In the WebKit project we normally use // comments, not /* */ comments, except for the license comment.

&gt; WebCore/css/MediaQueryList.h:50
&gt; +    ~MediaQueryList();

Why do we need to explicitly define the destructor? Did you try with the default constructor.

&gt; WebCore/css/MediaQueryListListener.cpp:33
&gt; +#if USE(JSC)
&gt; +#include &quot;JSMediaQueryList.h&quot;
&gt; +#else
&gt; +#include &quot;V8MediaQueryList.h&quot;
&gt; +#endif

Includes inside an #if normally go in their own paragraph separate from the main one.

&gt; WebCore/css/MediaQueryListListener.cpp:53
&gt; +bool MediaQueryListListener::isEqualTo(ScriptState* state, const MediaQueryListListener* other)
&gt; +{
&gt; +    return other &amp;&amp; other-&gt;m_value.isEqual(state, m_value);
&gt; +}

The use of JavaScript equality to define listener equality is extremely unusual; other listeners use object identity, not object equality, which is both more efficient and never involves running arbitrary JavaScript, while isEqualTo can involve running script. We need test cases covering this, and clarifying that it’s equality and not strict equality. I don’t see coverage in the tests you added.

&gt; WebCore/css/MediaQueryListListener.h:41
&gt; +/*
&gt; +  See http://dev.w3.org/csswg/cssom-view/#the-mediaquerylist-interface
&gt; +*/

Comment should be &quot;//&quot; style.

&gt; WebCore/css/MediaQueryListListener.h:52
&gt; +    MediaQueryListListener(ScriptValue value) : m_value(value) {}

WebKit style is to use a space inside the {}.

&gt; WebCore/css/MediaQueryListListener.idl:33
&gt; +        void queryChanged(in MediaQueryList mql);

Please use the word “list” here rather than “mql”; we use words rather than acronyms when possible.

&gt; WebCore/css/MediaQueryMatcher.cpp:138
&gt; +    for (size_t i = 0; i &lt; m_listeners.size(); ++i) {
&gt; +        if (m_listeners[i]-&gt;listener()-&gt;isEqualTo(exec, listener.get()) &amp;&amp; m_listeners[i]-&gt;query() == query.get())
&gt; +            return;
&gt; +    }

This code can reenter because a JavaScript equality comparison can involve running arbitrary script. We need to add some test cases covering that. If we do this wrong we could end up adding a security vulnerability. I doubt very much that the JavaScript equality rule is a good one.

&gt; WebCore/css/MediaQueryMatcher.h:100
&gt; +/*
&gt; +  MediaQueryMatcher class is responsible for keeping a vector of pairs
&gt; +  MediaQueryList x MediaQueryListListener. It is responsible for evaluating the queries
&gt; +  whenever it is needed and to call the listeners if the corresponding query has changed.
&gt; +  The listeners must be called in the very same order in which they have been added.
&gt; +
&gt; +  Object diagram:
&gt; +
&gt; +
&gt; +                                                         MediaQueryListListener
&gt; +                                                                    ^
&gt; +                                                                    |
&gt; +                                                                    |
&gt; +     Document --------&gt;  MediaQueryMatcher ------------------&gt;  Listener
&gt; +                                 ^                           *      |
&gt; +                                 |                                  |
&gt; +                                 |                                  |
&gt; +                                 +------  MediaQueryList  &lt;---------+
&gt; +                                                ^
&gt; +                                                |
&gt; +                                                |
&gt; +                                         JSMediaQueryList
&gt; +
&gt; +  * All arrows in this diagram, except the one between MediaQueryMatcher and Listener,
&gt; +    are RefPtr&lt;&gt;.
&gt; +
&gt; +  Objects lifecycle:
&gt; +
&gt; +  No reference to MediaQueryList instances is kept by class MediaQueryMatcher itself. The reason
&gt; +  is that if MediaQueryList::addListener is not called the only reference to the MediaQueryList
&gt; +  object will be in Javascript and it will be destroyed as soon as the JS object is garbage
&gt; +  collected.
&gt; +
&gt; +  Class MediaQueryList does not keep a list of MediaQueryListListener. It calls
&gt; +  MediaQueryMatcher::addListener every time its addListener method is called, passing the
&gt; +  received MediaQueryListListener object and itself. MediaQueryMatcher::addListener will
&gt; +  then append a new MediaQueryMatcher::Listener to its internal vector, if the pair
&gt; +  MediaQueryListListener x MediaQueryList is not duplicated.
&gt; +
&gt; +  This new Listener object has a reference to the MediaQueryList object, that will keep
&gt; +  it alive to be passed to the callback. If all listeners are removed from that
&gt; +  MediaQueryList object, all Listener instances pointing to that MediaQueryList object will be
&gt; +  destroyed and again the only reference to the query will be in JS.
&gt; +
&gt; +  It may be that a MediaQueryMatcher instance has one or more Listener instances pointing to a
&gt; +  MediaQueryList and this MediaQueryList has a reference to that same MediaQueryMatcher instance,
&gt; +  preventing them from been destroyed (the cycle in the diagram). That is why the
&gt; +  MediaQueryMatcher object cannot be owned by the Document instance and an special termination
&gt; +  handling is required.
&gt; +
&gt; +  Method MediaQueryMatcher::terminate, called by Document just before releasing the
&gt; +  MediaQueryMatcher reference, will remove all references to MediaQueryList objects in
&gt; +  MediaQueryMatcher and will guarantee that no new one will be created. The only references to
&gt; +  MediaQueryList objects will be again in JS. All MediaQueryList objects will be destroyed as soon
&gt; +  as their corresponding JS objects get garbage collected and MediaQueryMatcher will die as soon
&gt; +  as the last MediaQueryList object dies.
&gt; +*/

There are many who would applaud you for writing extensive documentation. I am concerned that this is a long explanation which may quickly get out of sync with the code. A lot of this is worded in a way that I find confusing, with hypothetical situations that I don’t completely understand.

&gt; WebCore/css/MediaQueryMatcher.h:104
&gt; +    ~MediaQueryMatcher();

Once you change m_listeners, you probably won’t need an explicit destructor declaration.

&gt; WebCore/css/MediaQueryMatcher.h:120
&gt; +        ~Listener();

You don’t need this explicit destructor declaration.

&gt; WebCore/css/MediaQueryMatcher.h:137
&gt; +    Vector&lt;Listener*&gt; m_listeners;

This should be a Vector&lt;OwnPtr&lt;Listener&gt; &gt;. Making it use that type will allow you to remove much of the code.

&gt; WebCore/css/MediaQueryMatcher.h:140
&gt; +                           // and to avoid notifing a change more then once.

This long comment is indented in a way we normally don’t do. Also, I don’t know what “notifing a change” means.

&gt; WebCore/dom/Document.cpp:572
&gt; +    if (m_mediaQueryMatcher)
&gt; +        m_mediaQueryMatcher-&gt;terminate();

I would call this function documentDestroyed rather than terminate.

&gt; WebCore/dom/Document.cpp:2855
&gt; +    if (m_mediaQueryMatcher)
&gt; +        m_mediaQueryMatcher-&gt;evaluate();

This doesn’t seem right to me. I don’t understand why the operation is named evaluate, nor why styleSelectorChanged is the right time to do it. It seems to me we don’t want to do any new evaluation until someone calls matchMedia.

&gt; WebCore/dom/Document.h:203
&gt; +    PassRefPtr&lt;MediaQueryList&gt; matchMedia(const String&amp;);

I think the document class should just have an accessor to return the media query matcher object. There’s no need to have the matchMedia forwarding function here. The code in DOMWindow can handle that part.

&gt; WebCore/page/DOMWindow.idl:144
&gt; +        readonly attribute StyleMedia styleMedia; // FIXME: deprecated

This is a confusing comment. Please don’t write that in the .idl file. If you are saying FIXME, then I presume you are recommending we remove this from WebKit. The comment should explain the circumstances where we would remove it. Simply saying deprecated is far too vague. It doesn’t say who deprecated it or why it wasn’t simply removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296488</commentid>
    <comment_count>78</comment_count>
      <attachid>71215</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-10-19 15:59:47 -0700</bug_when>
    <thetext>Created attachment 71215
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296489</commentid>
    <comment_count>79</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-10-19 16:02:15 -0700</bug_when>
    <thetext>(In reply to comment #77)
&gt; (From update of attachment 69310 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=69310&amp;action=review
&gt;
&gt; Looks good. Still some work to be done I think.
&gt;
&gt; &gt; WebCore/bindings/scripts/CodeGeneratorJS.pm:289
&gt; &gt; +    if ($type eq &quot;MediaQueryListListener&quot;) {
&gt; &gt; +        $implIncludes{&quot;MediaQueryListListener.h&quot;} = 1;
&gt; &gt; +    }
&gt;
&gt; It’s really disappointing that this is necessary. Adding a new type to the bindings generator is a lot of extra work.
&gt;
&gt; Specifically, you need to add test cases to the bindings tests. Take a look at the run-bindings-tests script, the test cases in WebCore/bindings/scripts/test, and the expected test results in the subdirectories of that directory. You’ll need to add test cases, and update the expected test results.

I am a bit confused by this because I have not seen any tests taking care of types that need special handling, like SerializedScriptValue and IDBKey. To add tests here would add several (13) files to this patch, some of them quite big. Could I do that in another patch?

&gt;
&gt; &gt; WebCore/css/MediaQueryMatcher.h:104
&gt; &gt; +    ~MediaQueryMatcher();
&gt;
&gt; Once you change m_listeners, you probably won’t need an explicit destructor declaration.
&gt;
&gt; &gt; WebCore/css/MediaQueryMatcher.h:120
&gt; &gt; +        ~Listener();
&gt;
&gt; You don’t need this explicit destructor declaration.

&gt;
&gt; In the WebKit project we normally use // comments, not /* */ comments, except for the license comment.
&gt;
&gt; &gt; WebCore/css/MediaQueryList.h:50
&gt; &gt; +    ~MediaQueryList();
&gt;
&gt; Why do we need to explicitly define the destructor? Did you try with the default constructor.

I decided to do this way to avoid needing to include files MediaQueryMatcher.h and MediaList.h in this header file.

&gt;
&gt; There are many who would applaud you for writing extensive documentation. I am concerned that this is a long explanation which may quickly get out of sync with the code. A lot of this is worded in a way that I find confusing, with hypothetical situations that I don’t completely understand.

I agree. At some point the explanation would be needed in the review process, I think, but I am happy to remove it from the code

&gt;
&gt; &gt; WebCore/dom/Document.cpp:2855
&gt; &gt; +    if (m_mediaQueryMatcher)
&gt; &gt; +        m_mediaQueryMatcher-&gt;evaluate();
&gt;
&gt; This doesn’t seem right to me. I don’t understand why the operation is named evaluate, nor why styleSelectorChanged is the right time to do it. It seems to me we don’t want to do any new evaluation until someone calls matchMedia.

The name is really bad and I renamed it to styleSelectorChanged.
Every time the Document::styleSelectorChanged runs all the queries are evaluated and if the result of any of them has changed the corresponding listener is called.

&gt;
&gt; &gt; WebCore/css/MediaQueryListListener.cpp:53
&gt; &gt; +bool MediaQueryListListener::isEqualTo(ScriptState* state, const MediaQueryListListener* other)
&gt; &gt; +{
&gt; &gt; +    return other &amp;&amp; other-&gt;m_value.isEqual(state, m_value);
&gt; &gt; +}
&gt;
&gt; The use of JavaScript equality to define listener equality is extremely unusual; other listeners use object identity, not object equality, which is both more efficient and never involves running arbitrary JavaScript, while isEqualTo can involve running script. We need test cases covering this, and clarifying that it’s equality and not strict equality. I don’t see coverage in the tests you added.
&gt;
&gt; &gt; WebCore/css/MediaQueryMatcher.cpp:138
&gt; &gt; +    for (size_t i = 0; i &lt; m_listeners.size(); ++i) {
&gt; &gt; +        if (m_listeners[i]-&gt;listener()-&gt;isEqualTo(exec, listener.get()) &amp;&amp; m_listeners[i]-&gt;query() == query.get())
&gt; &gt; +            return;
&gt; &gt; +    }
&gt;
&gt; This code can reenter because a JavaScript equality comparison can involve running arbitrary script. We need to add some test cases covering that. If we do this wrong we could end up adding a security vulnerability. I doubt very much that the JavaScript equality rule is a good one.

What I need is to compare javascript functions provided by the script and not MediaQueryListener  objects, because a MediaQueryListener object is created every time matchMedia is called from the script.
If the same javascript function is passed to matchMedia twice, two MediaQueryListener objects will be created. What I want is to consider those objects equal, otherwise the same callback could be registered more then once for the same query.
I think that the same is done for event listeners.
Every time a listener is added or removed it is compared to all other listeners.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296490</commentid>
    <comment_count>80</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-19 16:02:26 -0700</bug_when>
    <thetext>Attachment 71215 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebCore/css/MediaQueryListListener.cpp:27:  You should add a blank line after implementation file&apos;s own header.  [build/include_order] [4]
Total errors found: 1 in 39 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296933</commentid>
    <comment_count>81</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-10-20 12:28:18 -0700</bug_when>
    <thetext>(In reply to comment #79)
&gt; (In reply to comment #77)
&gt; &gt; Specifically, you need to add test cases to the bindings tests. Take a look at the run-bindings-tests script, the test cases in WebCore/bindings/scripts/test, and the expected test results in the subdirectories of that directory. You’ll need to add test cases, and update the expected test results.
&gt; 
&gt; I am a bit confused by this because I have not seen any tests taking care of types that need special handling, like SerializedScriptValue and IDBKey.

I did not review those patches. It is a bad idea to add special types without adding the tests.

&gt; To add tests here would add several (13) files to this patch, some of them quite big. Could I do that in another patch?

Maybe. If your concern is patch size, then another way to do it is to add the test cases first, check in the test cases and the old “wrong” results, and then include only the changes to the test results in this patch.

&gt; &gt; There are many who would applaud you for writing extensive documentation. I am concerned that this is a long explanation which may quickly get out of sync with the code. A lot of this is worded in a way that I find confusing, with hypothetical situations that I don’t completely understand.
&gt; 
&gt; I agree. At some point the explanation would be needed in the review process, I think, but I am happy to remove it from the code

There are certainly some explanations that should be in comments. The trick is to find a way to explain things with comments small enough that people will read them.

&gt; Every time the Document::styleSelectorChanged runs all the queries are evaluated and if the result of any of them has changed the corresponding listener is called.

That seems inefficient and seems like it will result in multiple calls to the listener when there could be only a single call.

&gt; &gt; &gt; WebCore/css/MediaQueryListListener.cpp:53
&gt; &gt; &gt; +bool MediaQueryListListener::isEqualTo(ScriptState* state, const MediaQueryListListener* other)
&gt; &gt; &gt; +{
&gt; &gt; &gt; +    return other &amp;&amp; other-&gt;m_value.isEqual(state, m_value);
&gt; &gt; &gt; +}
&gt; &gt;
&gt; &gt; The use of JavaScript equality to define listener equality is extremely unusual; other listeners use object identity, not object equality, which is both more efficient and never involves running arbitrary JavaScript, while isEqualTo can involve running script. We need test cases covering this, and clarifying that it’s equality and not strict equality. I don’t see coverage in the tests you added.
&gt; &gt;
&gt; &gt; &gt; WebCore/css/MediaQueryMatcher.cpp:138
&gt; &gt; &gt; +    for (size_t i = 0; i &lt; m_listeners.size(); ++i) {
&gt; &gt; &gt; +        if (m_listeners[i]-&gt;listener()-&gt;isEqualTo(exec, listener.get()) &amp;&amp; m_listeners[i]-&gt;query() == query.get())
&gt; &gt; &gt; +            return;
&gt; &gt; &gt; +    }
&gt; &gt;
&gt; &gt; This code can reenter because a JavaScript equality comparison can involve running arbitrary script. We need to add some test cases covering that. If we do this wrong we could end up adding a security vulnerability. I doubt very much that the JavaScript equality rule is a good one.
&gt; 
&gt; What I need is to compare javascript functions provided by the script and not MediaQueryListener objects, because a MediaQueryListener object is created every time matchMedia is called from the script.
&gt; If the same javascript function is passed to matchMedia twice, two MediaQueryListener objects will be created. What I want is to consider those objects equal, otherwise the same callback could be registered more then once for the same query.
&gt; I think that the same is done for event listeners.
&gt; Every time a listener is added or removed it is compared to all other listeners.

When JavaScript event listeners are compared, the identity of the JavaScript function is checked, not the equality. See in JSEventListener::operator== that it compares m_jsFunction with the other m_jsFunction. This does not use JavaScript equality checking. It is wrong to use the JavaScript notion of equality here.

If the same JavaScript function is provided twice, then you will have the same object, not two objects that are equal.

It’s fine for MediaQueryListener to provide a comparison function that checks the equality of the script value contained inside it. But isEqual should not be involved.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296934</commentid>
    <comment_count>82</comment_count>
      <attachid>71215</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-10-20 12:30:20 -0700</bug_when>
    <thetext>Comment on attachment 71215
patch

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

&gt; WebCore/css/MediaQueryListListener.cpp:52
&gt; +    return other &amp;&amp; other-&gt;m_value.isEqual(state, m_value);

The use of isEqual here is wrong. It should just be:

    return other &amp;&amp; m_value == other-&gt;m_value;

And you need test cases covering this. Calling out to arbitrary JavaScript here as isEqual would can create major problems including security vulnerabilities.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297161</commentid>
    <comment_count>83</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-10-20 17:19:40 -0700</bug_when>
    <thetext>(In reply to comment #81)
&gt; (In reply to comment #79)
&gt; &gt; (In reply to comment #77)
&gt; &gt; &gt; Specifically, you need to add test cases to the bindings tests. Take a look at the run-bindings-tests script, the test cases in WebCore/bindings/scripts/test, and the expected test results in the subdirectories of that directory. You’ll need to add test cases, and update the expected test results.
&gt; &gt;
&gt; &gt; I am a bit confused by this because I have not seen any tests taking care of types that need special handling, like SerializedScriptValue and IDBKey.
&gt;
&gt; I did not review those patches. It is a bad idea to add special types without adding the tests.
&gt;
&gt; &gt; To add tests here would add several (13) files to this patch, some of them quite big. Could I do that in another patch?
&gt;
&gt; Maybe. If your concern is patch size, then another way to do it is to add the test cases first, check in the test cases and the old “wrong” results, and then include only the changes to the test results in this patch.
&gt;

Good!! This way the effects of the changes in generators will be clear. I created that patch. Please see bug 48028.

&gt; &gt; Every time the Document::styleSelectorChanged runs all the queries are evaluated and if the result of any of them has changed the corresponding listener is called.
&gt;
&gt; That seems inefficient and seems like it will result in multiple calls to the listener when there could be only a single call.

I took care to make sure that the pair (query, listener) will be registered only once and that each query will be evaluated only once even if it apears in more then one pair (query, listener).
This way I believe that a listener will be called more then once only if it is associated to more then one query. As the query is the parameter of the listener, each time a listener is called it receives a different parameter (its associated query).

&gt;
&gt; &gt; &gt; &gt; WebCore/css/MediaQueryListListener.cpp:53
&gt; &gt; &gt; &gt; +bool MediaQueryListListener::isEqualTo(ScriptState* state, const MediaQueryListListener* other)
&gt; &gt; &gt; &gt; +{
&gt; &gt; &gt; &gt; +    return other &amp;&amp; other-&gt;m_value.isEqual(state, m_value);
&gt; &gt; &gt; &gt; +}
&gt; &gt; &gt;
&gt; &gt; &gt; The use of JavaScript equality to define listener equality is extremely unusual; other listeners use object identity, not object equality, which is both more efficient and never involves running arbitrary JavaScript, while isEqualTo can involve running script. We need test cases covering this, and clarifying that it’s equality and not strict equality. I don’t see coverage in the tests you added.
&gt; &gt; &gt;
&gt; &gt; &gt; &gt; WebCore/css/MediaQueryMatcher.cpp:138
&gt; &gt; &gt; &gt; +    for (size_t i = 0; i &lt; m_listeners.size(); ++i) {
&gt; &gt; &gt; &gt; +        if (m_listeners[i]-&gt;listener()-&gt;isEqualTo(exec, listener.get()) &amp;&amp; m_listeners[i]-&gt;query() == query.get())
&gt; &gt; &gt; &gt; +            return;
&gt; &gt; &gt; &gt; +    }
&gt; &gt; &gt;
&gt; &gt; &gt; This code can reenter because a JavaScript equality comparison can involve running arbitrary script. We need to add some test cases covering that. If we do this wrong we could end up adding a security vulnerability. I doubt very much that the JavaScript equality rule is a good one.
&gt; &gt;
&gt; &gt; What I need is to compare javascript functions provided by the script and not MediaQueryListener objects, because a MediaQueryListener object is created every time matchMedia is called from the script.
&gt; &gt; If the same javascript function is passed to matchMedia twice, two MediaQueryListener objects will be created. What I want is to consider those objects equal, otherwise the same callback could be registered more then once for the same query.
&gt; &gt; I think that the same is done for event listeners.
&gt; &gt; Every time a listener is added or removed it is compared to all other listeners.
&gt;
&gt; When JavaScript event listeners are compared, the identity of the JavaScript function is checked, not the equality. See in JSEventListener::operator== that it compares m_jsFunction with the other m_jsFunction. This does not use JavaScript equality checking. It is wrong to use the JavaScript notion of equality here.
&gt;
&gt; If the same JavaScript function is provided twice, then you will have the same object, not two objects that are equal.
&gt;
&gt; It’s fine for MediaQueryListener to provide a comparison function that checks the equality of the script value contained inside it. But isEqual should not be involved.

Now I see what you mean. I did not see it before because JS version of ScriptValue did not have an operator==. I added it and now I am using it for comparing MediaQueryListeners.
I also added a method isFunction to ScriptValue to avoid registering not callable javascript values as listeners.


The new patch now will depend on the other (bug 48028). I am working in new layout tests and will submit a new patch soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297742</commentid>
    <comment_count>84</comment_count>
      <attachid>71513</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-10-21 17:28:25 -0700</bug_when>
    <thetext>Created attachment 71513
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299751</commentid>
    <comment_count>85</comment_count>
      <attachid>71932</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-10-26 13:04:23 -0700</bug_when>
    <thetext>Created attachment 71932
patch

rebase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>306819</commentid>
    <comment_count>86</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-11-09 09:01:37 -0800</bug_when>
    <thetext>Hey Darin, did I finally understand the problem with the callback comparisons? Would you mind taking a look at the last patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308723</commentid>
    <comment_count>87</comment_count>
      <attachid>73769</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-11-12 13:05:53 -0800</bug_when>
    <thetext>Created attachment 73769
patch

Previous patch was getting old. Rebasing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311599</commentid>
    <comment_count>88</comment_count>
      <attachid>73769</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-11-19 12:00:47 -0800</bug_when>
    <thetext>Comment on attachment 73769
patch

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

This looks great. I don’t understand the round trip from document to frame and then back to document, and I’m worried that it might even possibly create a security bug. So please fix at least that.

&gt; WebCore/bindings/js/ScriptValue.cpp:91
&gt; +    CallType callType = getCallData(m_value, callData);
&gt; +    return callType != CallTypeNone;

No need for the callType local variable here.

&gt; WebCore/bindings/js/ScriptValue.h:61
&gt; +    bool isFunction() const;
&gt; +    bool operator==(const ScriptValue&amp; other) const { return m_value == other.m_value; }

A little strange to group these two functions together in a paragraph. isFunction seems to belong with isObject, while operator== perhaps should be off on its own.

&gt; WebCore/bindings/scripts/CodeGeneratorGObject.pm:217
&gt; +            $param-&gt;type eq &quot;MediaQueryListListener&quot;) {

Always a bad sign when we have to special case a new type.

&gt; WebCore/css/MediaQueryList.cpp:96
&gt; +        setMatches(m_matcher-&gt;evaluate(m_media.get()));

I don’t think the factoring here is quite optimal. I’d name the helper function updateMatches instead of setMatches, and have it do the m_matcher-&gt;evaluate call as well.

&gt; WebCore/css/MediaQueryList.h:29
&gt; +#include &lt;wtf/PassRefPtr.h&gt;

No need to include the PassRefPtr header here. Instead you could include Forward.h.

&gt; WebCore/css/MediaQueryList.h:32
&gt; +#include &lt;wtf/text/WTFString.h&gt;

No need to include the WTFString header here. Instead you could include Forward.h.

&gt; WebCore/css/MediaQueryList.h:44
&gt; +//  MediaQueryList interface is specified at http://dev.w3.org/csswg/cssom-view/#the-mediaquerylist-interface
&gt; +//  The objects of this class are returned by window.matchMedia. They may be used to
&gt; +//  retrieve the current value of the given media query and to add/remove listeners that
&gt; +//  will be called whenever the value of the query changes.

No need for the double spaces at the beginnings of lines here.

&gt; WebCore/css/MediaQueryList.h:66
&gt; +    int m_evaluationRound; // Indicates if the query has been evaluated after the last style selector change.
&gt; +    int m_changeRound; // Used to know if the query has changed in the last style selector change.

I think unsigned would be better than int.

&gt; WebCore/css/MediaQueryListListener.h:39
&gt; +//  See http://dev.w3.org/csswg/cssom-view/#the-mediaquerylist-interface

No need for double spaces here.

&gt; WebCore/css/MediaQueryListListener.h:50
&gt; +    bool isEqualTo(const MediaQueryListListener*);

Why not use operator== for this instead of a named function?

&gt; WebCore/css/MediaQueryMatcher.cpp:90
&gt; +    Document* document = m_document-&gt;frame()-&gt;document();
&gt; +    if (!document)
&gt; +        return 0;

No need to null check the document. All frames have documents.

I don’t understand why you go from the document to the frame and then back to the document.

&gt; WebCore/css/MediaQueryMatcher.cpp:126
&gt; +    if (!m_document || !m_document-&gt;frame())
&gt; +        return;

Why check frame against 0? Seems unnecessary.

&gt; WebCore/css/MediaQueryMatcher.cpp:138
&gt; +    if (!m_document || !m_document-&gt;frame())

Why check frame against 0? Seems unnecessary.

&gt; WebCore/css/MediaQueryMatcher.h:34
&gt; +#include &quot;ScriptState.h&quot;
&gt; +
&gt; +#include &lt;wtf/PassRefPtr.h&gt;
&gt; +#include &lt;wtf/RefCounted.h&gt;
&gt; +#include &lt;wtf/Vector.h&gt;
&gt; +#include &lt;wtf/text/WTFString.h&gt;

Includes go in a single paragraph, not two.

No need to include PassRefPtr.h and WTFString.h. Instead you should use Forward.h.

&gt; WebCore/css/MediaQueryMatcher.h:47
&gt; +//  MediaQueryMatcher class is responsible for keeping a vector of pairs
&gt; +//  MediaQueryList x MediaQueryListListener. It is responsible for evaluating the queries
&gt; +//  whenever it is needed and to call the listeners if the corresponding query has changed.
&gt; +// The listeners must be called in the very same order in which they have been added.

No need for those extra spaces at the beginning of each comment line.

&gt; WebCore/css/MediaQueryMatcher.h:49
&gt; +class MediaQueryMatcher : public RefCounted&lt;MediaQueryMatcher&gt; {

This seems to be an object with a single owner, the document. And nothing else seems to use a RefPtr on it. Accordingly, I suggest making it be a single-owner object, not a reference counted one.

&gt; WebCore/css/MediaQueryMatcher.h:60
&gt; +    int evaluationRound() const { return m_evaluationRound; }

I think unsigned would be better than int. To be pedantic, unsigned has well defined overflowing semantics, whereas int does not.

&gt; WebCore/css/MediaQueryMatcher.h:90
&gt; +    int m_evaluationRound;

I think unsigned would be better than int.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311897</commentid>
    <comment_count>89</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-11-20 00:33:54 -0800</bug_when>
    <thetext>(In reply to comment #88)
&gt; (From update of attachment 73769 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=73769&amp;action=review

&gt; 
&gt; &gt; WebCore/css/MediaQueryMatcher.h:49
&gt; &gt; +class MediaQueryMatcher : public RefCounted&lt;MediaQueryMatcher&gt; {
&gt; 
&gt; This seems to be an object with a single owner, the document. And nothing else seems to use a RefPtr on it. Accordingly, I suggest making it be a single-owner object, not a reference counted one.

Actually MediaQueryList uses a RefPtr on MediaQueryMatcher.

&gt; 
&gt; &gt; WebCore/css/MediaQueryMatcher.h:60
&gt; &gt; +    int evaluationRound() const { return m_evaluationRound; }
&gt; 
&gt; I think unsigned would be better than int. To be pedantic, unsigned has well defined overflowing semantics, whereas int does not.

Comments and information are always welcome.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311899</commentid>
    <comment_count>90</comment_count>
      <attachid>74474</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-11-20 01:00:55 -0800</bug_when>
    <thetext>Created attachment 74474
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312351</commentid>
    <comment_count>91</comment_count>
      <attachid>74474</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-11-22 08:41:02 -0800</bug_when>
    <thetext>Comment on attachment 74474
patch

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

&gt; WebCore/ChangeLog:54
&gt; +        publishes methods matchMedia but for page cache to work properly  the reference to the

Stray space here between in “ properly  the reference”.

&gt; WebCore/css/MediaQueryList.cpp:96
&gt; +        setMatches(m_matcher-&gt;evaluate(m_media.get()));

A comment I made last time: I don’t think the factoring here is quite optimal. I’d name the helper function updateMatches instead of setMatches, and have it do the m_matcher-&gt;evaluate call as well.

&gt; WebCore/css/MediaQueryList.h:54
&gt; +    void addListener(PassRefPtr&lt;MediaQueryListListener&gt;);
&gt; +    void removeListener(PassRefPtr&lt;MediaQueryListListener&gt;);

I understand why the addListener function takes a PassRefPtr, but the removeListener function should not.

&gt; WebCore/css/MediaQueryMatcher.cpp:125
&gt; +        if (*m_listeners[i]-&gt;listener() == *listener.get() &amp;&amp; m_listeners[i]-&gt;query() == query.get())

Do we need to say get() here? I think we could remove both calls to get() and the code would still compile and work fine.

&gt; WebCore/css/MediaQueryMatcher.cpp:137
&gt; +    for (int i = m_listeners.size() - 1; i &gt;= 0; --i) {

Why iterate backwards? This unnecessarily truncates a size_t to an int, and since we always stop as soon as we find what we are looking for, there is no benefit to iterating in a certain direction.

&gt; WebCore/css/MediaQueryMatcher.cpp:138
&gt; +        if (*m_listeners[i]-&gt;listener() == *listener.get() &amp;&amp; m_listeners[i]-&gt;query() == query.get()) {

Do we need to say get() here? I think we could remove both calls to get() and the code would still compile and work fine.

&gt; WebCore/css/MediaQueryMatcher.cpp:149
&gt; +    ScriptState* exec = mainWorldScriptState(m_document-&gt;frame());

I don’t think “exec” is good name. How about “state” or “scriptState”?

&gt; WebCore/css/MediaQueryMatcher.h:54
&gt; +    void addListener(PassRefPtr&lt;MediaQueryListListener&gt;, PassRefPtr&lt;MediaQueryList&gt;);
&gt; +    void removeListener(PassRefPtr&lt;MediaQueryListListener&gt;, PassRefPtr&lt;MediaQueryList&gt;);

I understand why the addListener command takes PassRefPtr, but the removeListener command should not.

&gt; WebCore/page/DOMWindow.idl:146
&gt; +        // styleMedia has been removed from the cssom-view specification.
&gt;          readonly attribute StyleMedia styleMedia;
&gt; +        MediaQueryList matchMedia(in DOMString query);

That comment is only about styleMedia, so it should be paragraphed with styleMedia and not with matchMedia; you could put matchMedia first in the file and add a blank line.

Also, “cssom-view specification” doesn’t look quite right in all lower case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312444</commentid>
    <comment_count>92</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-11-22 11:51:30 -0800</bug_when>
    <thetext>(In reply to comment #91)
&gt; (From update of attachment 74474 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=74474&amp;action=review

&gt; 
&gt; &gt; WebCore/css/MediaQueryList.cpp:96
&gt; &gt; +        setMatches(m_matcher-&gt;evaluate(m_media.get()));
&gt; 
&gt; A comment I made last time: I don’t think the factoring here is quite optimal. I’d name the helper function updateMatches instead of setMatches, and have it do the m_matcher-&gt;evaluate call as well.
&gt; 

Sorry, I did not comment on this last time. I did this way because setMatches is used in two situations and in each one the parameter comes from different methods. They are:

void MediaQueryList::evaluate(MediaQueryEvaluator* evaluator, bool&amp; notificationNeeded)
{
    if (m_evaluationRound != m_matcher-&gt;evaluationRound() &amp;&amp; evaluator)
        setMatches(evaluator-&gt;eval(m_media.get()));
    notificationNeeded = m_changeRound == m_matcher-&gt;evaluationRound();
}

and

bool MediaQueryList::matches()
{
    if (m_evaluationRound != m_matcher-&gt;evaluationRound())
        setMatches(m_matcher-&gt;evaluate(m_media.get()));
    return m_matches;
}

The reason to do this is to have a small optimization in MediaQueryMatcher::styleSelectorChanged when all the queries that have listeners are being evaluated and the same MediaQueryEvaluator instance is being used to evaluate all of them.


&gt; &gt; WebCore/css/MediaQueryList.h:54
&gt; &gt; +    void addListener(PassRefPtr&lt;MediaQueryListListener&gt;);
&gt; &gt; +    void removeListener(PassRefPtr&lt;MediaQueryListListener&gt;);
&gt; 
&gt; I understand why the addListener function takes a PassRefPtr, but the removeListener function should not.
&gt; 

The point is that a PassRefPtr&lt;MediaQueryListListener&gt; is comming from JS generated code. I adjusted MediaQueryMatcher::removeListener to receive pointer instead of PassRefPtr&lt;&gt; but could not do the same for MediaQueryList::removeListener.


I will land this patch with all the changes that you requested in previous comment except for the ones I commented here.
But of course I will make any change you consider important in future bugs.

Thank you very much for your help and review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312476</commentid>
    <comment_count>93</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-11-22 13:05:11 -0800</bug_when>
    <thetext>Committed r72552: &lt;http://trac.webkit.org/changeset/72552&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312487</commentid>
    <comment_count>94</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-11-22 13:38:52 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/72552 might have broken Qt Linux Release
The following tests are not passing:
fast/dom/Window/window-properties.html
fast/dom/Window/window-property-descriptors.html
fast/dom/prototype-inheritance.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777887</commentid>
    <comment_count>95</comment_count>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-11-28 07:06:34 -0800</bug_when>
    <thetext>FYI: this old patch is causing memory leaks, see bug 103242. It&apos;s atm unclear how to solve it properly.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52987</attachid>
            <date>2010-04-09 14:09:05 -0700</date>
            <delta_ts>2010-04-09 15:30:35 -0700</delta_ts>
            <desc>patch 1</desc>
            <filename>0001-Add-support-for-Widgets-1.0-WebKitViewModeChangeEven.patch</filename>
            <type>text/plain</type>
            <size>31953</size>
            <attacher name="Luiz Agostini">luiz</attacher>
            
              <data encoding="base64">RnJvbSBkNDRkMzdiZmRmOGU5ODNmNDUyOWUwNmQ0YjM0YTk1ZGZmZjhiNzBiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWl6IEFnb3N0aW5pIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IEZyaSwgOSBBcHIgMjAxMCAxNzo1MToxMSAtMDMwMApTdWJqZWN0OiBbUEFU
Q0hdIEFkZCBzdXBwb3J0IGZvciBXaWRnZXRzIDEuMDogV2ViS2l0Vmlld01vZGVDaGFuZ2VFdmVu
dAogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3MjA1CgpSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KCldlYkNvcmU6CgpUZXN0OiBmYXN0L2V2ZW50cy92aWV3LW1v
ZGUtY2hhbmdlLmh0bWwKCkltcGxlbWVudGluZyBXZWJLaXRWaWV3TW9kZUNoYW5nZUV2ZW50LgoK
Vmlld01vZGVDaGFuZ2VFdmVudCBzcGVjaWZpY2F0aW9uIGNhbiBiZSBmb3VuZCBhdDoKaHR0cDov
L2Rldi53My5vcmcvMjAwNi93YWYvd2lkZ2V0cy12bS92bS1pbnRlcmZhY2VzLnNyYy5odG1sI3Zp
ZXdtb2RlY2hhbmdlZGV2ZW50dHlwZXMKCiogRGVyaXZlZFNvdXJjZXMuY3BwOgoqIFdlYkNvcmUu
cHJpOgoqIFdlYkNvcmUucHJvOgoqIGJpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uY3BwOgooV2Vi
Q29yZTo6dG9KUyk6CiogZG9tL0RvY3VtZW50LmNwcDoKKFdlYkNvcmU6OkRvY3VtZW50OjpjcmVh
dGVFdmVudCk6CiogZG9tL0V2ZW50LmNwcDoKKFdlYkNvcmU6OkV2ZW50Ojppc1dlYktpdFZpZXdN
b2RlQ2hhbmdlRXZlbnQpOgoqIGRvbS9FdmVudC5oOgoqIGRvbS9XZWJLaXRWaWV3TW9kZUNoYW5n
ZUV2ZW50LmNwcDogQWRkZWQuCihXZWJDb3JlOjpXZWJLaXRWaWV3TW9kZUNoYW5nZUV2ZW50OjpX
ZWJLaXRWaWV3TW9kZUNoYW5nZUV2ZW50KToKKFdlYkNvcmU6OldlYktpdFZpZXdNb2RlQ2hhbmdl
RXZlbnQ6OmluaXRXZWJLaXRWaWV3TW9kZUNoYW5nZUV2ZW50KToKKFdlYkNvcmU6OldlYktpdFZp
ZXdNb2RlQ2hhbmdlRXZlbnQ6OmlzV2ViS2l0Vmlld01vZGVDaGFuZ2VFdmVudCk6CiogZG9tL1dl
YktpdFZpZXdNb2RlQ2hhbmdlRXZlbnQuaDogQWRkZWQuCihXZWJDb3JlOjpXZWJLaXRWaWV3TW9k
ZUNoYW5nZUV2ZW50OjpjcmVhdGUpOgooV2ViQ29yZTo6V2ViS2l0Vmlld01vZGVDaGFuZ2VFdmVu
dDo6dmlld01vZGUpOgoqIGRvbS9XZWJLaXRWaWV3TW9kZUNoYW5nZUV2ZW50LmlkbDogQWRkZWQu
CgpUaGUgdmlld01vZGUgbWVkaWEgZmVhdHVyZSB3YXMgaW1wbGVtZW50ZWQgaW4gcHJldmlvdXMg
cGF0Y2ggYnV0IHRoZSB2aWV3TW9kZQpzdHJpbmcgd2FzIGtlcHQgaW4gV2ViS2l0IGxheWVyLiBU
aGlzIHBhdGNoIG1vdmVzIGl0IHRvIFdlYkNvcmUgYWRkaW5nIHNvbWUgYXR0cmlidXRlcwp0byB0
aGUgY2xhc3MgUGFnZS4gQXMgUGFnZSBub3cgaG9sZHMgdGhlIHZpZXdNb2RlIGl0IGlzIHRoZSBy
ZXNwb25zaWJsZSBmb3IgZGlzcGF0Y2hpbmcgdGhlIGV2ZW50LgoKSXQgYWxzbyBhZGRzIHRvIENo
cm9tZS9DaHJvbWVDbGllbnQgYSBuZXcgbWV0aG9kIHRoYXQgaXMgdXNlZCB0byBhc2sgQ2hyb21l
Q2xpZW50IGlmIGEKY2VydGFpbiB2aWV3TW9kZSBpcyBhY2NlcHRhYmxlLgoKKiBjc3MvTWVkaWFR
dWVyeUV2YWx1YXRvci5jcHA6CihXZWJDb3JlOjp2aWV3X21vZGVNZWRpYUZlYXR1cmVFdmFsKToK
KiBwYWdlL0Nocm9tZS5jcHA6CihXZWJDb3JlOjpDaHJvbWU6OmFjY2VwdFZpZXdNb2RlQ2hhbmdl
UmVxdWVzdCk6CihXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OmFjY2VwdFZpZXdNb2RlQ2hhbmdlUmVx
dWVzdCk6CiogcGFnZS9DaHJvbWUuaDoKKiBwYWdlL0Nocm9tZUNsaWVudC5oOgoqIHBhZ2UvUGFn
ZS5jcHA6CihXZWJDb3JlOjpQYWdlOjpzZXRWaWV3TW9kZSk6CihXZWJDb3JlOjpQYWdlOjppc0Rv
Y2tlZCk6CihXZWJDb3JlOjpQYWdlOjppc0Zsb2F0aW5nKToKKFdlYkNvcmU6OlBhZ2U6OmlzQXBw
bGljYXRpb24pOgooV2ViQ29yZTo6UGFnZTo6aXNGdWxsc2NyZWVuKToKKiBwYWdlL1BhZ2UuaDoK
KFdlYkNvcmU6OlBhZ2U6OnZpZXdNb2RlKToKCldlYktpdC9xdDoKCkFzIGNsYXNzIFBhZ2Ugbm93
IGhvbGRzIGN1cnJlbnQgdmlld01vZGUgdmFsdWUgdGhlIHJlbGF0ZWQgY29kZSB3YXMgcmVtb3Zl
ZCBmcm9tIGNsYXNzZXMKUVdlYlBhZ2UgYW5kIENocm9tZUNsaWVudFF0LgoKVGhlIG1ldGhvZCBX
ZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6YWNjZXB0Vmlld01vZGVDaGFuZ2VSZXF1ZXN0IHdhcyBh
ZGRlZC4KCiogQXBpL3F3ZWJwYWdlLmNwcDoKKHF0X3dydF9zZXRWaWV3TW9kZSk6CiogQXBpL3F3
ZWJwYWdlX3AuaDoKKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHA6CihXZWJDb3Jl
OjpDaHJvbWVDbGllbnRRdDo6YWNjZXB0Vmlld01vZGVDaGFuZ2VSZXF1ZXN0KToKKiBXZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oOgoKTGF5b3V0VGVzdHM6CgpXZWJLaXRWaWV3TW9kZUNo
YW5nZUV2ZW50IHRlc3QuCgoqIGZhc3QvZXZlbnRzL3ZpZXctbW9kZS1jaGFuZ2UtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKiBmYXN0L2V2ZW50cy92aWV3LW1vZGUtY2hhbmdlLmh0bWw6IEFkZGVkLgot
LS0KIExheW91dFRlc3RzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAxMiArKysrCiAuLi4vZmFzdC9ldmVudHMvdmlldy1tb2RlLWNoYW5nZS1leHBlY3RlZC50eHQg
ICAgICB8ICAgIDYgKysKIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3ZpZXctbW9kZS1jaGFuZ2Uu
aHRtbCAgICAgIHwgICA0NSArKysrKysrKysrKysrKysKIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA2MCArKysrKysrKysrKysrKysrKysrKwog
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAz
ICsKIFdlYkNvcmUvV2ViQ29yZS5wcmkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAgMSArCiBXZWJDb3JlL1dlYkNvcmUucHJvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8ICAgIDIgKwogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmNwcCAgICAgICAg
ICAgICAgfCAgIDEwICsrKwogV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAgICAg
ICAgICAgICAgICAgfCAgIDIxICsrKy0tLS0KIFdlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgICAgNyArKwogV2ViQ29yZS9kb20vRXZlbnQuY3BwICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA3ICsrCiBXZWJDb3JlL2RvbS9FdmVudC5o
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDMgKwogV2ViQ29yZS9kb20vV2Vi
S2l0Vmlld01vZGVDaGFuZ2VFdmVudC5jcHAgICAgICAgICAgfCAgIDUyICsrKysrKysrKysrKysr
KysrCiBXZWJDb3JlL2RvbS9XZWJLaXRWaWV3TW9kZUNoYW5nZUV2ZW50LmggICAgICAgICAgICB8
ICAgNTYgKysrKysrKysrKysrKysrKysrCiBXZWJDb3JlL2RvbS9XZWJLaXRWaWV3TW9kZUNoYW5n
ZUV2ZW50LmlkbCAgICAgICAgICB8ICAgMzkgKysrKysrKysrKysrKwogV2ViQ29yZS9wYWdlL0No
cm9tZS5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE0ICsrKysrCiBXZWJDb3Jl
L3BhZ2UvQ2hyb21lLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKwogV2Vi
Q29yZS9wYWdlL0Nocm9tZUNsaWVudC5oICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDExICst
LQogV2ViQ29yZS9wYWdlL1BhZ2UuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg
IDQ3ICsrKysrKysrKysrKysrKwogV2ViQ29yZS9wYWdlL1BhZ2UuaCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDE0ICsrKysrCiBXZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcCAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTAgKystLQogV2ViS2l0L3F0L0FwaS9xd2VicGFn
ZV9wLmggICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAyIC0KIFdlYktpdC9xdC9DaGFuZ2VM
b2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxOSArKysrKysKIFdlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAgICAgICAgIHwgICAzMSArKystLS0t
LS0tCiBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaCAgICAgICAgICB8
ICAgMTEgKy0tCiAyNSBmaWxlcyBjaGFuZ2VkLCA0MzEgaW5zZXJ0aW9ucygrKSwgNTYgZGVsZXRp
b25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdmlldy1t
b2RlLWNoYW5nZS1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy92aWV3LW1vZGUtY2hhbmdlLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJD
b3JlL2RvbS9XZWJLaXRWaWV3TW9kZUNoYW5nZUV2ZW50LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0
IFdlYkNvcmUvZG9tL1dlYktpdFZpZXdNb2RlQ2hhbmdlRXZlbnQuaAogY3JlYXRlIG1vZGUgMTAw
NjQ0IFdlYkNvcmUvZG9tL1dlYktpdFZpZXdNb2RlQ2hhbmdlRXZlbnQuaWRsCgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDBl
NDVlMmMuLjVlM2VhNjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0wNC0wOSAgTHVpeiBB
Z29zdGluaSAgPGx1aXouYWdvc3RpbmlAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgV2lkZ2V0cyAx
LjA6IFdlYktpdFZpZXdNb2RlQ2hhbmdlRXZlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTM3MjA1CisKKyAgICAgICAgV2ViS2l0Vmlld01vZGVDaGFu
Z2VFdmVudCB0ZXN0LgorCisgICAgICAgICogZmFzdC9ldmVudHMvdmlldy1tb2RlLWNoYW5nZS1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3ZpZXctbW9kZS1jaGFu
Z2UuaHRtbDogQWRkZWQuCisKIDIwMTAtMDQtMDcgIEFuZHJldyBTY2hlcmt1cyAgPHNjaGVya3Vz
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCBza2lwcGluZyBmYXN0L21lZGlh
L21lZGlhLWZlYXR1cmUtd2d0LXZpZXctbW9kZS5odG1sIGZvciBDaHJvbWl1bS4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3ZpZXctbW9kZS1jaGFuZ2UtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdmlldy1tb2RlLWNoYW5nZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzZlMWVmMgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3ZpZXctbW9kZS1jaGFuZ2UtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNiBAQAorUEFTUzogbW9kZXMubGVuZ3RoIHNob3VsZCBiZSAnNCcgYW5k
IGlzLgorUEFTUzogbW9kZXNbMF0gc2hvdWxkIGJlICdtaW5pJyBhbmQgaXMuCitQQVNTOiBtb2Rl
c1sxXSBzaG91bGQgYmUgJ2Zsb2F0aW5nJyBhbmQgaXMuCitQQVNTOiBtb2Rlc1syXSBzaG91bGQg
YmUgJ2FwcGxpY2F0aW9uJyBhbmQgaXMuCitQQVNTOiBtb2Rlc1szXSBzaG91bGQgYmUgJ2Z1bGxz
Y3JlZW4nIGFuZCBpcy4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdmll
dy1tb2RlLWNoYW5nZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdmlldy1tb2RlLWNo
YW5nZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUxMWY0NTMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy92aWV3LW1vZGUtY2hhbmdl
Lmh0bWwKQEAgLTAsMCArMSw0NSBAQAorPGh0bWw+CisKKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIHJ1
blRlc3RzKCkKK3sKKyAgICB2YXIgbW9kZXMgPSBbXTsKKworICAgIHZhciByZXN1bHRzID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdHMnKTsKKworICAgIHZhciBzaG91bGRCZSA9IGZ1
bmN0aW9uIChkZXNjcmlwdGlvbiwgZXhwZWN0ZWQsIGFjdHVhbCkKKyAgICB7CisgICAgICAgIGlm
IChleHBlY3RlZCA9PT0gYWN0dWFsKQorICAgICAgICAgICAgcmVzdWx0cy5pbm5lckhUTUwgKz0g
IlBBU1M6ICIgKyBkZXNjcmlwdGlvbiArICIgc2hvdWxkIGJlICciICsgZXhwZWN0ZWQgKyAiJyBh
bmQgaXMuPGJyPiI7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJlc3VsdHMuaW5uZXJIVE1M
ICs9ICJGQUlMOiAiICsgZGVzY3JpcHRpb24gKyAiIHNob3VsZCBiZSAnIiArIGV4cGVjdGVkICsg
IicgYnV0IGluc3RlYWQgaXMgJyIgKyBhY3R1YWwgKyAiJy48YnI+IjsKKyAgICB9CisKKyAgICBk
b2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ3ZWJraXR2aWV3bW9kZWNoYW5nZSIsIGZ1bmN0aW9u
IChldmVudCkgeyBtb2Rlc1ttb2Rlcy5sZW5ndGhdID0gZXZlbnQudmlld01vZGU7IH0sIGZhbHNl
KTsKKworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSgibWluaSIpOworICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSgibWluaSIpOyAvLyBzaG91bGQgYmUg
aWdub3JlZAorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9kZU1lZGlhRmVh
dHVyZSgiYmxhaCIpOyAvLyBzaG91bGQgYmUgaWdub3JlZAorICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSgiZmxvYXRpbmciKTsKKyAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoInF3ZSIpOyAvLyBzaG91
bGQgYmUgaWdub3JlZAorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9kZU1l
ZGlhRmVhdHVyZSgiZmxvYXRpbmciKTsgLy8gc2hvdWxkIGJlIGlnbm9yZWQKKyAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoImFwcGxpY2F0aW9uIik7
CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCJm
dWxsc2NyZWVuIik7CisgICAgfQorCisgICAgc2hvdWxkQmUoIm1vZGVzLmxlbmd0aCIsIDQsIG1v
ZGVzLmxlbmd0aCk7CisgICAgc2hvdWxkQmUoIm1vZGVzWzBdIiwgIm1pbmkiLCBtb2Rlc1swXSk7
CisgICAgc2hvdWxkQmUoIm1vZGVzWzFdIiwgImZsb2F0aW5nIiwgbW9kZXNbMV0pOworICAgIHNo
b3VsZEJlKCJtb2Rlc1syXSIsICJhcHBsaWNhdGlvbiIsIG1vZGVzWzJdKTsKKyAgICBzaG91bGRC
ZSgibW9kZXNbM10iLCAiZnVsbHNjcmVlbiIsIG1vZGVzWzNdKTsKK30KKworPC9zY3JpcHQ+CisK
Kzxib2R5IG9ubG9hZD0icnVuVGVzdHMoKSI+CisgICAgPGRpdiBpZD0icmVzdWx0cyI+PC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IDU2MTJjMWIuLjE3ZjZkOWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjMgQEAKKzIwMTAt
MDQtMDkgIEx1aXogQWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1cHBvcnQg
Zm9yIFdpZGdldHMgMS4wOiBXZWJLaXRWaWV3TW9kZUNoYW5nZUV2ZW50CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzIwNQorCisgICAgICAgIFRlc3Q6
IGZhc3QvZXZlbnRzL3ZpZXctbW9kZS1jaGFuZ2UuaHRtbAorCisKKworICAgICAgICBJbXBsZW1l
bnRpbmcgV2ViS2l0Vmlld01vZGVDaGFuZ2VFdmVudC4KKworICAgICAgICBWaWV3TW9kZUNoYW5n
ZUV2ZW50IHNwZWNpZmljYXRpb24gY2FuIGJlIGZvdW5kIGF0OgorICAgICAgICBodHRwOi8vZGV2
LnczLm9yZy8yMDA2L3dhZi93aWRnZXRzLXZtL3ZtLWludGVyZmFjZXMuc3JjLmh0bWwjdmlld21v
ZGVjaGFuZ2VkZXZlbnR0eXBlcworCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMuY3BwOgorICAg
ICAgICAqIFdlYkNvcmUucHJpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6Cisg
ICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpj
cmVhdGVFdmVudCk6CisgICAgICAgICogZG9tL0V2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkV2ZW50Ojppc1dlYktpdFZpZXdNb2RlQ2hhbmdlRXZlbnQpOgorICAgICAgICAqIGRvbS9FdmVu
dC5oOgorICAgICAgICAqIGRvbS9XZWJLaXRWaWV3TW9kZUNoYW5nZUV2ZW50LmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRWaWV3TW9kZUNoYW5nZUV2ZW50OjpXZWJLaXRWaWV3
TW9kZUNoYW5nZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdFZpZXdNb2RlQ2hhbmdl
RXZlbnQ6OmluaXRXZWJLaXRWaWV3TW9kZUNoYW5nZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OldlYktpdFZpZXdNb2RlQ2hhbmdlRXZlbnQ6OmlzV2ViS2l0Vmlld01vZGVDaGFuZ2VFdmVudCk6
CisgICAgICAgICogZG9tL1dlYktpdFZpZXdNb2RlQ2hhbmdlRXZlbnQuaDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpXZWJLaXRWaWV3TW9kZUNoYW5nZUV2ZW50OjpjcmVhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViS2l0Vmlld01vZGVDaGFuZ2VFdmVudDo6dmlld01vZGUpOgorICAgICAg
ICAqIGRvbS9XZWJLaXRWaWV3TW9kZUNoYW5nZUV2ZW50LmlkbDogQWRkZWQuCisKKworCisgICAg
ICAgIFRoZSB2aWV3TW9kZSBtZWRpYSBmZWF0dXJlIHdhcyBpbXBsZW1lbnRlZCBpbiBwcmV2aW91
cyBwYXRjaCBidXQgdGhlIHZpZXdNb2RlCisgICAgICAgIHN0cmluZyB3YXMga2VwdCBpbiBXZWJL
aXQgbGF5ZXIuIFRoaXMgcGF0Y2ggbW92ZXMgaXQgdG8gV2ViQ29yZSBhZGRpbmcgc29tZSBhdHRy
aWJ1dGVzIAorICAgICAgICB0byB0aGUgY2xhc3MgUGFnZS4gQXMgUGFnZSBub3cgaG9sZHMgdGhl
IHZpZXdNb2RlIGl0IGlzIHRoZSByZXNwb25zaWJsZSBmb3IgZGlzcGF0Y2hpbmcgdGhlIGV2ZW50
LgorCisgICAgICAgIEl0IGFsc28gYWRkcyB0byBDaHJvbWUvQ2hyb21lQ2xpZW50IGEgbmV3IG1l
dGhvZCB0aGF0IGlzIHVzZWQgdG8gYXNrIENocm9tZUNsaWVudCBpZiBhIAorICAgICAgICBjZXJ0
YWluIHZpZXdNb2RlIGlzIGFjY2VwdGFibGUuCisKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUV2
YWx1YXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjp2aWV3X21vZGVNZWRpYUZlYXR1cmVFdmFs
KToKKyAgICAgICAgKiBwYWdlL0Nocm9tZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6
OmFjY2VwdFZpZXdNb2RlQ2hhbmdlUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVD
bGllbnQ6OmFjY2VwdFZpZXdNb2RlQ2hhbmdlUmVxdWVzdCk6CisgICAgICAgICogcGFnZS9DaHJv
bWUuaDoKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAqIHBhZ2UvUGFn
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzZXRWaWV3TW9kZSk6CisgICAgICAgIChX
ZWJDb3JlOjpQYWdlOjppc0RvY2tlZCk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjppc0Zsb2F0
aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmlzQXBwbGljYXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6UGFnZTo6aXNGdWxsc2NyZWVuKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBhZ2U6OnZpZXdNb2RlKToKKwogMjAxMC0wNC0wNyAgRW5yaWNhIENh
c3VjY2kgIDxlbnJpY2FAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFk
bGVyLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAgYi9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLmNwcAppbmRleCA0NmI2YWI5Li40NTBkYzUxIDEwMDY0NAotLS0gYS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAorKysgYi9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcApA
QCAtMzU2LDYgKzM1Niw5IEBACiAjaW5jbHVkZSAiSlNXZWJLaXRDU1NNYXRyaXguY3BwIgogI2lu
Y2x1ZGUgIkpTV2ViS2l0UG9pbnQuY3BwIgogI2luY2x1ZGUgIkpTV2ViS2l0VHJhbnNpdGlvbkV2
ZW50LmNwcCIKKyNpZiBFTkFCTEUoV0lER0VUU18xMF9TVVBQT1JUKQorI2luY2x1ZGUgIkpTV2Vi
S2l0Vmlld01vZGVDaGFuZ2VFdmVudC5jcHAiCisjZW5kaWYKICNpbmNsdWRlICJKU1dlYlNvY2tl
dC5jcHAiCiAjaW5jbHVkZSAiSlNXaGVlbEV2ZW50LmNwcCIKICNpbmNsdWRlICJKU1dvcmtlci5j
cHAiCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJpIGIvV2ViQ29yZS9XZWJDb3JlLnBy
aQppbmRleCBiZTFkNTZiLi4wZDQ1NGU2IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJp
CisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcmkKQEAgLTI4OSw2ICsyODksNyBAQCBJRExfQklORElO
R1MgKz0gXAogICAgIGRvbS9VSUV2ZW50LmlkbCBcCiAgICAgZG9tL1dlYktpdEFuaW1hdGlvbkV2
ZW50LmlkbCBcCiAgICAgZG9tL1dlYktpdFRyYW5zaXRpb25FdmVudC5pZGwgXAorICAgIGRvbS9X
ZWJLaXRWaWV3TW9kZUNoYW5nZUV2ZW50LmlkbCBcCiAgICAgZG9tL1doZWVsRXZlbnQuaWRsIFwK
ICAgICBodG1sL0Jsb2IuaWRsIFwKICAgICBodG1sL2NhbnZhcy9XZWJHTEFycmF5LmlkbCBcCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRl
eCBlYWIxMGUzLi4wNzVlMDllIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBi
L1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTU0Miw2ICs1NDIsNyBAQCBTT1VSQ0VTICs9IFwKICAg
ICBkb20vVXNlckdlc3R1cmVJbmRpY2F0b3IuY3BwIFwKICAgICBkb20vV2ViS2l0QW5pbWF0aW9u
RXZlbnQuY3BwIFwKICAgICBkb20vV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmNwcCBcCisgICAgZG9t
L1dlYktpdFZpZXdNb2RlQ2hhbmdlRXZlbnQuY3BwIFwKICAgICBkb20vV2hlZWxFdmVudC5jcHAg
XAogICAgIGRvbS9YTUxUb2tlbml6ZXIuY3BwIFwKICAgICBkb20vWE1MVG9rZW5pemVyUXQuY3Bw
IFwKQEAgLTEyNTYsNiArMTI1Nyw3IEBAIEhFQURFUlMgKz0gXAogICAgIGRvbS9Vc2VyR2VzdHVy
ZUluZGljYXRvci5oIFwKICAgICBkb20vV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCBcCiAgICAgZG9t
L1dlYktpdFRyYW5zaXRpb25FdmVudC5oIFwKKyAgICBkb20vV2ViS2l0Vmlld01vZGVDaGFuZ2VF
dmVudC5oIFwKICAgICBkb20vV2hlZWxFdmVudC5oIFwKICAgICBkb20vWE1MVG9rZW5pemVyLmgg
XAogICAgIGVkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaCBcCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2
ZW50Q3VzdG9tLmNwcAppbmRleCA2Njg2ZDdhLi5jMzNiMjUxIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNFdmVudEN1c3RvbS5jcHAKQEAgLTUwLDYgKzUwLDkgQEAKICNpbmNsdWRlICJKU1VJRXZlbnQu
aCIKICNpbmNsdWRlICJKU1dlYktpdEFuaW1hdGlvbkV2ZW50LmgiCiAjaW5jbHVkZSAiSlNXZWJL
aXRUcmFuc2l0aW9uRXZlbnQuaCIKKyNpZiBFTkFCTEUoV0lER0VUU18xMF9TVVBQT1JUKQorI2lu
Y2x1ZGUgIkpTV2ViS2l0Vmlld01vZGVDaGFuZ2VFdmVudC5oIgorI2VuZGlmCiAjaW5jbHVkZSAi
SlNXaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSAiSlNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQu
aCIKICNpbmNsdWRlICJCZWZvcmVMb2FkRXZlbnQuaCIKQEAgLTY2LDYgKzY5LDkgQEAKICNpbmNs
dWRlICJVSUV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCIKICNpbmNs
dWRlICJXZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCIKKyNpZiBFTkFCTEUoV0lER0VUU18xMF9TVVBQ
T1JUKQorI2luY2x1ZGUgIldlYktpdFZpZXdNb2RlQ2hhbmdlRXZlbnQuaCIKKyNlbmRpZgogI2lu
Y2x1ZGUgIldoZWVsRXZlbnQuaCIKICNpbmNsdWRlICJYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZl
bnQuaCIKICNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgpAQCAtMTU3LDYgKzE2MywxMCBAQCBK
U1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBFdmVudCogZXZlbnQpCiAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX09CSkVDVF9X
UkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgUG9wU3RhdGVFdmVudCwgZXZlbnQpOwogICAgIGVs
c2UgaWYgKGV2ZW50LT5pc0N1c3RvbUV2ZW50KCkpCiAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVf
RE9NX09CSkVDVF9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgQ3VzdG9tRXZlbnQsIGV2ZW50
KTsKKyNpZiBFTkFCTEUoV0lER0VUU18xMF9TVVBQT1JUKQorICAgIGVsc2UgaWYgKGV2ZW50LT5p
c1dlYktpdFZpZXdNb2RlQ2hhbmdlRXZlbnQoKSkKKyAgICAgICAgd3JhcHBlciA9IENSRUFURV9E
T01fT0JKRUNUX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBXZWJLaXRWaWV3TW9kZUNoYW5n
ZUV2ZW50LCBldmVudCk7CisjZW5kaWYKICAgICBlbHNlCiAgICAgICAgIHdyYXBwZXIgPSBDUkVB
VEVfRE9NX09CSkVDVF9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgRXZlbnQsIGV2ZW50KTsK
IApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAgYi9XZWJD
b3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcAppbmRleCA4ZWFhMWUzLi40MDMxMjk4IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcAorKysgYi9XZWJD
b3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcApAQCAtNTAwLDE5ICs1MDAsMTQgQEAgc3Rh
dGljIGJvb2wgdmlld19tb2RlTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRl
clN0eWxlKiwgRnJhbWUqIGZyYW0KIHsKICAgICBpZiAodmFsdWUpIHsKICAgICAgICAgU3RyaW5n
IG1vZGUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKS0+Z2V0U3RyaW5n
VmFsdWUoKTsKLSAgICAgICAgaWYgKENocm9tZUNsaWVudCogY2xpZW50ID0gZnJhbWUtPnBhZ2Uo
KS0+Y2hyb21lKCktPmNsaWVudCgpKSB7Ci0gICAgICAgICAgICBpZiAobW9kZSA9PSAiYWxsIikK
LSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIGlmIChtb2RlID09ICJt
aW5pIiAmJiBjbGllbnQtPmlzRG9ja2VkKCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgICAgICAgICBpZiAobW9kZSA9PSAiZmxvYXRpbmciICYmIGNsaWVudC0+aXNGbG9hdGlu
ZygpKQotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgaWYgKG1vZGUg
PT0gImFwcGxpY2F0aW9uIiAmJiBjbGllbnQtPmlzQXBwbGljYXRpb24oKSkKLSAgICAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIGlmIChtb2RlID09ICJmdWxsc2NyZWVuIiAm
JiBjbGllbnQtPmlzRnVsbHNjcmVlbigpKQotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9CisgICAgICAgIGlmIChtb2RlID09
ICJtaW5pIiAmJiBmcmFtZS0+cGFnZSgpLT5pc0RvY2tlZCgpKQorICAgICAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgICAgIGlmIChtb2RlID09ICJmbG9hdGluZyIgJiYgZnJhbWUtPnBhZ2UoKS0+
aXNGbG9hdGluZygpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGlmIChtb2Rl
ID09ICJhcHBsaWNhdGlvbiIgJiYgZnJhbWUtPnBhZ2UoKS0+aXNBcHBsaWNhdGlvbigpKQorICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGlmIChtb2RlID09ICJmdWxsc2NyZWVuIiAm
JiBmcmFtZS0+cGFnZSgpLT5pc0Z1bGxzY3JlZW4oKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVl
OwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggYWNhYmIyYy4uYzA1
ZjBmOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcApAQCAtMTI4LDYgKzEyOCw5IEBACiAjaW5jbHVkZSAiVXNlckNvbnRl
bnRVUkxQYXR0ZXJuLmgiCiAjaW5jbHVkZSAiV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCIKICNpbmNs
dWRlICJXZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCIKKyNpZiBFTkFCTEUoV0lER0VUU18xMF9TVVBQ
T1JUKQorI2luY2x1ZGUgIldlYktpdFZpZXdNb2RlQ2hhbmdlRXZlbnQuaCIKKyNlbmRpZgogI2lu
Y2x1ZGUgIldoZWVsRXZlbnQuaCIKICNpbmNsdWRlICJYTUxIdHRwUmVxdWVzdC5oIgogI2luY2x1
ZGUgIlhNTE5TTmFtZXMuaCIKQEAgLTMwNDUsNiArMzA0OCwxMCBAQCBQYXNzUmVmUHRyPEV2ZW50
PiBEb2N1bWVudDo6Y3JlYXRlRXZlbnQoY29uc3QgU3RyaW5nJiBldmVudFR5cGUsIEV4Y2VwdGlv
bkNvZGUmCiAgICAgICAgIGV2ZW50ID0gVGV4dEV2ZW50OjpjcmVhdGUoKTsKICAgICBlbHNlIGlm
IChldmVudFR5cGUgPT0gIlVJRXZlbnQiIHx8IGV2ZW50VHlwZSA9PSAiVUlFdmVudHMiKQogICAg
ICAgICBldmVudCA9IFVJRXZlbnQ6OmNyZWF0ZSgpOworI2lmIEVOQUJMRShXSURHRVRTXzEwX1NV
UFBPUlQpCisgICAgZWxzZSBpZiAoZXZlbnRUeXBlID09ICJXZWJLaXRWaWV3TW9kZUNoYW5nZUV2
ZW50IikKKyAgICAgICAgZXZlbnQgPSBXZWJLaXRWaWV3TW9kZUNoYW5nZUV2ZW50OjpjcmVhdGUo
KTsKKyNlbmRpZgogICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSAiV2ViS2l0QW5pbWF0aW9uRXZl
bnQiKQogICAgICAgICBldmVudCA9IFdlYktpdEFuaW1hdGlvbkV2ZW50OjpjcmVhdGUoKTsKICAg
ICBlbHNlIGlmIChldmVudFR5cGUgPT0gIldlYktpdFRyYW5zaXRpb25FdmVudCIpCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2RvbS9FdmVudC5jcHAgYi9XZWJDb3JlL2RvbS9FdmVudC5jcHAKaW5kZXgg
NTA2ZDk0NS4uYmVhNWNjZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRXZlbnQuY3BwCisrKyBi
L1dlYkNvcmUvZG9tL0V2ZW50LmNwcApAQCAtMTcyLDYgKzE3MiwxMyBAQCBib29sIEV2ZW50Ojpp
c0JlZm9yZUxvYWRFdmVudCgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCisjaWYgRU5B
QkxFKFdJREdFVFNfMTBfU1VQUE9SVCkKK2Jvb2wgRXZlbnQ6OmlzV2ViS2l0Vmlld01vZGVDaGFu
Z2VFdmVudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorI2VuZGlmCisKICNpZiBF
TkFCTEUoU1ZHKQogYm9vbCBFdmVudDo6aXNTVkdab29tRXZlbnQoKSBjb25zdAogewpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9kb20vRXZlbnQuaCBiL1dlYkNvcmUvZG9tL0V2ZW50LmgKaW5kZXggMDBi
MzM0MS4uMGFlZjM1NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRXZlbnQuaAorKysgYi9XZWJD
b3JlL2RvbS9FdmVudC5oCkBAIC0xMjMsNiArMTIzLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICB2aXJ0dWFsIGJvb2wgaXNXZWJLaXRBbmltYXRpb25FdmVudCgpIGNvbnN0OwogICAg
ICAgICB2aXJ0dWFsIGJvb2wgaXNXZWJLaXRUcmFuc2l0aW9uRXZlbnQoKSBjb25zdDsKICAgICAg
ICAgdmlydHVhbCBib29sIGlzQmVmb3JlTG9hZEV2ZW50KCkgY29uc3Q7CisjaWYgRU5BQkxFKFdJ
REdFVFNfMTBfU1VQUE9SVCkKKyAgICAgICAgdmlydHVhbCBib29sIGlzV2ViS2l0Vmlld01vZGVD
aGFuZ2VFdmVudCgpIGNvbnN0OworI2VuZGlmCiAjaWYgRU5BQkxFKFNWRykKICAgICAgICAgdmly
dHVhbCBib29sIGlzU1ZHWm9vbUV2ZW50KCkgY29uc3Q7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvZG9tL1dlYktpdFZpZXdNb2RlQ2hhbmdlRXZlbnQuY3BwIGIvV2ViQ29yZS9kb20vV2Vi
S2l0Vmlld01vZGVDaGFuZ2VFdmVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uNmJmNGQ1NgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvZG9tL1dlYktpdFZpZXdN
b2RlQ2hhbmdlRXZlbnQuY3BwCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYktpdFZpZXdNb2RlQ2hhbmdlRXZl
bnQuaCIKKworI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitXZWJLaXRWaWV3TW9kZUNoYW5nZUV2ZW50OjpXZWJLaXRWaWV3TW9kZUNoYW5nZUV2ZW50KCkK
K3sKK30KKwordm9pZCBXZWJLaXRWaWV3TW9kZUNoYW5nZUV2ZW50Ojppbml0V2ViS2l0Vmlld01v
ZGVDaGFuZ2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBi
b29sIGNhbmNlbGFibGUsIGNvbnN0IFN0cmluZyYgdmlld01vZGUpCit7CisgICAgaWYgKGRpc3Bh
dGNoZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaW5pdEV2ZW50KHR5cGUsIGNhbkJ1YmJs
ZSwgY2FuY2VsYWJsZSk7CisKKyAgICBtX3ZpZXdNb2RlID0gdmlld01vZGU7Cit9CisKK2Jvb2wg
V2ViS2l0Vmlld01vZGVDaGFuZ2VFdmVudDo6aXNXZWJLaXRWaWV3TW9kZUNoYW5nZUV2ZW50KCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vV2ViS2l0Vmlld01vZGVDaGFuZ2VFdmVudC5oIGIvV2Vi
Q29yZS9kb20vV2ViS2l0Vmlld01vZGVDaGFuZ2VFdmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjAwMzgxZmEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2RvbS9X
ZWJLaXRWaWV3TW9kZUNoYW5nZUV2ZW50LmgKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWll
cykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENP
TVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09N
UFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIFdlYktpdFZpZXdNb2RlQ2hhbmdlRXZlbnRfaAorI2RlZmluZSBX
ZWJLaXRWaWV3TW9kZUNoYW5nZUV2ZW50X2gKKworI2luY2x1ZGUgIkF0b21pY1N0cmluZy5oIgor
I2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBXZWJLaXRWaWV3TW9kZUNoYW5nZUV2ZW50IDogcHVibGlj
IEV2ZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJLaXRWaWV3TW9kZUNo
YW5nZUV2ZW50PiBjcmVhdGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBX
ZWJLaXRWaWV3TW9kZUNoYW5nZUV2ZW50KTsKKyAgICB9CisKKyAgICB2b2lkIGluaXRXZWJLaXRW
aWV3TW9kZUNoYW5nZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJi
bGUsIGJvb2wgY2FuY2VsYWJsZSwgY29uc3QgU3RyaW5nJiB2aWV3TW9kZSk7CisKKyAgICB2aXJ0
dWFsIGJvb2wgaXNXZWJLaXRWaWV3TW9kZUNoYW5nZUV2ZW50KCkgY29uc3Q7CisKKyAgICBTdHJp
bmcgdmlld01vZGUoKSBjb25zdCB7IHJldHVybiBtX3ZpZXdNb2RlOyB9CisKK3ByaXZhdGU6Cisg
ICAgV2ViS2l0Vmlld01vZGVDaGFuZ2VFdmVudCgpOworCisgICAgU3RyaW5nIG1fdmlld01vZGU7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBXZWJLaXRWaWV3TW9k
ZUNoYW5nZUV2ZW50X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1dlYktpdFZpZXdNb2RlQ2hh
bmdlRXZlbnQuaWRsIGIvV2ViQ29yZS9kb20vV2ViS2l0Vmlld01vZGVDaGFuZ2VFdmVudC5pZGwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTIzYWM3YgotLS0gL2Rldi9udWxs
CisrKyBiL1dlYkNvcmUvZG9tL1dlYktpdFZpZXdNb2RlQ2hhbmdlRXZlbnQuaWRsCkBAIC0wLDAg
KzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5k
L29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCittb2R1bGUgZXZlbnRzIHsKKworICAg
IGludGVyZmFjZSBXZWJLaXRWaWV3TW9kZUNoYW5nZUV2ZW50IDogRXZlbnQgeworCisgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdmlld01vZGU7CisKKyAgICAgICAgLy8gRm9y
IERPTSBMZXZlbCAzIGFuZCBET00gTGV2ZWwgMiBzdXBwb3J0CisgICAgICAgIHZvaWQgaW5pdFdl
YktpdFZpZXdNb2RlQ2hhbmdlRXZlbnQoaW4gRE9NU3RyaW5nIHR5cGVBcmcsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGJvb2xlYW4gY2FuQnViYmxlQXJn
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBib29sZWFu
IGNhbmNlbGFibGVBcmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGluIERPTVN0cmluZyB2aWV3TW9kZUFyZyk7CisgICAgfTsKKworfQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAgYi9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAppbmRleCBm
NDI4NjA4Li42OGM1Njc3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAorKysg
Yi9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcApAQCAtNDQ3LDYgKzQ0NywxMyBAQCBOb3RpZmljYXRp
b25QcmVzZW50ZXIqIENocm9tZTo6bm90aWZpY2F0aW9uUHJlc2VudGVyKCkgY29uc3QKIH0KICNl
bmRpZgogCisjaWYgRU5BQkxFKFdJREdFVFNfMTBfU1VQUE9SVCkKK2Jvb2wgQ2hyb21lOjphY2Nl
cHRWaWV3TW9kZUNoYW5nZVJlcXVlc3QoY29uc3QgU3RyaW5nJiB2aWV3TW9kZSkKK3sKKyAgICBy
ZXR1cm4gbV9jbGllbnQtPmFjY2VwdFZpZXdNb2RlQ2hhbmdlUmVxdWVzdCh2aWV3TW9kZSk7Cit9
CisjZW5kaWYKKwogLy8gLS0tLS0tLS0KIAogI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkK
QEAgLTQ5MSw1ICs0OTgsMTIgQEAgYm9vbCBDaHJvbWVDbGllbnQ6OnBhaW50Q3VzdG9tU2Nyb2xs
Q29ybmVyKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYpCiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCisjaWYgRU5BQkxFKFdJREdFVFNfMTBfU1VQUE9SVCkKK2Jvb2wgQ2hyb21lQ2xp
ZW50OjphY2NlcHRWaWV3TW9kZUNoYW5nZVJlcXVlc3QoY29uc3QgU3RyaW5nJiB2aWV3TW9kZSkK
K3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisjZW5kaWYKKwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmggYi9XZWJDb3JlL3BhZ2UvQ2hy
b21lLmgKaW5kZXggNzZiNDE0OS4uZDFmY2FiNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0No
cm9tZS5oCisrKyBiL1dlYkNvcmUvcGFnZS9DaHJvbWUuaApAQCAtNTksNiArNTksMTAgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIENocm9tZUNsaWVudCogY2xpZW50KCkgeyByZXR1
cm4gbV9jbGllbnQ7IH0KIAorI2lmIEVOQUJMRShXSURHRVRTXzEwX1NVUFBPUlQpCisgICAgICAg
IGJvb2wgYWNjZXB0Vmlld01vZGVDaGFuZ2VSZXF1ZXN0KGNvbnN0IFN0cmluZyYgdmlld01vZGUp
OworI2VuZGlmCisKICAgICAgICAgLy8gSG9zdFdpbmRvdyBtZXRob2RzLgogCiAgICAgICAgIHZp
cnR1YWwgdm9pZCBpbnZhbGlkYXRlV2luZG93KGNvbnN0IEludFJlY3QmLCBib29sKTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1dlYkNvcmUvcGFnZS9DaHJvbWVD
bGllbnQuaAppbmRleCA3MGY3NGM2Li43MWYzZTVlIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2Uv
Q2hyb21lQ2xpZW50LmgKKysrIGIvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC05NSw2
ICs5NSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBjYW5S
dW5Nb2RhbCgpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHJ1bk1vZGFsKCkgPSAwOwogCisj
aWYgRU5BQkxFKFdJREdFVFNfMTBfU1VQUE9SVCkKKyAgICAgICAgdmlydHVhbCBib29sIGFjY2Vw
dFZpZXdNb2RlQ2hhbmdlUmVxdWVzdChjb25zdCBTdHJpbmcmIHZpZXdNb2RlKTsKKyNlbmRpZgor
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzZXRUb29sYmFyc1Zpc2libGUoYm9vbCkgPSAwOwogICAg
ICAgICB2aXJ0dWFsIGJvb2wgdG9vbGJhcnNWaXNpYmxlKCkgPSAwOwogICAgICAgICAKQEAgLTIz
MCwxMyArMjM0LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQg
bmVlZFRvdWNoRXZlbnRzKGJvb2wpID0gMDsKICNlbmRpZgogCi0jaWYgRU5BQkxFKFdJREdFVFNf
MTBfU1VQUE9SVCkKLSAgICAgICAgdmlydHVhbCBib29sIGlzRG9ja2VkKCkgeyByZXR1cm4gZmFs
c2U7IH0KLSAgICAgICAgdmlydHVhbCBib29sIGlzRmxvYXRpbmcoKSB7IHJldHVybiBmYWxzZTsg
fQotICAgICAgICB2aXJ0dWFsIGJvb2wgaXNBcHBsaWNhdGlvbigpIHsgcmV0dXJuIGZhbHNlOyB9
Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBpc0Z1bGxzY3JlZW4oKSB7IHJldHVybiBmYWxzZTsgfQot
I2VuZGlmCi0KICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHZpcnR1YWwgfkNocm9tZUNsaWVudCgp
IHsgfQogICAgIH07CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9XZWJDb3Jl
L3BhZ2UvUGFnZS5jcHAKaW5kZXggZDY2ZTQ5Ny4uOGQ0ZmZjOSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtNjIsNiArNjIs
OSBAQAogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgIlN0cmluZ0hhc2guaCIK
ICNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVyLmgiCisjaWYgRU5BQkxFKFdJREdFVFNfMTBf
U1VQUE9SVCkKKyNpbmNsdWRlICJXZWJLaXRWaWV3TW9kZUNoYW5nZUV2ZW50LmgiCisjZW5kaWYK
ICNpbmNsdWRlICJXaWRnZXQuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkTGVha0NvdW50ZXIuaD4KQEAgLTIwOCw2ICsyMTEsNTAgQEAgUGFnZTo6
flBhZ2UoKQogI2VuZGlmCiB9CiAKKyNpZiBFTkFCTEUoV0lER0VUU18xMF9TVVBQT1JUKQorYm9v
bCBQYWdlOjpzZXRWaWV3TW9kZShjb25zdCBTdHJpbmcmIHZpZXdNb2RlKQoreworICAgIGlmICht
X3ZpZXdNb2RlID09IHZpZXdNb2RlIHx8ICFjaHJvbWUoKS0+YWNjZXB0Vmlld01vZGVDaGFuZ2VS
ZXF1ZXN0KHZpZXdNb2RlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgbV92aWV3TW9k
ZSA9IHZpZXdNb2RlOworCisgICAgaWYgKCFtX21haW5GcmFtZSB8fCAhbV9tYWluRnJhbWUtPmRv
Y3VtZW50KCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgbV9tYWluRnJhbWUtPmRvY3Vt
ZW50KCktPnVwZGF0ZVN0eWxlU2VsZWN0b3IoKTsKKworICAgIGlmIChtX21haW5GcmFtZS0+dmll
dygpKQorICAgICAgICBtX21haW5GcmFtZS0+dmlldygpLT5mb3JjZUxheW91dCgpOworCisgICAg
UmVmUHRyPFdlYktpdFZpZXdNb2RlQ2hhbmdlRXZlbnQ+IGV2ZW50ID0gV2ViS2l0Vmlld01vZGVD
aGFuZ2VFdmVudDo6Y3JlYXRlKCk7CisgICAgZXZlbnQtPmluaXRXZWJLaXRWaWV3TW9kZUNoYW5n
ZUV2ZW50KCJ3ZWJraXR2aWV3bW9kZWNoYW5nZSIsIHRydWUsIHRydWUsIG1fdmlld01vZGUpOwor
ICAgIG1fbWFpbkZyYW1lLT5kb2N1bWVudCgpLT5kaXNwYXRjaEV2ZW50KGV2ZW50LnJlbGVhc2Uo
KSk7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBQYWdlOjppc0RvY2tlZCgpCit7Cisg
ICAgcmV0dXJuIG1fdmlld01vZGUgPT0gIm1pbmkiOworfQorCitib29sIFBhZ2U6OmlzRmxvYXRp
bmcoKQoreworICAgIHJldHVybiBtX3ZpZXdNb2RlID09ICJmbG9hdGluZyI7Cit9CisKK2Jvb2wg
UGFnZTo6aXNBcHBsaWNhdGlvbigpCit7CisgICAgcmV0dXJuIG1fdmlld01vZGUgPT0gImFwcGxp
Y2F0aW9uIjsKK30KKworYm9vbCBQYWdlOjppc0Z1bGxzY3JlZW4oKQoreworICAgIHJldHVybiBt
X3ZpZXdNb2RlID09ICJmdWxsc2NyZWVuIjsKK30KKyNlbmRpZgorCiB2b2lkIFBhZ2U6OnNldE1h
aW5GcmFtZShQYXNzUmVmUHRyPEZyYW1lPiBtYWluRnJhbWUpCiB7CiAgICAgQVNTRVJUKCFtX21h
aW5GcmFtZSk7IC8vIFNob3VsZCBvbmx5IGJlIGNhbGxlZCBkdXJpbmcgaW5pdGlhbGl6YXRpb24K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9XZWJDb3JlL3BhZ2UvUGFnZS5oCmlu
ZGV4IDk0ZTZkZDUuLjllYTllNTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysr
IGIvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtMTIyLDYgKzEyMiwxNiBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIEhpc3RvcnlJdGVtKiBnbG9iYWxIaXN0b3J5SXRlbSgpIGNvbnN0IHsg
cmV0dXJuIG1fZ2xvYmFsSGlzdG9yeUl0ZW0uZ2V0KCk7IH0KICAgICAgICAgdm9pZCBzZXRHbG9i
YWxIaXN0b3J5SXRlbShIaXN0b3J5SXRlbSopOwogCisKKyNpZiBFTkFCTEUoV0lER0VUU18xMF9T
VVBQT1JUKQorICAgICAgICBib29sIHNldFZpZXdNb2RlKGNvbnN0IFN0cmluZyYgdmlld01vZGUp
OworICAgICAgICBTdHJpbmcgdmlld01vZGUoKSBjb25zdCB7IHJldHVybiBtX3ZpZXdNb2RlOyB9
CisgICAgICAgIHZpcnR1YWwgYm9vbCBpc0RvY2tlZCgpOworICAgICAgICB2aXJ0dWFsIGJvb2wg
aXNGbG9hdGluZygpOworICAgICAgICB2aXJ0dWFsIGJvb2wgaXNBcHBsaWNhdGlvbigpOworICAg
ICAgICB2aXJ0dWFsIGJvb2wgaXNGdWxsc2NyZWVuKCk7CisjZW5kaWYKKwogICAgICAgICB2b2lk
IHNldEdyb3VwTmFtZShjb25zdCBTdHJpbmcmKTsKICAgICAgICAgY29uc3QgU3RyaW5nJiBncm91
cE5hbWUoKSBjb25zdDsKIApAQCAtMjY3LDYgKzI3NywxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKICAgICAgICAgRWRpdG9yQ2xpZW50KiBtX2VkaXRvckNsaWVudDsKIAorI2lmIEVOQUJMRShX
SURHRVRTXzEwX1NVUFBPUlQpCisgICAgICAgIFN0cmluZyBtX3ZpZXdNb2RlOworI2VuZGlmCisK
ICAgICAgICAgaW50IG1fZnJhbWVDb3VudDsKICAgICAgICAgU3RyaW5nIG1fZ3JvdXBOYW1lOwog
ICAgICAgICBib29sIG1fb3BlbmVkQnlET007CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvQXBpL3F3
ZWJwYWdlLmNwcCBiL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwCmluZGV4IDVkZTgxMzguLjgw
NGVhNDUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwCisrKyBiL1dlYktp
dC9xdC9BcGkvcXdlYnBhZ2UuY3BwCkBAIC0xMjEsMTEgKzEyMSwxMSBAQCB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIAogdm9pZCBRV0VCS0lUX0VYUE9SVCBxdF93cnRfc2V0Vmlld01vZGUoUVdl
YlBhZ2UqIHBhZ2UsIGNvbnN0IFFTdHJpbmcmIG1vZGUpCiB7Ci0gICAgUVdlYlBhZ2VQcml2YXRl
Ojpwcml2KHBhZ2UpLT52aWV3TW9kZSA9IG1vZGU7Ci0gICAgV2ViQ29yZTo6RnJhbWUqIGZyYW1l
ID0gUVdlYkZyYW1lUHJpdmF0ZTo6Y29yZShwYWdlLT5tYWluRnJhbWUoKSk7Ci0gICAgV2ViQ29y
ZTo6RnJhbWVWaWV3KiB2aWV3ID0gZnJhbWUtPnZpZXcoKTsKLSAgICBmcmFtZS0+ZG9jdW1lbnQo
KS0+dXBkYXRlU3R5bGVTZWxlY3RvcigpOwotICAgIHZpZXctPmZvcmNlTGF5b3V0KCk7CisjaWYg
RU5BQkxFKFdJREdFVFNfMTBfU1VQUE9SVCkKKyAgICBXZWJDb3JlOjpQYWdlKiBjb3JlID0gUVdl
YlBhZ2VQcml2YXRlOjpjb3JlKHBhZ2UpOworICAgIGlmIChjb3JlKQorICAgICAgICBjb3JlLT5z
ZXRWaWV3TW9kZShtb2RlKTsKKyNlbmRpZgogfQogCiB2b2lkIFFXRUJLSVRfRVhQT1JUIHF0X2Ry
dF9vdmVyd3JpdGVQbHVnaW5EaXJlY3RvcmllcygpCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvQXBp
L3F3ZWJwYWdlX3AuaCBiL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2VfcC5oCmluZGV4IDA3MTJkMGMu
LjQ2MWFjMDMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2VfcC5oCisrKyBiL1dl
YktpdC9xdC9BcGkvcXdlYnBhZ2VfcC5oCkBAIC0xODYsOCArMTg2LDYgQEAgcHVibGljOgogICAg
IGJvb2wgaW5zcGVjdG9ySXNJbnRlcm5hbE9ubHk7IC8vIFRydWUgaWYgY3JlYXRlZCB0aHJvdWdo
IHRoZSBJbnNwZWN0IGNvbnRleHQgbWVudSBhY3Rpb24KICAgICBRdDo6RHJvcEFjdGlvbiBtX2xh
c3REcm9wQWN0aW9uOwogCi0gICAgUVN0cmluZyB2aWV3TW9kZTsKLQogICAgIHN0YXRpYyBib29s
IGRydFJ1bjsKIH07CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9XZWJLaXQv
cXQvQ2hhbmdlTG9nCmluZGV4IDRiNGI2ZWIuLjYwOTlmMjkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9x
dC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisy
MDEwLTA0LTA5ICBMdWl6IEFnb3N0aW5pICA8bHVpei5hZ29zdGluaUBvcGVuYm9zc2Eub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBw
b3J0IGZvciBXaWRnZXRzIDEuMDogV2ViS2l0Vmlld01vZGVDaGFuZ2VFdmVudAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzcyMDUKKworICAgICAgICBB
cyBjbGFzcyBQYWdlIG5vdyBob2xkcyBjdXJyZW50IHZpZXdNb2RlIHZhbHVlIHRoZSByZWxhdGVk
IGNvZGUgd2FzIHJlbW92ZWQgZnJvbSBjbGFzc2VzCisgICAgICAgIFFXZWJQYWdlIGFuZCBDaHJv
bWVDbGllbnRRdC4KKworICAgICAgICBUaGUgbWV0aG9kIFdlYkNvcmU6OkNocm9tZUNsaWVudFF0
OjphY2NlcHRWaWV3TW9kZUNoYW5nZVJlcXVlc3Qgd2FzIGFkZGVkLgorCisgICAgICAgICogQXBp
L3F3ZWJwYWdlLmNwcDoKKyAgICAgICAgKHF0X3dydF9zZXRWaWV3TW9kZSk6CisgICAgICAgICog
QXBpL3F3ZWJwYWdlX3AuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRR
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6YWNjZXB0Vmlld01vZGVD
aGFuZ2VSZXF1ZXN0KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5o
OgorCiAyMDEwLTA0LTA3ICBBbmRyZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgWXVyeSBTZW1pa2hhdHNreS4KZGlmZiAtLWdpdCBhL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAgYi9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwCmluZGV4IDQ1OTg2YjMuLjE4NjYxMmYgMTAwNjQ0
Ci0tLSBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKKysrIGIv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcApAQCAtNTQ0LDYgKzU0
NCwxNSBAQCB2b2lkIENocm9tZUNsaWVudFF0OjpzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJTeW5j
KCkKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKFdJREdFVFNfMTBfU1VQUE9SVCkKK2Jvb2wgQ2hy
b21lQ2xpZW50UXQ6OmFjY2VwdFZpZXdNb2RlQ2hhbmdlUmVxdWVzdChjb25zdCBTdHJpbmcmIHZp
ZXdNb2RlKQoreworICAgIFFTdHJpbmdMaXN0IHN1cHBvcnRlZE1vZGVzOworICAgIHN1cHBvcnRl
ZE1vZGVzIDw8ICJhcHBsaWNhdGlvbiIgPDwgIm1pbmkiIDw8ICJmbG9hdGluZyIgPDwgImZ1bGxz
Y3JlZW4iOworICAgIHJldHVybiBzdXBwb3J0ZWRNb2Rlcy5jb250YWlucyh2aWV3TW9kZSk7Cit9
CisjZW5kaWYKKwogUXRBYnN0cmFjdFdlYlBvcHVwKiBDaHJvbWVDbGllbnRRdDo6Y3JlYXRlU2Vs
ZWN0UG9wdXAoKQogewogI2lmIGRlZmluZWQoUV9XU19NQUVNT181KQpAQCAtNTUzLDI2ICs1NjIs
NCBAQCBRdEFic3RyYWN0V2ViUG9wdXAqIENocm9tZUNsaWVudFF0OjpjcmVhdGVTZWxlY3RQb3B1
cCgpCiAjZW5kaWYKIH0KIAotI2lmIEVOQUJMRShXSURHRVRTXzEwX1NVUFBPUlQpCi1ib29sIENo
cm9tZUNsaWVudFF0Ojppc0RvY2tlZCgpCi17Ci0gICAgcmV0dXJuIG1fd2ViUGFnZS0+ZC0+dmll
d01vZGUgPT0gIm1pbmkiOwotfQotCi1ib29sIENocm9tZUNsaWVudFF0Ojppc0Zsb2F0aW5nKCkK
LXsKLSAgICByZXR1cm4gbV93ZWJQYWdlLT5kLT52aWV3TW9kZSA9PSAiZmxvYXRpbmciOwotfQot
Ci1ib29sIENocm9tZUNsaWVudFF0Ojppc0FwcGxpY2F0aW9uKCkKLXsKLSAgICByZXR1cm4gbV93
ZWJQYWdlLT5kLT52aWV3TW9kZSA9PSAiYXBwbGljYXRpb24iOwotfQotCi1ib29sIENocm9tZUNs
aWVudFF0Ojppc0Z1bGxzY3JlZW4oKQotewotICAgIHJldHVybiBtX3dlYlBhZ2UtPmQtPnZpZXdN
b2RlID09ICJmdWxsc2NyZWVuIjsKLX0KLSNlbmRpZgotCiB9CmRpZmYgLS1naXQgYS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaCBiL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRRdC5oCmluZGV4IGUyNGNjZGQuLjlmMDJhMTUgMTAwNjQ0Ci0tLSBh
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCisrKyBiL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCkBAIC03MCw2ICs3MCwxMCBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgUGFnZSogY3JlYXRlV2luZG93KEZyYW1l
KiwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJik7CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBzaG93KCk7CiAKKyNpZiBFTkFCTEUoV0lER0VUU18xMF9TVVBQT1JU
KQorICAgICAgICB2aXJ0dWFsIGJvb2wgYWNjZXB0Vmlld01vZGVDaGFuZ2VSZXF1ZXN0KGNvbnN0
IFN0cmluZyYgdmlld01vZGUpOworI2VuZGlmCisKICAgICAgICAgdmlydHVhbCBib29sIGNhblJ1
bk1vZGFsKCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBydW5Nb2RhbCgpOwogCkBAIC0xNTQsMTMg
KzE1OCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB2b2lkIHJlcXVl
c3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKik7CiAg
ICAgICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Rm9y
RnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiopIHsgfQogCi0jaWYgRU5BQkxFKFdJREdFVFNfMTBf
U1VQUE9SVCkKLSAgICAgICAgdmlydHVhbCBib29sIGlzRG9ja2VkKCk7Ci0gICAgICAgIHZpcnR1
YWwgYm9vbCBpc0Zsb2F0aW5nKCk7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBpc0FwcGxpY2F0aW9u
KCk7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBpc0Z1bGxzY3JlZW4oKTsKLSNlbmRpZgotCiAgICAg
ICAgIFF0QWJzdHJhY3RXZWJQb3B1cCogY3JlYXRlU2VsZWN0UG9wdXAoKTsKIAogICAgICAgICBR
V2ViUGFnZSogbV93ZWJQYWdlOwotLSAKMS42LjMuMwoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53001</attachid>
            <date>2010-04-09 15:30:35 -0700</date>
            <delta_ts>2010-05-07 10:36:36 -0700</delta_ts>
            <desc>patch 2</desc>
            <filename>0001-Add-support-for-Widgets-1.0-WebKitViewModeChangeEven.patch</filename>
            <type>text/plain</type>
            <size>31892</size>
            <attacher name="Luiz Agostini">luiz</attacher>
            
              <data encoding="base64">RnJvbSBmYjAyODhkYWNjODFhZWFlYzAzOGU5OTRjOGY5MGRmYzA5NmU0Mjk3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWl6IEFnb3N0aW5pIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IEZyaSwgOSBBcHIgMjAxMCAxNzo1MToxMSAtMDMwMApTdWJqZWN0OiBbUEFU
Q0hdIEFkZCBzdXBwb3J0IGZvciBXaWRnZXRzIDEuMDogV2ViS2l0Vmlld01vZGVDaGFuZ2VFdmVu
dAogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3MjA1CgpSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KCldlYkNvcmU6CgpUZXN0OiBmYXN0L2V2ZW50cy92aWV3LW1v
ZGUtY2hhbmdlLmh0bWwKCkltcGxlbWVudGluZyBXZWJLaXRWaWV3TW9kZUNoYW5nZUV2ZW50LgoK
Vmlld01vZGVDaGFuZ2VFdmVudCBzcGVjaWZpY2F0aW9uIGNhbiBiZSBmb3VuZCBhdDoKaHR0cDov
L2Rldi53My5vcmcvMjAwNi93YWYvd2lkZ2V0cy12bS92bS1pbnRlcmZhY2VzLnNyYy5odG1sI3Zp
ZXdtb2RlY2hhbmdlZGV2ZW50dHlwZXMKCiogRGVyaXZlZFNvdXJjZXMuY3BwOgoqIFdlYkNvcmUu
cHJpOgoqIFdlYkNvcmUucHJvOgoqIGJpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uY3BwOgooV2Vi
Q29yZTo6dG9KUyk6CiogZG9tL0RvY3VtZW50LmNwcDoKKFdlYkNvcmU6OkRvY3VtZW50OjpjcmVh
dGVFdmVudCk6CiogZG9tL0V2ZW50LmNwcDoKKFdlYkNvcmU6OkV2ZW50Ojppc1dlYktpdFZpZXdN
b2RlQ2hhbmdlRXZlbnQpOgoqIGRvbS9FdmVudC5oOgoqIGRvbS9XZWJLaXRWaWV3TW9kZUNoYW5n
ZUV2ZW50LmNwcDogQWRkZWQuCihXZWJDb3JlOjpXZWJLaXRWaWV3TW9kZUNoYW5nZUV2ZW50OjpX
ZWJLaXRWaWV3TW9kZUNoYW5nZUV2ZW50KToKKFdlYkNvcmU6OldlYktpdFZpZXdNb2RlQ2hhbmdl
RXZlbnQ6OmluaXRXZWJLaXRWaWV3TW9kZUNoYW5nZUV2ZW50KToKKFdlYkNvcmU6OldlYktpdFZp
ZXdNb2RlQ2hhbmdlRXZlbnQ6OmlzV2ViS2l0Vmlld01vZGVDaGFuZ2VFdmVudCk6CiogZG9tL1dl
YktpdFZpZXdNb2RlQ2hhbmdlRXZlbnQuaDogQWRkZWQuCihXZWJDb3JlOjpXZWJLaXRWaWV3TW9k
ZUNoYW5nZUV2ZW50OjpjcmVhdGUpOgooV2ViQ29yZTo6V2ViS2l0Vmlld01vZGVDaGFuZ2VFdmVu
dDo6dmlld01vZGUpOgoqIGRvbS9XZWJLaXRWaWV3TW9kZUNoYW5nZUV2ZW50LmlkbDogQWRkZWQu
CgpUaGUgdmlld01vZGUgbWVkaWEgZmVhdHVyZSB3YXMgaW1wbGVtZW50ZWQgaW4gcHJldmlvdXMg
cGF0Y2ggYnV0IHRoZSB2aWV3TW9kZQpzdHJpbmcgd2FzIGtlcHQgaW4gV2ViS2l0IGxheWVyLiBU
aGlzIHBhdGNoIG1vdmVzIGl0IHRvIFdlYkNvcmUgYWRkaW5nIHNvbWUgYXR0cmlidXRlcwp0byB0
aGUgY2xhc3MgUGFnZS4gQXMgUGFnZSBub3cgaG9sZHMgdGhlIHZpZXdNb2RlIGl0IGlzIHRoZSBy
ZXNwb25zaWJsZSBmb3IgZGlzcGF0Y2hpbmcgdGhlIGV2ZW50LgoKSXQgYWxzbyBhZGRzIHRvIENo
cm9tZS9DaHJvbWVDbGllbnQgYSBuZXcgbWV0aG9kIHRoYXQgaXMgdXNlZCB0byBhc2sgQ2hyb21l
Q2xpZW50IGlmIGEKY2VydGFpbiB2aWV3TW9kZSBpcyBhY2NlcHRhYmxlLgoKKiBjc3MvTWVkaWFR
dWVyeUV2YWx1YXRvci5jcHA6CihXZWJDb3JlOjp2aWV3X21vZGVNZWRpYUZlYXR1cmVFdmFsKToK
KiBwYWdlL0Nocm9tZS5jcHA6CihXZWJDb3JlOjpDaHJvbWU6OmFjY2VwdFZpZXdNb2RlQ2hhbmdl
UmVxdWVzdCk6CihXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OmFjY2VwdFZpZXdNb2RlQ2hhbmdlUmVx
dWVzdCk6CiogcGFnZS9DaHJvbWUuaDoKKiBwYWdlL0Nocm9tZUNsaWVudC5oOgoqIHBhZ2UvUGFn
ZS5jcHA6CihXZWJDb3JlOjpQYWdlOjpzZXRWaWV3TW9kZSk6CihXZWJDb3JlOjpQYWdlOjppc0Rv
Y2tlZCk6CihXZWJDb3JlOjpQYWdlOjppc0Zsb2F0aW5nKToKKFdlYkNvcmU6OlBhZ2U6OmlzQXBw
bGljYXRpb24pOgooV2ViQ29yZTo6UGFnZTo6aXNGdWxsc2NyZWVuKToKKiBwYWdlL1BhZ2UuaDoK
KFdlYkNvcmU6OlBhZ2U6OnZpZXdNb2RlKToKCldlYktpdC9xdDoKCkFzIGNsYXNzIFBhZ2Ugbm93
IGhvbGRzIGN1cnJlbnQgdmlld01vZGUgdmFsdWUgdGhlIHJlbGF0ZWQgY29kZSB3YXMgcmVtb3Zl
ZCBmcm9tIGNsYXNzZXMKUVdlYlBhZ2UgYW5kIENocm9tZUNsaWVudFF0LgoKVGhlIG1ldGhvZCBX
ZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6YWNjZXB0Vmlld01vZGVDaGFuZ2VSZXF1ZXN0IHdhcyBh
ZGRlZC4KCiogQXBpL3F3ZWJwYWdlLmNwcDoKKHF0X3dydF9zZXRWaWV3TW9kZSk6CiogQXBpL3F3
ZWJwYWdlX3AuaDoKKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHA6CihXZWJDb3Jl
OjpDaHJvbWVDbGllbnRRdDo6YWNjZXB0Vmlld01vZGVDaGFuZ2VSZXF1ZXN0KToKKiBXZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oOgoKTGF5b3V0VGVzdHM6CgpXZWJLaXRWaWV3TW9kZUNo
YW5nZUV2ZW50IHRlc3QuCgoqIGZhc3QvZXZlbnRzL3ZpZXctbW9kZS1jaGFuZ2UtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKiBmYXN0L2V2ZW50cy92aWV3LW1vZGUtY2hhbmdlLmh0bWw6IEFkZGVkLgot
LS0KIExheW91dFRlc3RzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAxMiArKysrCiAuLi4vZmFzdC9ldmVudHMvdmlldy1tb2RlLWNoYW5nZS1leHBlY3RlZC50eHQg
ICAgICB8ICAgIDYgKysKIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3ZpZXctbW9kZS1jaGFuZ2Uu
aHRtbCAgICAgIHwgICA0NSArKysrKysrKysrKysrKysrCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNTYgKysrKysrKysrKysrKysrKysrKysK
IFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg
MyArCiBXZWJDb3JlL1dlYkNvcmUucHJpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAgIDEgKwogV2ViQ29yZS9XZWJDb3JlLnBybyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgICAyICsKIFdlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudEN1c3RvbS5jcHAgICAgICAg
ICAgICAgIHwgICAxMCArKysrCiBXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcCAg
ICAgICAgICAgICAgICB8ICAgMTkgKysrLS0tLQogV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA3ICsrKwogV2ViQ29yZS9kb20vRXZlbnQuY3Bw
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA3ICsrKwogV2ViQ29yZS9kb20vRXZl
bnQuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAzICsKIFdlYkNvcmUvZG9t
L1dlYktpdFZpZXdNb2RlQ2hhbmdlRXZlbnQuY3BwICAgICAgICAgIHwgICA1MiArKysrKysrKysr
KysrKysrKysKIFdlYkNvcmUvZG9tL1dlYktpdFZpZXdNb2RlQ2hhbmdlRXZlbnQuaCAgICAgICAg
ICAgIHwgICA1NiArKysrKysrKysrKysrKysrKysrKwogV2ViQ29yZS9kb20vV2ViS2l0Vmlld01v
ZGVDaGFuZ2VFdmVudC5pZGwgICAgICAgICAgfCAgIDM5ICsrKysrKysrKysrKysrCiBXZWJDb3Jl
L3BhZ2UvQ2hyb21lLmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTQgKysrKysK
IFdlYkNvcmUvcGFnZS9DaHJvbWUuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg
NCArKwogV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oICAgICAgICAgICAgICAgICAgICAgICAg
fCAgIDExICsrLS0tCiBXZWJDb3JlL3BhZ2UvUGFnZS5jcHAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgNDcgKysrKysrKysrKysrKysrKwogV2ViQ29yZS9wYWdlL1BhZ2UuaCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE0ICsrKysrCiBXZWJLaXQvcXQvQXBpL3F3
ZWJwYWdlLmNwcCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTAgKystLQogV2ViS2l0L3F0
L0FwaS9xd2VicGFnZV9wLmggICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAyIC0KIFdlYktp
dC9xdC9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxOSArKysr
KysrCiBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwICAgICAgICB8
ICAgMzEgKysrLS0tLS0tLS0KIFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRR
dC5oICAgICAgICAgIHwgICAxMSArKy0tLQogMjUgZmlsZXMgY2hhbmdlZCwgNDI3IGluc2VydGlv
bnMoKyksIDU0IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3ZpZXctbW9kZS1jaGFuZ2UtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2
NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdmlldy1tb2RlLWNoYW5nZS5odG1sCiBjcmVhdGUg
bW9kZSAxMDA2NDQgV2ViQ29yZS9kb20vV2ViS2l0Vmlld01vZGVDaGFuZ2VFdmVudC5jcHAKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL2RvbS9XZWJLaXRWaWV3TW9kZUNoYW5nZUV2ZW50LmgK
IGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL2RvbS9XZWJLaXRWaWV3TW9kZUNoYW5nZUV2ZW50
LmlkbAoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCA1ZDliNjEzLi4xYzFmMGFkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIw
MTAtMDQtMDkgIEx1aXogQWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1cHBv
cnQgZm9yIFdpZGdldHMgMS4wOiBXZWJLaXRWaWV3TW9kZUNoYW5nZUV2ZW50CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzIwNQorCisgICAgICAgIFdl
YktpdFZpZXdNb2RlQ2hhbmdlRXZlbnQgdGVzdC4KKworICAgICAgICAqIGZhc3QvZXZlbnRzL3Zp
ZXctbW9kZS1jaGFuZ2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50
cy92aWV3LW1vZGUtY2hhbmdlLmh0bWw6IEFkZGVkLgorCiAyMDEwLTA0LTA5ICBEdW1pdHJ1IERh
bmlsaXVjICA8ZHVtaUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgYWRkaW5n
IGEgVElNRU9VVCBleHBlY3RhdGlvbnMgZm9yIHdvcmtlci1zaW1wbGUuaHRtbApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdmlldy1tb2RlLWNoYW5nZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy92aWV3LW1vZGUtY2hhbmdlLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NmUxZWYyCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdmlldy1tb2RlLWNoYW5nZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw2IEBACitQQVNTOiBtb2Rlcy5sZW5ndGggc2hvdWxkIGJlICc0JyBhbmQg
aXMuCitQQVNTOiBtb2Rlc1swXSBzaG91bGQgYmUgJ21pbmknIGFuZCBpcy4KK1BBU1M6IG1vZGVz
WzFdIHNob3VsZCBiZSAnZmxvYXRpbmcnIGFuZCBpcy4KK1BBU1M6IG1vZGVzWzJdIHNob3VsZCBi
ZSAnYXBwbGljYXRpb24nIGFuZCBpcy4KK1BBU1M6IG1vZGVzWzNdIHNob3VsZCBiZSAnZnVsbHNj
cmVlbicgYW5kIGlzLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy92aWV3
LW1vZGUtY2hhbmdlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy92aWV3LW1vZGUtY2hh
bmdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTExZjQ1MwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3ZpZXctbW9kZS1jaGFuZ2Uu
aHRtbApAQCAtMCwwICsxLDQ1IEBACis8aHRtbD4KKworPHNjcmlwdD4KKworZnVuY3Rpb24gcnVu
VGVzdHMoKQoreworICAgIHZhciBtb2RlcyA9IFtdOworCisgICAgdmFyIHJlc3VsdHMgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0cycpOworCisgICAgdmFyIHNob3VsZEJlID0gZnVu
Y3Rpb24gKGRlc2NyaXB0aW9uLCBleHBlY3RlZCwgYWN0dWFsKQorICAgIHsKKyAgICAgICAgaWYg
KGV4cGVjdGVkID09PSBhY3R1YWwpCisgICAgICAgICAgICByZXN1bHRzLmlubmVySFRNTCArPSAi
UEFTUzogIiArIGRlc2NyaXB0aW9uICsgIiBzaG91bGQgYmUgJyIgKyBleHBlY3RlZCArICInIGFu
ZCBpcy48YnI+IjsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmVzdWx0cy5pbm5lckhUTUwg
Kz0gIkZBSUw6ICIgKyBkZXNjcmlwdGlvbiArICIgc2hvdWxkIGJlICciICsgZXhwZWN0ZWQgKyAi
JyBidXQgaW5zdGVhZCBpcyAnIiArIGFjdHVhbCArICInLjxicj4iOworICAgIH0KKworICAgIGRv
Y3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIndlYmtpdHZpZXdtb2RlY2hhbmdlIiwgZnVuY3Rpb24g
KGV2ZW50KSB7IG1vZGVzW21vZGVzLmxlbmd0aF0gPSBldmVudC52aWV3TW9kZTsgfSwgZmFsc2Up
OworCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCJtaW5pIik7CisgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCJtaW5pIik7IC8vIHNob3VsZCBiZSBp
Z25vcmVkCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0
dXJlKCJibGFoIik7IC8vIHNob3VsZCBiZSBpZ25vcmVkCisgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCJmbG9hdGluZyIpOworICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSgicXdlIik7IC8vIHNob3Vs
ZCBiZSBpZ25vcmVkCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFZpZXdNb2RlTWVk
aWFGZWF0dXJlKCJmbG9hdGluZyIpOyAvLyBzaG91bGQgYmUgaWdub3JlZAorICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSgiYXBwbGljYXRpb24iKTsK
KyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoImZ1
bGxzY3JlZW4iKTsKKyAgICB9CisKKyAgICBzaG91bGRCZSgibW9kZXMubGVuZ3RoIiwgNCwgbW9k
ZXMubGVuZ3RoKTsKKyAgICBzaG91bGRCZSgibW9kZXNbMF0iLCAibWluaSIsIG1vZGVzWzBdKTsK
KyAgICBzaG91bGRCZSgibW9kZXNbMV0iLCAiZmxvYXRpbmciLCBtb2Rlc1sxXSk7CisgICAgc2hv
dWxkQmUoIm1vZGVzWzJdIiwgImFwcGxpY2F0aW9uIiwgbW9kZXNbMl0pOworICAgIHNob3VsZEJl
KCJtb2Rlc1szXSIsICJmdWxsc2NyZWVuIiwgbW9kZXNbM10pOworfQorCis8L3NjcmlwdD4KKwor
PGJvZHkgb25sb2FkPSJydW5UZXN0cygpIj4KKyAgICA8ZGl2IGlkPSJyZXN1bHRzIj48L2Rpdj4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggMmQxNDM2ZS4uMGY5YzExZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OSBAQAorMjAxMC0w
NC0wOSAgTHVpeiBBZ29zdGluaSAgPGx1aXouYWdvc3RpbmlAb3BlbmJvc3NhLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBm
b3IgV2lkZ2V0cyAxLjA6IFdlYktpdFZpZXdNb2RlQ2hhbmdlRXZlbnQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3MjA1CisKKyAgICAgICAgVGVzdDog
ZmFzdC9ldmVudHMvdmlldy1tb2RlLWNoYW5nZS5odG1sCisKKyAgICAgICAgSW1wbGVtZW50aW5n
IFdlYktpdFZpZXdNb2RlQ2hhbmdlRXZlbnQuCisKKyAgICAgICAgVmlld01vZGVDaGFuZ2VFdmVu
dCBzcGVjaWZpY2F0aW9uIGNhbiBiZSBmb3VuZCBhdDoKKyAgICAgICAgaHR0cDovL2Rldi53My5v
cmcvMjAwNi93YWYvd2lkZ2V0cy12bS92bS1pbnRlcmZhY2VzLnNyYy5odG1sI3ZpZXdtb2RlY2hh
bmdlZGV2ZW50dHlwZXMKKworICAgICAgICAqIERlcml2ZWRTb3VyY2VzLmNwcDoKKyAgICAgICAg
KiBXZWJDb3JlLnByaToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU0V2ZW50Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOgorICAgICAg
ICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y3JlYXRl
RXZlbnQpOgorICAgICAgICAqIGRvbS9FdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVu
dDo6aXNXZWJLaXRWaWV3TW9kZUNoYW5nZUV2ZW50KToKKyAgICAgICAgKiBkb20vRXZlbnQuaDoK
KyAgICAgICAgKiBkb20vV2ViS2l0Vmlld01vZGVDaGFuZ2VFdmVudC5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6V2ViS2l0Vmlld01vZGVDaGFuZ2VFdmVudDo6V2ViS2l0Vmlld01vZGVD
aGFuZ2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRWaWV3TW9kZUNoYW5nZUV2ZW50
Ojppbml0V2ViS2l0Vmlld01vZGVDaGFuZ2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJL
aXRWaWV3TW9kZUNoYW5nZUV2ZW50Ojppc1dlYktpdFZpZXdNb2RlQ2hhbmdlRXZlbnQpOgorICAg
ICAgICAqIGRvbS9XZWJLaXRWaWV3TW9kZUNoYW5nZUV2ZW50Lmg6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6V2ViS2l0Vmlld01vZGVDaGFuZ2VFdmVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OldlYktpdFZpZXdNb2RlQ2hhbmdlRXZlbnQ6OnZpZXdNb2RlKToKKyAgICAgICAgKiBk
b20vV2ViS2l0Vmlld01vZGVDaGFuZ2VFdmVudC5pZGw6IEFkZGVkLgorCisgICAgICAgIFRoZSB2
aWV3TW9kZSBtZWRpYSBmZWF0dXJlIHdhcyBpbXBsZW1lbnRlZCBpbiBwcmV2aW91cyBwYXRjaCBi
dXQgdGhlIHZpZXdNb2RlCisgICAgICAgIHN0cmluZyB3YXMga2VwdCBpbiBXZWJLaXQgbGF5ZXIu
IFRoaXMgcGF0Y2ggbW92ZXMgaXQgdG8gV2ViQ29yZSBhZGRpbmcgc29tZSBhdHRyaWJ1dGVzCisg
ICAgICAgIHRvIHRoZSBjbGFzcyBQYWdlLiBBcyBQYWdlIG5vdyBob2xkcyB0aGUgdmlld01vZGUg
aXQgaXMgdGhlIHJlc3BvbnNpYmxlIGZvciBkaXNwYXRjaGluZyB0aGUgZXZlbnQuCisKKyAgICAg
ICAgSXQgYWxzbyBhZGRzIHRvIENocm9tZS9DaHJvbWVDbGllbnQgYSBuZXcgbWV0aG9kIHRoYXQg
aXMgdXNlZCB0byBhc2sgQ2hyb21lQ2xpZW50IGlmIGEKKyAgICAgICAgY2VydGFpbiB2aWV3TW9k
ZSBpcyBhY2NlcHRhYmxlLgorCisgICAgICAgICogY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6dmlld19tb2RlTWVkaWFGZWF0dXJlRXZhbCk6CisgICAgICAg
ICogcGFnZS9DaHJvbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjphY2NlcHRWaWV3
TW9kZUNoYW5nZVJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjphY2Nl
cHRWaWV3TW9kZUNoYW5nZVJlcXVlc3QpOgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmg6CisgICAg
ICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UGFnZTo6c2V0Vmlld01vZGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFn
ZTo6aXNEb2NrZWQpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6aXNGbG9hdGluZyk6CisgICAg
ICAgIChXZWJDb3JlOjpQYWdlOjppc0FwcGxpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlBh
Z2U6OmlzRnVsbHNjcmVlbik6CisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgIChXZWJD
b3JlOjpQYWdlOjp2aWV3TW9kZSk6CisKIDIwMTAtMDQtMDkgIFNhbSBXZWluaWcgIDxzYW1Ad2Vi
a2l0Lm9yZz4KIAogICAgICAgICBBZGQgYW5vdGhlciBtaXNzaW5nIGV4cG9ydCB0byBmaXggdGhl
IGJ1aWxkLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAgYi9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLmNwcAppbmRleCA0NmI2YWI5Li40NTBkYzUxIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAorKysgYi9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNw
cApAQCAtMzU2LDYgKzM1Niw5IEBACiAjaW5jbHVkZSAiSlNXZWJLaXRDU1NNYXRyaXguY3BwIgog
I2luY2x1ZGUgIkpTV2ViS2l0UG9pbnQuY3BwIgogI2luY2x1ZGUgIkpTV2ViS2l0VHJhbnNpdGlv
bkV2ZW50LmNwcCIKKyNpZiBFTkFCTEUoV0lER0VUU18xMF9TVVBQT1JUKQorI2luY2x1ZGUgIkpT
V2ViS2l0Vmlld01vZGVDaGFuZ2VFdmVudC5jcHAiCisjZW5kaWYKICNpbmNsdWRlICJKU1dlYlNv
Y2tldC5jcHAiCiAjaW5jbHVkZSAiSlNXaGVlbEV2ZW50LmNwcCIKICNpbmNsdWRlICJKU1dvcmtl
ci5jcHAiCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJpIGIvV2ViQ29yZS9XZWJDb3Jl
LnByaQppbmRleCAwMzlmMjZjLi5lNzAwODdkIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUu
cHJpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcmkKQEAgLTI4OSw2ICsyODksNyBAQCBJRExfQklO
RElOR1MgKz0gXAogICAgIGRvbS9VSUV2ZW50LmlkbCBcCiAgICAgZG9tL1dlYktpdEFuaW1hdGlv
bkV2ZW50LmlkbCBcCiAgICAgZG9tL1dlYktpdFRyYW5zaXRpb25FdmVudC5pZGwgXAorICAgIGRv
bS9XZWJLaXRWaWV3TW9kZUNoYW5nZUV2ZW50LmlkbCBcCiAgICAgZG9tL1doZWVsRXZlbnQuaWRs
IFwKICAgICBodG1sL0Jsb2IuaWRsIFwKICAgICBodG1sL2NhbnZhcy9XZWJHTEFycmF5LmlkbCBc
CmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpp
bmRleCAxNDA3M2ZkLi44MGIwYmM5IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJvCisr
KyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTU0MSw2ICs1NDEsNyBAQCBTT1VSQ0VTICs9IFwK
ICAgICBkb20vVXNlckdlc3R1cmVJbmRpY2F0b3IuY3BwIFwKICAgICBkb20vV2ViS2l0QW5pbWF0
aW9uRXZlbnQuY3BwIFwKICAgICBkb20vV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmNwcCBcCisgICAg
ZG9tL1dlYktpdFZpZXdNb2RlQ2hhbmdlRXZlbnQuY3BwIFwKICAgICBkb20vV2hlZWxFdmVudC5j
cHAgXAogICAgIGRvbS9YTUxUb2tlbml6ZXIuY3BwIFwKICAgICBkb20vWE1MVG9rZW5pemVyUXQu
Y3BwIFwKQEAgLTEyNTYsNiArMTI1Nyw3IEBAIEhFQURFUlMgKz0gXAogICAgIGRvbS9Vc2VyR2Vz
dHVyZUluZGljYXRvci5oIFwKICAgICBkb20vV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCBcCiAgICAg
ZG9tL1dlYktpdFRyYW5zaXRpb25FdmVudC5oIFwKKyAgICBkb20vV2ViS2l0Vmlld01vZGVDaGFu
Z2VFdmVudC5oIFwKICAgICBkb20vV2hlZWxFdmVudC5oIFwKICAgICBkb20vWE1MVG9rZW5pemVy
LmggXAogICAgIGVkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaCBcCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0V2ZW50Q3VzdG9tLmNwcAppbmRleCA2Njg2ZDdhLi5jMzNiMjUxIDEwMDY0NAotLS0gYS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNFdmVudEN1c3RvbS5jcHAKQEAgLTUwLDYgKzUwLDkgQEAKICNpbmNsdWRlICJKU1VJRXZl
bnQuaCIKICNpbmNsdWRlICJKU1dlYktpdEFuaW1hdGlvbkV2ZW50LmgiCiAjaW5jbHVkZSAiSlNX
ZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCIKKyNpZiBFTkFCTEUoV0lER0VUU18xMF9TVVBQT1JUKQor
I2luY2x1ZGUgIkpTV2ViS2l0Vmlld01vZGVDaGFuZ2VFdmVudC5oIgorI2VuZGlmCiAjaW5jbHVk
ZSAiSlNXaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSAiSlNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZl
bnQuaCIKICNpbmNsdWRlICJCZWZvcmVMb2FkRXZlbnQuaCIKQEAgLTY2LDYgKzY5LDkgQEAKICNp
bmNsdWRlICJVSUV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCIKICNp
bmNsdWRlICJXZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCIKKyNpZiBFTkFCTEUoV0lER0VUU18xMF9T
VVBQT1JUKQorI2luY2x1ZGUgIldlYktpdFZpZXdNb2RlQ2hhbmdlRXZlbnQuaCIKKyNlbmRpZgog
I2luY2x1ZGUgIldoZWVsRXZlbnQuaCIKICNpbmNsdWRlICJYTUxIdHRwUmVxdWVzdFByb2dyZXNz
RXZlbnQuaCIKICNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgpAQCAtMTU3LDYgKzE2MywxMCBA
QCBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBFdmVudCogZXZlbnQpCiAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX09CSkVD
VF9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgUG9wU3RhdGVFdmVudCwgZXZlbnQpOwogICAg
IGVsc2UgaWYgKGV2ZW50LT5pc0N1c3RvbUV2ZW50KCkpCiAgICAgICAgIHdyYXBwZXIgPSBDUkVB
VEVfRE9NX09CSkVDVF9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgQ3VzdG9tRXZlbnQsIGV2
ZW50KTsKKyNpZiBFTkFCTEUoV0lER0VUU18xMF9TVVBQT1JUKQorICAgIGVsc2UgaWYgKGV2ZW50
LT5pc1dlYktpdFZpZXdNb2RlQ2hhbmdlRXZlbnQoKSkKKyAgICAgICAgd3JhcHBlciA9IENSRUFU
RV9ET01fT0JKRUNUX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBXZWJLaXRWaWV3TW9kZUNo
YW5nZUV2ZW50LCBldmVudCk7CisjZW5kaWYKICAgICBlbHNlCiAgICAgICAgIHdyYXBwZXIgPSBD
UkVBVEVfRE9NX09CSkVDVF9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgRXZlbnQsIGV2ZW50
KTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAgYi9X
ZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcAppbmRleCA0ZmRhMDc1Li4wYWZmYzk2
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcAorKysgYi9X
ZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcApAQCAtNTAwLDE3ICs1MDAsMTQgQEAg
c3RhdGljIGJvb2wgdmlld19tb2RlTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJl
bmRlclN0eWxlKiwgRnJhbWUqIGZyYW0KIHsKICAgICBpZiAodmFsdWUpIHsKICAgICAgICAgU3Ry
aW5nIG1vZGUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKS0+Z2V0U3Ry
aW5nVmFsdWUoKTsKLSAgICAgICAgaWYgKENocm9tZUNsaWVudCogY2xpZW50ID0gZnJhbWUtPnBh
Z2UoKS0+Y2hyb21lKCktPmNsaWVudCgpKSB7Ci0gICAgICAgICAgICBpZiAobW9kZSA9PSAibWlu
aSIgJiYgY2xpZW50LT5pc0RvY2tlZCgpKQotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgICAgICAgICAgaWYgKG1vZGUgPT0gImZsb2F0aW5nIiAmJiBjbGllbnQtPmlzRmxvYXRpbmco
KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIGlmIChtb2RlID09
ICJhcHBsaWNhdGlvbiIgJiYgY2xpZW50LT5pc0FwcGxpY2F0aW9uKCkpCi0gICAgICAgICAgICAg
ICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICBpZiAobW9kZSA9PSAiZnVsbHNjcmVlbiIgJiYg
Y2xpZW50LT5pc0Z1bGxzY3JlZW4oKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQorICAgICAgICBpZiAobW9kZSA9PSAi
bWluaSIgJiYgZnJhbWUtPnBhZ2UoKS0+aXNEb2NrZWQoKSkKKyAgICAgICAgICAgIHJldHVybiB0
cnVlOworICAgICAgICBpZiAobW9kZSA9PSAiZmxvYXRpbmciICYmIGZyYW1lLT5wYWdlKCktPmlz
RmxvYXRpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBpZiAobW9kZSA9
PSAiYXBwbGljYXRpb24iICYmIGZyYW1lLT5wYWdlKCktPmlzQXBwbGljYXRpb24oKSkKKyAgICAg
ICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBpZiAobW9kZSA9PSAiZnVsbHNjcmVlbiIgJiYg
ZnJhbWUtPnBhZ2UoKS0+aXNGdWxsc2NyZWVuKCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9CiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggYmJhNTkzMC4uN2U4N2Vh
MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcApAQCAtMTI4LDYgKzEyOCw5IEBACiAjaW5jbHVkZSAiVXNlckNvbnRlbnRV
UkxQYXR0ZXJuLmgiCiAjaW5jbHVkZSAiV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCIKICNpbmNsdWRl
ICJXZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCIKKyNpZiBFTkFCTEUoV0lER0VUU18xMF9TVVBQT1JU
KQorI2luY2x1ZGUgIldlYktpdFZpZXdNb2RlQ2hhbmdlRXZlbnQuaCIKKyNlbmRpZgogI2luY2x1
ZGUgIldoZWVsRXZlbnQuaCIKICNpbmNsdWRlICJYTUxIdHRwUmVxdWVzdC5oIgogI2luY2x1ZGUg
IlhNTE5TTmFtZXMuaCIKQEAgLTMwNDYsNiArMzA0OSwxMCBAQCBQYXNzUmVmUHRyPEV2ZW50PiBE
b2N1bWVudDo6Y3JlYXRlRXZlbnQoY29uc3QgU3RyaW5nJiBldmVudFR5cGUsIEV4Y2VwdGlvbkNv
ZGUmCiAgICAgICAgIGV2ZW50ID0gVGV4dEV2ZW50OjpjcmVhdGUoKTsKICAgICBlbHNlIGlmIChl
dmVudFR5cGUgPT0gIlVJRXZlbnQiIHx8IGV2ZW50VHlwZSA9PSAiVUlFdmVudHMiKQogICAgICAg
ICBldmVudCA9IFVJRXZlbnQ6OmNyZWF0ZSgpOworI2lmIEVOQUJMRShXSURHRVRTXzEwX1NVUFBP
UlQpCisgICAgZWxzZSBpZiAoZXZlbnRUeXBlID09ICJXZWJLaXRWaWV3TW9kZUNoYW5nZUV2ZW50
IikKKyAgICAgICAgZXZlbnQgPSBXZWJLaXRWaWV3TW9kZUNoYW5nZUV2ZW50OjpjcmVhdGUoKTsK
KyNlbmRpZgogICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSAiV2ViS2l0QW5pbWF0aW9uRXZlbnQi
KQogICAgICAgICBldmVudCA9IFdlYktpdEFuaW1hdGlvbkV2ZW50OjpjcmVhdGUoKTsKICAgICBl
bHNlIGlmIChldmVudFR5cGUgPT0gIldlYktpdFRyYW5zaXRpb25FdmVudCIpCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2RvbS9FdmVudC5jcHAgYi9XZWJDb3JlL2RvbS9FdmVudC5jcHAKaW5kZXggNTA2
ZDk0NS4uYmVhNWNjZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRXZlbnQuY3BwCisrKyBiL1dl
YkNvcmUvZG9tL0V2ZW50LmNwcApAQCAtMTcyLDYgKzE3MiwxMyBAQCBib29sIEV2ZW50Ojppc0Jl
Zm9yZUxvYWRFdmVudCgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCisjaWYgRU5BQkxF
KFdJREdFVFNfMTBfU1VQUE9SVCkKK2Jvb2wgRXZlbnQ6OmlzV2ViS2l0Vmlld01vZGVDaGFuZ2VF
dmVudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorI2VuZGlmCisKICNpZiBFTkFC
TEUoU1ZHKQogYm9vbCBFdmVudDo6aXNTVkdab29tRXZlbnQoKSBjb25zdAogewpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9kb20vRXZlbnQuaCBiL1dlYkNvcmUvZG9tL0V2ZW50LmgKaW5kZXggMDBiMzM0
MS4uMGFlZjM1NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRXZlbnQuaAorKysgYi9XZWJDb3Jl
L2RvbS9FdmVudC5oCkBAIC0xMjMsNiArMTIzLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICB2aXJ0dWFsIGJvb2wgaXNXZWJLaXRBbmltYXRpb25FdmVudCgpIGNvbnN0OwogICAgICAg
ICB2aXJ0dWFsIGJvb2wgaXNXZWJLaXRUcmFuc2l0aW9uRXZlbnQoKSBjb25zdDsKICAgICAgICAg
dmlydHVhbCBib29sIGlzQmVmb3JlTG9hZEV2ZW50KCkgY29uc3Q7CisjaWYgRU5BQkxFKFdJREdF
VFNfMTBfU1VQUE9SVCkKKyAgICAgICAgdmlydHVhbCBib29sIGlzV2ViS2l0Vmlld01vZGVDaGFu
Z2VFdmVudCgpIGNvbnN0OworI2VuZGlmCiAjaWYgRU5BQkxFKFNWRykKICAgICAgICAgdmlydHVh
bCBib29sIGlzU1ZHWm9vbUV2ZW50KCkgY29uc3Q7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvZG9tL1dlYktpdFZpZXdNb2RlQ2hhbmdlRXZlbnQuY3BwIGIvV2ViQ29yZS9kb20vV2ViS2l0
Vmlld01vZGVDaGFuZ2VFdmVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uNmJmNGQ1NgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvZG9tL1dlYktpdFZpZXdNb2Rl
Q2hhbmdlRXZlbnQuY3BwCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYktpdFZpZXdNb2RlQ2hhbmdlRXZlbnQu
aCIKKworI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitX
ZWJLaXRWaWV3TW9kZUNoYW5nZUV2ZW50OjpXZWJLaXRWaWV3TW9kZUNoYW5nZUV2ZW50KCkKK3sK
K30KKwordm9pZCBXZWJLaXRWaWV3TW9kZUNoYW5nZUV2ZW50Ojppbml0V2ViS2l0Vmlld01vZGVD
aGFuZ2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29s
IGNhbmNlbGFibGUsIGNvbnN0IFN0cmluZyYgdmlld01vZGUpCit7CisgICAgaWYgKGRpc3BhdGNo
ZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaW5pdEV2ZW50KHR5cGUsIGNhbkJ1YmJsZSwg
Y2FuY2VsYWJsZSk7CisKKyAgICBtX3ZpZXdNb2RlID0gdmlld01vZGU7Cit9CisKK2Jvb2wgV2Vi
S2l0Vmlld01vZGVDaGFuZ2VFdmVudDo6aXNXZWJLaXRWaWV3TW9kZUNoYW5nZUV2ZW50KCkgY29u
c3QKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9kb20vV2ViS2l0Vmlld01vZGVDaGFuZ2VFdmVudC5oIGIvV2ViQ29y
ZS9kb20vV2ViS2l0Vmlld01vZGVDaGFuZ2VFdmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjAwMzgxZmEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2RvbS9XZWJL
aXRWaWV3TW9kZUNoYW5nZUV2ZW50LmgKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykK
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBV
VEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVU
RVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIFdlYktpdFZpZXdNb2RlQ2hhbmdlRXZlbnRfaAorI2RlZmluZSBXZWJL
aXRWaWV3TW9kZUNoYW5nZUV2ZW50X2gKKworI2luY2x1ZGUgIkF0b21pY1N0cmluZy5oIgorI2lu
Y2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBXZWJLaXRWaWV3TW9kZUNoYW5nZUV2ZW50IDogcHVibGljIEV2
ZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJLaXRWaWV3TW9kZUNoYW5n
ZUV2ZW50PiBjcmVhdGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJL
aXRWaWV3TW9kZUNoYW5nZUV2ZW50KTsKKyAgICB9CisKKyAgICB2b2lkIGluaXRXZWJLaXRWaWV3
TW9kZUNoYW5nZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUs
IGJvb2wgY2FuY2VsYWJsZSwgY29uc3QgU3RyaW5nJiB2aWV3TW9kZSk7CisKKyAgICB2aXJ0dWFs
IGJvb2wgaXNXZWJLaXRWaWV3TW9kZUNoYW5nZUV2ZW50KCkgY29uc3Q7CisKKyAgICBTdHJpbmcg
dmlld01vZGUoKSBjb25zdCB7IHJldHVybiBtX3ZpZXdNb2RlOyB9CisKK3ByaXZhdGU6CisgICAg
V2ViS2l0Vmlld01vZGVDaGFuZ2VFdmVudCgpOworCisgICAgU3RyaW5nIG1fdmlld01vZGU7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBXZWJLaXRWaWV3TW9kZUNo
YW5nZUV2ZW50X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1dlYktpdFZpZXdNb2RlQ2hhbmdl
RXZlbnQuaWRsIGIvV2ViQ29yZS9kb20vV2ViS2l0Vmlld01vZGVDaGFuZ2VFdmVudC5pZGwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTIzYWM3YgotLS0gL2Rldi9udWxsCisr
KyBiL1dlYkNvcmUvZG9tL1dlYktpdFZpZXdNb2RlQ2hhbmdlRXZlbnQuaWRsCkBAIC0wLDAgKzEs
MzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCittb2R1bGUgZXZlbnRzIHsKKworICAgIGlu
dGVyZmFjZSBXZWJLaXRWaWV3TW9kZUNoYW5nZUV2ZW50IDogRXZlbnQgeworCisgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdmlld01vZGU7CisKKyAgICAgICAgLy8gRm9yIERP
TSBMZXZlbCAzIGFuZCBET00gTGV2ZWwgMiBzdXBwb3J0CisgICAgICAgIHZvaWQgaW5pdFdlYktp
dFZpZXdNb2RlQ2hhbmdlRXZlbnQoaW4gRE9NU3RyaW5nIHR5cGVBcmcsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGJvb2xlYW4gY2FuQnViYmxlQXJnLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBib29sZWFuIGNh
bmNlbGFibGVBcmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluIERPTVN0cmluZyB2aWV3TW9kZUFyZyk7CisgICAgfTsKKworfQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wYWdlL0Nocm9tZS5jcHAgYi9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAppbmRleCBmNDI4
NjA4Li42OGM1Njc3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAorKysgYi9X
ZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcApAQCAtNDQ3LDYgKzQ0NywxMyBAQCBOb3RpZmljYXRpb25Q
cmVzZW50ZXIqIENocm9tZTo6bm90aWZpY2F0aW9uUHJlc2VudGVyKCkgY29uc3QKIH0KICNlbmRp
ZgogCisjaWYgRU5BQkxFKFdJREdFVFNfMTBfU1VQUE9SVCkKK2Jvb2wgQ2hyb21lOjphY2NlcHRW
aWV3TW9kZUNoYW5nZVJlcXVlc3QoY29uc3QgU3RyaW5nJiB2aWV3TW9kZSkKK3sKKyAgICByZXR1
cm4gbV9jbGllbnQtPmFjY2VwdFZpZXdNb2RlQ2hhbmdlUmVxdWVzdCh2aWV3TW9kZSk7Cit9Cisj
ZW5kaWYKKwogLy8gLS0tLS0tLS0KIAogI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkKQEAg
LTQ5MSw1ICs0OTgsMTIgQEAgYm9vbCBDaHJvbWVDbGllbnQ6OnBhaW50Q3VzdG9tU2Nyb2xsQ29y
bmVyKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYpCiAgICAgcmV0dXJuIGZhbHNl
OwogfQogCisjaWYgRU5BQkxFKFdJREdFVFNfMTBfU1VQUE9SVCkKK2Jvb2wgQ2hyb21lQ2xpZW50
OjphY2NlcHRWaWV3TW9kZUNoYW5nZVJlcXVlc3QoY29uc3QgU3RyaW5nJiB2aWV3TW9kZSkKK3sK
KyAgICByZXR1cm4gZmFsc2U7Cit9CisjZW5kaWYKKwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmggYi9XZWJDb3JlL3BhZ2UvQ2hyb21l
LmgKaW5kZXggNzZiNDE0OS4uZDFmY2FiNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0Nocm9t
ZS5oCisrKyBiL1dlYkNvcmUvcGFnZS9DaHJvbWUuaApAQCAtNTksNiArNTksMTAgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiAgICAgICAgIENocm9tZUNsaWVudCogY2xpZW50KCkgeyByZXR1cm4g
bV9jbGllbnQ7IH0KIAorI2lmIEVOQUJMRShXSURHRVRTXzEwX1NVUFBPUlQpCisgICAgICAgIGJv
b2wgYWNjZXB0Vmlld01vZGVDaGFuZ2VSZXF1ZXN0KGNvbnN0IFN0cmluZyYgdmlld01vZGUpOwor
I2VuZGlmCisKICAgICAgICAgLy8gSG9zdFdpbmRvdyBtZXRob2RzLgogCiAgICAgICAgIHZpcnR1
YWwgdm9pZCBpbnZhbGlkYXRlV2luZG93KGNvbnN0IEludFJlY3QmLCBib29sKTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGll
bnQuaAppbmRleCA3MGY3NGM2Li43MWYzZTVlIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvQ2hy
b21lQ2xpZW50LmgKKysrIGIvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC05NSw2ICs5
NSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBjYW5SdW5N
b2RhbCgpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHJ1bk1vZGFsKCkgPSAwOwogCisjaWYg
RU5BQkxFKFdJREdFVFNfMTBfU1VQUE9SVCkKKyAgICAgICAgdmlydHVhbCBib29sIGFjY2VwdFZp
ZXdNb2RlQ2hhbmdlUmVxdWVzdChjb25zdCBTdHJpbmcmIHZpZXdNb2RlKTsKKyNlbmRpZgorCiAg
ICAgICAgIHZpcnR1YWwgdm9pZCBzZXRUb29sYmFyc1Zpc2libGUoYm9vbCkgPSAwOwogICAgICAg
ICB2aXJ0dWFsIGJvb2wgdG9vbGJhcnNWaXNpYmxlKCkgPSAwOwogICAgICAgICAKQEAgLTIzMCwx
MyArMjM0LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQgbmVl
ZFRvdWNoRXZlbnRzKGJvb2wpID0gMDsKICNlbmRpZgogCi0jaWYgRU5BQkxFKFdJREdFVFNfMTBf
U1VQUE9SVCkKLSAgICAgICAgdmlydHVhbCBib29sIGlzRG9ja2VkKCkgeyByZXR1cm4gZmFsc2U7
IH0KLSAgICAgICAgdmlydHVhbCBib29sIGlzRmxvYXRpbmcoKSB7IHJldHVybiBmYWxzZTsgfQot
ICAgICAgICB2aXJ0dWFsIGJvb2wgaXNBcHBsaWNhdGlvbigpIHsgcmV0dXJuIGZhbHNlOyB9Ci0g
ICAgICAgIHZpcnR1YWwgYm9vbCBpc0Z1bGxzY3JlZW4oKSB7IHJldHVybiBmYWxzZTsgfQotI2Vu
ZGlmCi0KICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHZpcnR1YWwgfkNocm9tZUNsaWVudCgpIHsg
fQogICAgIH07CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9XZWJDb3JlL3Bh
Z2UvUGFnZS5jcHAKaW5kZXggZDY2ZTQ5Ny4uOGQ0ZmZjOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtNjIsNiArNjIsOSBA
QAogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgIlN0cmluZ0hhc2guaCIKICNp
bmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVyLmgiCisjaWYgRU5BQkxFKFdJREdFVFNfMTBfU1VQ
UE9SVCkKKyNpbmNsdWRlICJXZWJLaXRWaWV3TW9kZUNoYW5nZUV2ZW50LmgiCisjZW5kaWYKICNp
bmNsdWRlICJXaWRnZXQuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkTGVha0NvdW50ZXIuaD4KQEAgLTIwOCw2ICsyMTEsNTAgQEAgUGFnZTo6flBh
Z2UoKQogI2VuZGlmCiB9CiAKKyNpZiBFTkFCTEUoV0lER0VUU18xMF9TVVBQT1JUKQorYm9vbCBQ
YWdlOjpzZXRWaWV3TW9kZShjb25zdCBTdHJpbmcmIHZpZXdNb2RlKQoreworICAgIGlmIChtX3Zp
ZXdNb2RlID09IHZpZXdNb2RlIHx8ICFjaHJvbWUoKS0+YWNjZXB0Vmlld01vZGVDaGFuZ2VSZXF1
ZXN0KHZpZXdNb2RlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgbV92aWV3TW9kZSA9
IHZpZXdNb2RlOworCisgICAgaWYgKCFtX21haW5GcmFtZSB8fCAhbV9tYWluRnJhbWUtPmRvY3Vt
ZW50KCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgbV9tYWluRnJhbWUtPmRvY3VtZW50
KCktPnVwZGF0ZVN0eWxlU2VsZWN0b3IoKTsKKworICAgIGlmIChtX21haW5GcmFtZS0+dmlldygp
KQorICAgICAgICBtX21haW5GcmFtZS0+dmlldygpLT5mb3JjZUxheW91dCgpOworCisgICAgUmVm
UHRyPFdlYktpdFZpZXdNb2RlQ2hhbmdlRXZlbnQ+IGV2ZW50ID0gV2ViS2l0Vmlld01vZGVDaGFu
Z2VFdmVudDo6Y3JlYXRlKCk7CisgICAgZXZlbnQtPmluaXRXZWJLaXRWaWV3TW9kZUNoYW5nZUV2
ZW50KCJ3ZWJraXR2aWV3bW9kZWNoYW5nZSIsIHRydWUsIHRydWUsIG1fdmlld01vZGUpOworICAg
IG1fbWFpbkZyYW1lLT5kb2N1bWVudCgpLT5kaXNwYXRjaEV2ZW50KGV2ZW50LnJlbGVhc2UoKSk7
CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBQYWdlOjppc0RvY2tlZCgpCit7CisgICAg
cmV0dXJuIG1fdmlld01vZGUgPT0gIm1pbmkiOworfQorCitib29sIFBhZ2U6OmlzRmxvYXRpbmco
KQoreworICAgIHJldHVybiBtX3ZpZXdNb2RlID09ICJmbG9hdGluZyI7Cit9CisKK2Jvb2wgUGFn
ZTo6aXNBcHBsaWNhdGlvbigpCit7CisgICAgcmV0dXJuIG1fdmlld01vZGUgPT0gImFwcGxpY2F0
aW9uIjsKK30KKworYm9vbCBQYWdlOjppc0Z1bGxzY3JlZW4oKQoreworICAgIHJldHVybiBtX3Zp
ZXdNb2RlID09ICJmdWxsc2NyZWVuIjsKK30KKyNlbmRpZgorCiB2b2lkIFBhZ2U6OnNldE1haW5G
cmFtZShQYXNzUmVmUHRyPEZyYW1lPiBtYWluRnJhbWUpCiB7CiAgICAgQVNTRVJUKCFtX21haW5G
cmFtZSk7IC8vIFNob3VsZCBvbmx5IGJlIGNhbGxlZCBkdXJpbmcgaW5pdGlhbGl6YXRpb24KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4
IDk0ZTZkZDUuLjllYTllNTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIv
V2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtMTIyLDYgKzEyMiwxNiBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIEhpc3RvcnlJdGVtKiBnbG9iYWxIaXN0b3J5SXRlbSgpIGNvbnN0IHsgcmV0
dXJuIG1fZ2xvYmFsSGlzdG9yeUl0ZW0uZ2V0KCk7IH0KICAgICAgICAgdm9pZCBzZXRHbG9iYWxI
aXN0b3J5SXRlbShIaXN0b3J5SXRlbSopOwogCisKKyNpZiBFTkFCTEUoV0lER0VUU18xMF9TVVBQ
T1JUKQorICAgICAgICBib29sIHNldFZpZXdNb2RlKGNvbnN0IFN0cmluZyYgdmlld01vZGUpOwor
ICAgICAgICBTdHJpbmcgdmlld01vZGUoKSBjb25zdCB7IHJldHVybiBtX3ZpZXdNb2RlOyB9Cisg
ICAgICAgIHZpcnR1YWwgYm9vbCBpc0RvY2tlZCgpOworICAgICAgICB2aXJ0dWFsIGJvb2wgaXNG
bG9hdGluZygpOworICAgICAgICB2aXJ0dWFsIGJvb2wgaXNBcHBsaWNhdGlvbigpOworICAgICAg
ICB2aXJ0dWFsIGJvb2wgaXNGdWxsc2NyZWVuKCk7CisjZW5kaWYKKwogICAgICAgICB2b2lkIHNl
dEdyb3VwTmFtZShjb25zdCBTdHJpbmcmKTsKICAgICAgICAgY29uc3QgU3RyaW5nJiBncm91cE5h
bWUoKSBjb25zdDsKIApAQCAtMjY3LDYgKzI3NywxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
ICAgICAgICAgRWRpdG9yQ2xpZW50KiBtX2VkaXRvckNsaWVudDsKIAorI2lmIEVOQUJMRShXSURH
RVRTXzEwX1NVUFBPUlQpCisgICAgICAgIFN0cmluZyBtX3ZpZXdNb2RlOworI2VuZGlmCisKICAg
ICAgICAgaW50IG1fZnJhbWVDb3VudDsKICAgICAgICAgU3RyaW5nIG1fZ3JvdXBOYW1lOwogICAg
ICAgICBib29sIG1fb3BlbmVkQnlET007CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvQXBpL3F3ZWJw
YWdlLmNwcCBiL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwCmluZGV4IGJkMTRhY2YuLjIxOTFj
NDggMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwCisrKyBiL1dlYktpdC9x
dC9BcGkvcXdlYnBhZ2UuY3BwCkBAIC0xMjEsMTEgKzEyMSwxMSBAQCB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKIAogdm9pZCBRV0VCS0lUX0VYUE9SVCBxdF93cnRfc2V0Vmlld01vZGUoUVdlYlBh
Z2UqIHBhZ2UsIGNvbnN0IFFTdHJpbmcmIG1vZGUpCiB7Ci0gICAgUVdlYlBhZ2VQcml2YXRlOjpw
cml2KHBhZ2UpLT52aWV3TW9kZSA9IG1vZGU7Ci0gICAgV2ViQ29yZTo6RnJhbWUqIGZyYW1lID0g
UVdlYkZyYW1lUHJpdmF0ZTo6Y29yZShwYWdlLT5tYWluRnJhbWUoKSk7Ci0gICAgV2ViQ29yZTo6
RnJhbWVWaWV3KiB2aWV3ID0gZnJhbWUtPnZpZXcoKTsKLSAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+
dXBkYXRlU3R5bGVTZWxlY3RvcigpOwotICAgIHZpZXctPmZvcmNlTGF5b3V0KCk7CisjaWYgRU5B
QkxFKFdJREdFVFNfMTBfU1VQUE9SVCkKKyAgICBXZWJDb3JlOjpQYWdlKiBjb3JlID0gUVdlYlBh
Z2VQcml2YXRlOjpjb3JlKHBhZ2UpOworICAgIGlmIChjb3JlKQorICAgICAgICBjb3JlLT5zZXRW
aWV3TW9kZShtb2RlKTsKKyNlbmRpZgogfQogCiB2b2lkIFFXRUJLSVRfRVhQT1JUIHF0X2RydF9v
dmVyd3JpdGVQbHVnaW5EaXJlY3RvcmllcygpCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvQXBpL3F3
ZWJwYWdlX3AuaCBiL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2VfcC5oCmluZGV4IDA3MTJkMGMuLjQ2
MWFjMDMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2VfcC5oCisrKyBiL1dlYktp
dC9xdC9BcGkvcXdlYnBhZ2VfcC5oCkBAIC0xODYsOCArMTg2LDYgQEAgcHVibGljOgogICAgIGJv
b2wgaW5zcGVjdG9ySXNJbnRlcm5hbE9ubHk7IC8vIFRydWUgaWYgY3JlYXRlZCB0aHJvdWdoIHRo
ZSBJbnNwZWN0IGNvbnRleHQgbWVudSBhY3Rpb24KICAgICBRdDo6RHJvcEFjdGlvbiBtX2xhc3RE
cm9wQWN0aW9uOwogCi0gICAgUVN0cmluZyB2aWV3TW9kZTsKLQogICAgIHN0YXRpYyBib29sIGRy
dFJ1bjsKIH07CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9XZWJLaXQvcXQv
Q2hhbmdlTG9nCmluZGV4IDdkZGRkZjUuLmI3MmI2NTAgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9D
aGFuZ2VMb2cKKysrIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEw
LTA0LTA5ICBMdWl6IEFnb3N0aW5pICA8bHVpei5hZ29zdGluaUBvcGVuYm9zc2Eub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0
IGZvciBXaWRnZXRzIDEuMDogV2ViS2l0Vmlld01vZGVDaGFuZ2VFdmVudAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzcyMDUKKworICAgICAgICBBcyBj
bGFzcyBQYWdlIG5vdyBob2xkcyBjdXJyZW50IHZpZXdNb2RlIHZhbHVlIHRoZSByZWxhdGVkIGNv
ZGUgd2FzIHJlbW92ZWQgZnJvbSBjbGFzc2VzCisgICAgICAgIFFXZWJQYWdlIGFuZCBDaHJvbWVD
bGllbnRRdC4KKworICAgICAgICBUaGUgbWV0aG9kIFdlYkNvcmU6OkNocm9tZUNsaWVudFF0Ojph
Y2NlcHRWaWV3TW9kZUNoYW5nZVJlcXVlc3Qgd2FzIGFkZGVkLgorCisgICAgICAgICogQXBpL3F3
ZWJwYWdlLmNwcDoKKyAgICAgICAgKHF0X3dydF9zZXRWaWV3TW9kZSk6CisgICAgICAgICogQXBp
L3F3ZWJwYWdlX3AuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6YWNjZXB0Vmlld01vZGVDaGFu
Z2VSZXF1ZXN0KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oOgor
CiAyMDEwLTA0LTA5ICBBbnRvbmlvIEdvbWVzICA8dG9uaWtpdG9vQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgSG9sZ2VyIEZyZXl0aGVyLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcCBiL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKaW5kZXggY2QwY2JhNy4uOWM5YzM0MyAxMDA2NDQKLS0t
IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcAorKysgYi9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwCkBAIC01NDQsNiArNTQ0LDE1
IEBAIHZvaWQgQ2hyb21lQ2xpZW50UXQ6OnNjaGVkdWxlQ29tcG9zaXRpbmdMYXllclN5bmMoKQog
fQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoV0lER0VUU18xMF9TVVBQT1JUKQorYm9vbCBDaHJvbWVD
bGllbnRRdDo6YWNjZXB0Vmlld01vZGVDaGFuZ2VSZXF1ZXN0KGNvbnN0IFN0cmluZyYgdmlld01v
ZGUpCit7CisgICAgUVN0cmluZ0xpc3Qgc3VwcG9ydGVkTW9kZXM7CisgICAgc3VwcG9ydGVkTW9k
ZXMgPDwgImFwcGxpY2F0aW9uIiA8PCAibWluaSIgPDwgImZsb2F0aW5nIiA8PCAiZnVsbHNjcmVl
biI7CisgICAgcmV0dXJuIHN1cHBvcnRlZE1vZGVzLmNvbnRhaW5zKHZpZXdNb2RlKTsKK30KKyNl
bmRpZgorCiBRdEFic3RyYWN0V2ViUG9wdXAqIENocm9tZUNsaWVudFF0OjpjcmVhdGVTZWxlY3RQ
b3B1cCgpCiB7CiAjaWYgZGVmaW5lZChRX1dTX01BRU1PXzUpCkBAIC01NTMsMjYgKzU2Miw0IEBA
IFF0QWJzdHJhY3RXZWJQb3B1cCogQ2hyb21lQ2xpZW50UXQ6OmNyZWF0ZVNlbGVjdFBvcHVwKCkK
ICNlbmRpZgogfQogCi0jaWYgRU5BQkxFKFdJREdFVFNfMTBfU1VQUE9SVCkKLWJvb2wgQ2hyb21l
Q2xpZW50UXQ6OmlzRG9ja2VkKCkKLXsKLSAgICByZXR1cm4gbV93ZWJQYWdlLT5kLT52aWV3TW9k
ZSA9PSAibWluaSI7Ci19Ci0KLWJvb2wgQ2hyb21lQ2xpZW50UXQ6OmlzRmxvYXRpbmcoKQotewot
ICAgIHJldHVybiBtX3dlYlBhZ2UtPmQtPnZpZXdNb2RlID09ICJmbG9hdGluZyI7Ci19Ci0KLWJv
b2wgQ2hyb21lQ2xpZW50UXQ6OmlzQXBwbGljYXRpb24oKQotewotICAgIHJldHVybiBtX3dlYlBh
Z2UtPmQtPnZpZXdNb2RlID09ICJhcHBsaWNhdGlvbiI7Ci19Ci0KLWJvb2wgQ2hyb21lQ2xpZW50
UXQ6OmlzRnVsbHNjcmVlbigpCi17Ci0gICAgcmV0dXJuIG1fd2ViUGFnZS0+ZC0+dmlld01vZGUg
PT0gImZ1bGxzY3JlZW4iOwotfQotI2VuZGlmCi0KIH0KZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudFF0LmgKaW5kZXggZTI0Y2NkZC4uOWYwMmExNSAxMDA2NDQKLS0tIGEvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmgKKysrIGIvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmgKQEAgLTcwLDYgKzcwLDEwIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBQYWdlKiBjcmVhdGVXaW5kb3coRnJhbWUqLCBj
b25zdCBGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2luZG93RmVhdHVyZXMmKTsKICAgICAgICAg
dmlydHVhbCB2b2lkIHNob3coKTsKIAorI2lmIEVOQUJMRShXSURHRVRTXzEwX1NVUFBPUlQpCisg
ICAgICAgIHZpcnR1YWwgYm9vbCBhY2NlcHRWaWV3TW9kZUNoYW5nZVJlcXVlc3QoY29uc3QgU3Ry
aW5nJiB2aWV3TW9kZSk7CisjZW5kaWYKKwogICAgICAgICB2aXJ0dWFsIGJvb2wgY2FuUnVuTW9k
YWwoKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHJ1bk1vZGFsKCk7CiAKQEAgLTE1NCwxMyArMTU4
LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEdl
b2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKEZyYW1lKiwgR2VvbG9jYXRpb24qKTsKICAgICAg
ICAgdmlydHVhbCB2b2lkIGNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFt
ZShGcmFtZSosIEdlb2xvY2F0aW9uKikgeyB9CiAKLSNpZiBFTkFCTEUoV0lER0VUU18xMF9TVVBQ
T1JUKQotICAgICAgICB2aXJ0dWFsIGJvb2wgaXNEb2NrZWQoKTsKLSAgICAgICAgdmlydHVhbCBi
b29sIGlzRmxvYXRpbmcoKTsKLSAgICAgICAgdmlydHVhbCBib29sIGlzQXBwbGljYXRpb24oKTsK
LSAgICAgICAgdmlydHVhbCBib29sIGlzRnVsbHNjcmVlbigpOwotI2VuZGlmCi0KICAgICAgICAg
UXRBYnN0cmFjdFdlYlBvcHVwKiBjcmVhdGVTZWxlY3RQb3B1cCgpOwogCiAgICAgICAgIFFXZWJQ
YWdlKiBtX3dlYlBhZ2U7Ci0tIAoxLjYuMy4zCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55394</attachid>
            <date>2010-05-07 10:36:36 -0700</date>
            <delta_ts>2010-05-31 12:11:14 -0700</delta_ts>
            <desc>patch 3</desc>
            <filename>0001-matchMedium-callbacks.patch</filename>
            <type>text/plain</type>
            <size>21219</size>
            <attacher name="Luiz Agostini">luiz</attacher>
            
              <data encoding="base64">RnJvbSA4NjRiYzgzZGViODU5ZTk4NGQ1MmM1ZjRmNTg3OTk0MzRmNjZiMTZkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWl6IEFnb3N0aW5pIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IEZyaSwgNyBNYXkgMjAxMCAxMjoyMToyNyAtMDMwMApTdWJqZWN0OiBbUEFU
Q0hdIG1hdGNoTWVkaXVtIGNhbGxiYWNrcwogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTM3MjA1CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCkZpcnN0IGRyYWZ0
LiBNYWluIG9iamVjdGl2ZSBpcyB0byByZWNlaXZlIHNvbWUgZmVlZGJhY2sgYW5kIHRvIHVzZSB0
aGlzIHBhdGNoIGFzCmEgcmVmZXJlbmNlIHRvIGRpc2N1c3Npb25zLgoKV2ViQ29yZToKClRlc3Q6
IGZhc3QvbWVkaWEvbWF0Y2htZWRpdW0tY2FsbGJhY2tzLmh0bWwKCiogV2ViQ29yZS5wcmk6Ciog
V2ViQ29yZS5wcm86CiogYmluZGluZ3MvanMvSlNNZWRpYUNoYW5nZUxpc3RlbmVyLmNwcDogQWRk
ZWQuCihXZWJDb3JlOjpKU01lZGlhQ2hhbmdlTGlzdGVuZXI6Om1lZGlhQ2hhbmdlZCk6CiogYmlu
ZGluZ3MvanMvSlNNZWRpYUNoYW5nZUxpc3RlbmVyLmg6IEFkZGVkLgooV2ViQ29yZTo6SlNNZWRp
YUNoYW5nZUxpc3RlbmVyOjpKU01lZGlhQ2hhbmdlTGlzdGVuZXIpOgooV2ViQ29yZTo6dG9NZWRp
YUNoYW5nZUxpc3RlbmVyKToKKiBiaW5kaW5ncy92OC9WOE1lZGlhQ2hhbmdlTGlzdGVuZXIuY3Bw
OiBBZGRlZC4KKFY4TWVkaWFDaGFuZ2VMaXN0ZW5lcjo6bWVkaWFDaGFuZ2VkKToKKiBiaW5kaW5n
cy92OC9WOE1lZGlhQ2hhbmdlTGlzdGVuZXIuaDogQWRkZWQuCihXZWJDb3JlOjpKU01lZGlhQ2hh
bmdlTGlzdGVuZXI6OkpTTWVkaWFDaGFuZ2VMaXN0ZW5lcik6CihXZWJDb3JlOjp0b01lZGlhQ2hh
bmdlTGlzdGVuZXIpOgoqIGNzcy9NZWRpYUNoYW5nZUxpc3RlbmVyLmg6IEFkZGVkLgooV2ViQ29y
ZTo6TWVkaWFDaGFuZ2VMaXN0ZW5lcjo6fk1lZGlhQ2hhbmdlTGlzdGVuZXIpOgoqIGNzcy9NZWRp
YUNoYW5nZUxpc3RlbmVyLmlkbDogQWRkZWQuCiogY3NzL1N0eWxlTWVkaWEuY3BwOgooV2ViQ29y
ZTo6U3R5bGVNZWRpYTo6UXVlcnk6OmV2YWwpOgooV2ViQ29yZTo6U3R5bGVNZWRpYTo6bWF0Y2hN
ZWRpdW0pOgooV2ViQ29yZTo6U3R5bGVNZWRpYTo6cHJlcGFyZUV2YWx1YXRvcik6CihXZWJDb3Jl
OjpTdHlsZU1lZGlhOjpzdHlsZUNoYW5nZWQpOgoqIGNzcy9TdHlsZU1lZGlhLmg6CihXZWJDb3Jl
OjpTdHlsZU1lZGlhOjpRdWVyeTo6UXVlcnkpOgoqIGNzcy9TdHlsZU1lZGlhLmlkbDoKKiBkb20v
RG9jdW1lbnQuY3BwOgooV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZVN0eWxlU2VsZWN0b3IpOgoK
TGF5b3V0VGVzdHM6CgoqIGZhc3QvbWVkaWEvbWF0Y2htZWRpdW0tY2FsbGJhY2tzLWV4cGVjdGVk
LnR4dDogQWRkZWQuCiogZmFzdC9tZWRpYS9tYXRjaG1lZGl1bS1jYWxsYmFja3MuaHRtbDogQWRk
ZWQuCi0tLQogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgIDEzICsrKysKIC4uLi9mYXN0L21lZGlhL21hdGNobWVkaXVtLWNhbGxiYWNrcy1leHBl
Y3RlZC50eHQgIHwgICAgMSArCiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhL21hdGNobWVkaXVtLWNh
bGxiYWNrcy5odG1sICB8ICAgNzAgKysrKysrKysrKysrKysrKysrKysKIFdlYkNvcmUvQ2hhbmdl
TG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzOCArKysrKysrKysrKwog
V2ViQ29yZS9XZWJDb3JlLnByaSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAx
ICsKIFdlYkNvcmUvV2ViQ29yZS5wcm8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAgNCArLQogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lZGlhQ2hhbmdlTGlzdGVuZXIuY3BwICAg
ICAgfCAgIDMxICsrKysrKysrKwogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lZGlhQ2hhbmdlTGlz
dGVuZXIuaCAgICAgICAgfCAgIDMxICsrKysrKysrKwogV2ViQ29yZS9iaW5kaW5ncy92OC9WOE1l
ZGlhQ2hhbmdlTGlzdGVuZXIuY3BwICAgICAgfCAgIDMwICsrKysrKysrCiBXZWJDb3JlL2JpbmRp
bmdzL3Y4L1Y4TWVkaWFDaGFuZ2VMaXN0ZW5lci5oICAgICAgICB8ICAgMjkgKysrKysrKysKIFdl
YkNvcmUvY3NzL01lZGlhQ2hhbmdlTGlzdGVuZXIuaCAgICAgICAgICAgICAgICAgIHwgICAxOCAr
KysrKwogV2ViQ29yZS9jc3MvTWVkaWFDaGFuZ2VMaXN0ZW5lci5pZGwgICAgICAgICAgICAgICAg
fCAgIDMwICsrKysrKysrCiBXZWJDb3JlL2Nzcy9TdHlsZU1lZGlhLmNwcCAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgNjQgKysrKysrKysrKysrKysrLS0tLQogV2ViQ29yZS9jc3MvU3R5bGVN
ZWRpYS5oICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDI1ICsrKysrKystCiBXZWJDb3Jl
L2Nzcy9TdHlsZU1lZGlhLmlkbCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKy0KIFdl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNCAr
CiAxNiBmaWxlcyBjaGFuZ2VkLCAzNzYgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCiBj
cmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tYXRjaG1lZGl1bS1jYWxs
YmFja3MtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYS9tYXRjaG1lZGl1bS1jYWxsYmFja3MuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNv
cmUvYmluZGluZ3MvanMvSlNNZWRpYUNoYW5nZUxpc3RlbmVyLmNwcAogY3JlYXRlIG1vZGUgMTAw
NjQ0IFdlYkNvcmUvYmluZGluZ3MvanMvSlNNZWRpYUNoYW5nZUxpc3RlbmVyLmgKIGNyZWF0ZSBt
b2RlIDEwMDY0NCBXZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4TWVkaWFDaGFuZ2VMaXN0ZW5lci5jcHAK
IGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4TWVkaWFDaGFuZ2VMaXN0
ZW5lci5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9jc3MvTWVkaWFDaGFuZ2VMaXN0ZW5l
ci5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9jc3MvTWVkaWFDaGFuZ2VMaXN0ZW5lci5p
ZGwKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggMDRmNmIyMC4uMWFhOTQ4OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEw
LTA1LTA3ICBMdWl6IEFnb3N0aW5pICA8bHVpei5hZ29zdGluaUBvcGVuYm9zc2Eub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIG1hdGNoTWVkaXVt
IGNhbGxiYWNrcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MzcyMDUKKworICAgICAgICBGaXJzdCBkcmFmdC4gTWFpbiBvYmplY3RpdmUgaXMgdG8gcmVj
ZWl2ZSBzb21lIGZlZWRiYWNrIGFuZCB0byB1c2UgdGhpcyBwYXRjaCBhcworICAgICAgICBhIHJl
ZmVyZW5jZSB0byBkaXNjdXNzaW9ucy4KKworICAgICAgICAqIGZhc3QvbWVkaWEvbWF0Y2htZWRp
dW0tY2FsbGJhY2tzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYS9t
YXRjaG1lZGl1bS1jYWxsYmFja3MuaHRtbDogQWRkZWQuCisKIDIwMTAtMDUtMDYgIE9qYW4gVmFm
YWkgIDxvamFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRo
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tYXRjaG1lZGl1bS1jYWxsYmFj
a3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tYXRjaG1lZGl1bS1jYWxs
YmFja3MtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI5
M2ZjYmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21hdGNobWVk
aXVtLWNhbGxiYWNrcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSBAQAorUEFTUy4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWF0Y2htZWRpdW0tY2FsbGJhY2tzLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L21lZGlhL21hdGNobWVkaXVtLWNhbGxiYWNrcy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyMGNhMGEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L21lZGlhL21hdGNobWVkaXVtLWNhbGxiYWNrcy5odG1sCkBAIC0wLDAg
KzEsNzAgQEAKKzxodG1sPgorPHNjcmlwdD4KKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgaWYg
KCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIHJldHVybjsKKyAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyAgICB2YXIgb3V0cHV0ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpOworICAgIHZhciBsb2cgPSBmdW5jdGlvbiAobXNn
KSB7IG91dHB1dC5pbm5lckhUTUwgKz0gIkZBSUwgLSAiICsgbXNnICsgIjxicj4iOyB9OworCisg
ICAgaWYgKCF3aW5kb3cuc3R5bGVNZWRpYSkgeworICAgICAgICBsb2coIndpbmRvdy5zdHlsZU1l
ZGlhIGlzIG5vdCBzdXBwb3J0ZWQuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICB2
YXIgY2FsbGJhY2tzID0gW107CisgICAgdmFyIGV4cGVjdGVkQ2FsbGJhY2tzID0gW107CisKKyAg
ICB2YXIgY3JlYXRlQ2FsbGJhY2sgPSBmdW5jdGlvbiAobmFtZSkgeyByZXR1cm4gZnVuY3Rpb24g
KHZhbHVlKSB7IGNhbGxiYWNrcy5wdXNoKFtuYW1lLCB2YWx1ZV0pOyB9IH07CisKKyAgICB3aW5k
b3cuc3R5bGVNZWRpYS5tYXRjaE1lZGl1bSgiKC13ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQp
IiwgY3JlYXRlQ2FsbGJhY2soIm1pbmltaXplZCIpKTsKKyAgICB3aW5kb3cuc3R5bGVNZWRpYS5t
YXRjaE1lZGl1bSgiKC13ZWJraXQtdmlldy1tb2RlOiBtYXhpbWl6ZWQpIiwgY3JlYXRlQ2FsbGJh
Y2soIm1heGltaXplZCIpKTsKKyAgICB3aW5kb3cuc3R5bGVNZWRpYS5tYXRjaE1lZGl1bSgiKC13
ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkiLCBjcmVhdGVDYWxsYmFjaygid2luZG93ZWQiKSk7
CisKKyAgICB2YXIgc2V0Vmlld01vZGUgPSBmdW5jdGlvbihtb2RlKSB7CisgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKG1vZGUpOworICAgICAgICB2
YXIgaSA9IDE7CisgICAgICAgIGZvciAoOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgKytpKQorICAg
ICAgICAgICAgZXhwZWN0ZWRDYWxsYmFja3MucHVzaChhcmd1bWVudHNbaV0pOworICAgIH07CisK
KyAgICBzZXRWaWV3TW9kZSgibWluaW1pemVkIiwgWyJtaW5pbWl6ZWQiLCB0cnVlXSk7CisgICAg
c2V0Vmlld01vZGUoIndpbmRvd2VkIiwgWyJtaW5pbWl6ZWQiLCBmYWxzZV0sIFsid2luZG93ZWQi
LCB0cnVlXSk7CisgICAgc2V0Vmlld01vZGUoIm1heGltaXplZCIsIFsibWF4aW1pemVkIiwgdHJ1
ZV0sIFsid2luZG93ZWQiLCBmYWxzZV0pOworICAgIHNldFZpZXdNb2RlKCJmbG9hdGluZyIsIFsi
bWF4aW1pemVkIiwgZmFsc2VdKTsKKyAgICBzZXRWaWV3TW9kZSgiZnVsbHNjcmVlbiIpOworICAg
IHNldFZpZXdNb2RlKCJtYXhpbWl6ZWQiLCBbIm1heGltaXplZCIsIHRydWVdKTsKKworICAgIGlm
IChjYWxsYmFja3MubGVuZ3RoICE9PSBleHBlY3RlZENhbGxiYWNrcy5sZW5ndGgpIHsKKyAgICAg
ICAgbG9nKGV4cGVjdGVkQ2FsbGJhY2tzLmxlbmd0aCArICIgY2FsbGJhY2tzIHdlcmUgZXhwZWN0
ZWQgYnV0ICIgKyBjYWxsYmFja3MubGVuZ3RoICsgIiBoYXBwZW5lZC4iKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIHZhciBjaGVja0l0ZW0gPSBmdW5jdGlvbiAoKSB7CisgICAgICAg
IHZhciB3cml0ZSA9IGZ1bmN0aW9uIChpdGVtKSB7IHJldHVybiAnIicgKyBpdGVtWzBdICsgJyA9
ICcgKyBpdGVtWzFdICsgJyInOyB9CisgICAgICAgIHJldHVybiBmdW5jdGlvbiAobnVtLCBhY3R1
YWwsIGV4cGVjdGVkKSB7CisgICAgICAgICAgICBpZiAoYWN0dWFsWzBdID09PSBleHBlY3RlZFsw
XSAmJiBhY3R1YWxbMV0gPT09IGV4cGVjdGVkWzFdKQorICAgICAgICAgICAgICAgIHJldHVybiB0
cnVlOworICAgICAgICAgICAgbG9nKCdjYWxsYmFjayAnICsgbnVtICsgJyB3YXMgZXhwZWN0ZWQg
dG8gYmUgJyArIHdyaXRlKGV4cGVjdGVkKSArICcgYnV0IGluc3RlYWQgd2FzICcgKyB3cml0ZShh
Y3R1YWwpICsgJy4nKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfTsKKyAg
ICB9KCk7CisKKyAgICB2YXIgaTsKKyAgICB2YXIgcmVzdWx0ID0gdHJ1ZTsKKyAgICBmb3IgKGkg
PSAwOyBpIDwgY2FsbGJhY2tzLmxlbmd0aDsgKytpKQorICAgICAgICByZXN1bHQgPSBjaGVja0l0
ZW0oaSArIDEsIGNhbGxiYWNrc1tpXSwgZXhwZWN0ZWRDYWxsYmFja3NbaV0pICYmIHJlc3VsdDsK
KworICAgIGlmIChyZXN1bHQpCisgICAgICAgIG91dHB1dC5pbm5lckhUTUwgKz0gIlBBU1MuIgor
fQorCis8L3NjcmlwdD4KKworPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgorICAgIDxkaXYgaWQ9InJl
c3VsdCI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGZmMmY3MzAuLmMwNjcyMzcgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NDEgQEAKKzIwMTAtMDUtMDcgIEx1aXogQWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
bWF0Y2hNZWRpdW0gY2FsbGJhY2tzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0zNzIwNQorCisgICAgICAgIEZpcnN0IGRyYWZ0LiBNYWluIG9iamVjdGl2
ZSBpcyB0byByZWNlaXZlIHNvbWUgZmVlZGJhY2sgYW5kIHRvIHVzZSB0aGlzIHBhdGNoIGFzCisg
ICAgICAgIGEgcmVmZXJlbmNlIHRvIGRpc2N1c3Npb25zLgorCisgICAgICAgIFRlc3Q6IGZhc3Qv
bWVkaWEvbWF0Y2htZWRpdW0tY2FsbGJhY2tzLmh0bWwKKworICAgICAgICAqIFdlYkNvcmUucHJp
OgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTWVkaWFD
aGFuZ2VMaXN0ZW5lci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNNZWRpYUNoYW5n
ZUxpc3RlbmVyOjptZWRpYUNoYW5nZWQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTWVkaWFD
aGFuZ2VMaXN0ZW5lci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTTWVkaWFDaGFuZ2VM
aXN0ZW5lcjo6SlNNZWRpYUNoYW5nZUxpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OnRvTWVk
aWFDaGFuZ2VMaXN0ZW5lcik6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhNZWRpYUNoYW5nZUxp
c3RlbmVyLmNwcDogQWRkZWQuCisgICAgICAgIChWOE1lZGlhQ2hhbmdlTGlzdGVuZXI6Om1lZGlh
Q2hhbmdlZCk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhNZWRpYUNoYW5nZUxpc3RlbmVyLmg6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNNZWRpYUNoYW5nZUxpc3RlbmVyOjpKU01lZGlh
Q2hhbmdlTGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6dG9NZWRpYUNoYW5nZUxpc3RlbmVy
KToKKyAgICAgICAgKiBjc3MvTWVkaWFDaGFuZ2VMaXN0ZW5lci5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhQ2hhbmdlTGlzdGVuZXI6On5NZWRpYUNoYW5nZUxpc3RlbmVyKToKKyAg
ICAgICAgKiBjc3MvTWVkaWFDaGFuZ2VMaXN0ZW5lci5pZGw6IEFkZGVkLgorICAgICAgICAqIGNz
cy9TdHlsZU1lZGlhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlTWVkaWE6OlF1ZXJ5Ojpl
dmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlTWVkaWE6Om1hdGNoTWVkaXVtKToKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlTWVkaWE6OnByZXBhcmVFdmFsdWF0b3IpOgorICAgICAgICAoV2Vi
Q29yZTo6U3R5bGVNZWRpYTo6c3R5bGVDaGFuZ2VkKToKKyAgICAgICAgKiBjc3MvU3R5bGVNZWRp
YS5oOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVNZWRpYTo6UXVlcnk6OlF1ZXJ5KToKKyAgICAg
ICAgKiBjc3MvU3R5bGVNZWRpYS5pZGw6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1cGRhdGVTdHlsZVNlbGVjdG9yKToKKwogMjAxMC0w
NS0wNiAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9yYS5j
by51az4KIAogICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCmRpZmYgLS1naXQgYS9XZWJD
b3JlL1dlYkNvcmUucHJpIGIvV2ViQ29yZS9XZWJDb3JlLnByaQppbmRleCAwNTgxZGFlLi5mNGNk
YzJhIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJpCisrKyBiL1dlYkNvcmUvV2ViQ29y
ZS5wcmkKQEAgLTIzOSw2ICsyMzksNyBAQCBJRExfQklORElOR1MgKz0gXAogICAgIGNzcy9DU1NW
YXJpYWJsZXNEZWNsYXJhdGlvbi5pZGwgXAogICAgIGNzcy9DU1NWYXJpYWJsZXNSdWxlLmlkbCBc
CiAgICAgY3NzL01lZGlhTGlzdC5pZGwgXAorIyAgICBjc3MvTWVkaWFDaGFuZ2VMaXN0ZW5lci5p
ZGwgXAogICAgIGNzcy9SZWN0LmlkbCBcCiAgICAgY3NzL1JHQkNvbG9yLmlkbCBcCiAgICAgY3Nz
L1N0eWxlTWVkaWEuaWRsIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJD
b3JlL1dlYkNvcmUucHJvCmluZGV4IDBlYjU4N2IuLmQ1YzJmZjAgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMzQyLDYgKzM0Miw3
IEBAIFNPVVJDRVMgKz0gXAogICAgIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RVcGxvYWRD
dXN0b20uY3BwIFwKICAgICBiaW5kaW5ncy9qcy9KU1BsdWdpbkN1c3RvbS5jcHAgXAogICAgIGJp
bmRpbmdzL2pzL0pTUGx1Z2luQXJyYXlDdXN0b20uY3BwIFwKKyAgICBiaW5kaW5ncy9qcy9KU01l
ZGlhQ2hhbmdlTGlzdGVuZXIuY3BwIFwKICAgICBiaW5kaW5ncy9qcy9KU01lc3NhZ2VDaGFubmVs
Q29uc3RydWN0b3IuY3BwIFwKICAgICBiaW5kaW5ncy9qcy9KU01lc3NhZ2VDaGFubmVsQ3VzdG9t
LmNwcCBcCiAgICAgYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwIFwKQEAgLTk5
NCw3ICs5OTUsNyBAQCBTT1VSQ0VTICs9IFwKICAgICB4bWwvWE1MSHR0cFJlcXVlc3QuY3BwIFwK
ICAgICB4bWwvWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUuY3BwIFwKICAgICB4
bWwvWE1MSHR0cFJlcXVlc3RVcGxvYWQuY3BwIFwKLSAgICB4bWwvWE1MU2VyaWFsaXplci5jcHAg
CisgICAgeG1sL1hNTFNlcmlhbGl6ZXIuY3BwCiAKIEhFQURFUlMgKz0gXAogICAgIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5oIFwKQEAgLTEwNDgsNiArMTA0OSw3IEBA
IEhFQURFUlMgKz0gXAogICAgIGJpbmRpbmdzL2pzL0pTSW1hZ2VDb25zdHJ1Y3Rvci5oIFwKICAg
ICBiaW5kaW5ncy9qcy9KU0xhenlFdmVudExpc3RlbmVyLmggXAogICAgIGJpbmRpbmdzL2pzL0pT
TG9jYXRpb25DdXN0b20uaCBcCisgICAgYmluZGluZ3MvanMvSlNNZWRpYUNoYW5nZUxpc3RlbmVy
LmggXAogICAgIGJpbmRpbmdzL2pzL0pTTWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rvci5oIFwKICAg
ICBiaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uaCBcCiAgICAgYmluZGluZ3MvanMvSlNOb2RlRmls
dGVyQ29uZGl0aW9uLmggXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lZGlh
Q2hhbmdlTGlzdGVuZXIuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lZGlhQ2hhbmdlTGlz
dGVuZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdiYTQ1NWEKLS0t
IC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVkaWFDaGFuZ2VMaXN0ZW5l
ci5jcHAKQEAgLTAsMCArMSwzMSBAQAorCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJKU01lZGlhQ2hhbmdlTGlzdGVuZXIuaCIKKworI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgor
I2luY2x1ZGUgIlNjcmlwdFZhbHVlLmgiCisKKyNpbmNsdWRlIDxydW50aW1lL0FyZ0xpc3QuaD4K
KyNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgorCit1c2luZyBuYW1lc3BhY2UgSlNDOworCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgSlNNZWRpYUNoYW5nZUxpc3RlbmVyOjptZWRpYUNo
YW5nZWQoU2NyaXB0U3RhdGUqIHN0YXRlLCBib29sIHF1ZXJ5UmVzdWx0KQoreworICAgIEpTTG9j
ayBsb2NrKFNpbGVuY2VBc3NlcnRpb25zT25seSk7CisKKyAgICBDYWxsRGF0YSBjYWxsRGF0YTsK
KyAgICBDYWxsVHlwZSBjYWxsVHlwZSA9IG1fY2FsbGJhY2suanNWYWx1ZSgpLmdldENhbGxEYXRh
KGNhbGxEYXRhKTsKKyAgICBpZiAoY2FsbFR5cGUgPT0gQ2FsbFR5cGVOb25lKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyIGFyZ3VtZW50czsKKyAgICBh
cmd1bWVudHMuYXBwZW5kKGpzQm9vbGVhbihxdWVyeVJlc3VsdCkpOworCisgICAgSlNDOjpjYWxs
KHN0YXRlLCBtX2NhbGxiYWNrLmpzVmFsdWUoKSwgY2FsbFR5cGUsIGNhbGxEYXRhLCBtX2NhbGxi
YWNrLmpzVmFsdWUoKSwgYXJndW1lbnRzKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU01lZGlhQ2hhbmdlTGlzdGVuZXIuaCBiL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNNZWRpYUNoYW5nZUxpc3RlbmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uNjNkZDFkNwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZWRp
YUNoYW5nZUxpc3RlbmVyLmgKQEAgLTAsMCArMSwzMSBAQAorI2lmbmRlZiBKU01lZGlhQ2hhbmdl
TGlzdGVuZXJfaAorI2RlZmluZSBKU01lZGlhQ2hhbmdlTGlzdGVuZXJfaAorCisjaW5jbHVkZSAi
TWVkaWFDaGFuZ2VMaXN0ZW5lci5oIgorI2luY2x1ZGUgIlNjcmlwdFZhbHVlLmgiCisjaW5jbHVk
ZSAicnVudGltZS9KU1ZhbHVlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSlNN
ZWRpYUNoYW5nZUxpc3RlbmVyIDogcHVibGljIE1lZGlhQ2hhbmdlTGlzdGVuZXIgeworcHVibGlj
OgorICAgIEpTTWVkaWFDaGFuZ2VMaXN0ZW5lcihKU0M6OkpTVmFsdWUgY2FsbGJhY2spIDogbV9j
YWxsYmFjayhjYWxsYmFjaykge30KKyAgICB2aXJ0dWFsIHZvaWQgbWVkaWFDaGFuZ2VkKFNjcmlw
dFN0YXRlKiBzdGF0ZSwgYm9vbCBxdWVyeVJlc3VsdCk7CisKK3ByaXZhdGU6CisgICAgU2NyaXB0
VmFsdWUgbV9jYWxsYmFjazsKK307CisKK2lubGluZSBNZWRpYUNoYW5nZUxpc3RlbmVyKiB0b01l
ZGlhQ2hhbmdlTGlzdGVuZXIoSlNDOjpKU1ZhbHVlIGNhbGxiYWNrKQoreworICAgIHVzaW5nIG5h
bWVzcGFjZSBKU0M7CisgICAgQ2FsbERhdGEgY2FsbERhdGE7CisgICAgQ2FsbFR5cGUgY2FsbFR5
cGUgPSBjYWxsYmFjay5nZXRDYWxsRGF0YShjYWxsRGF0YSk7CisgICAgaWYgKGNhbGxUeXBlID09
IENhbGxUeXBlTm9uZSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG5ldyBKU01lZGlh
Q2hhbmdlTGlzdGVuZXIoY2FsbGJhY2spOworfQorCit9CisKKyNlbmRpZiAvLyBKU01lZGlhQ2hh
bmdlTGlzdGVuZXJfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOE1lZGlhQ2hh
bmdlTGlzdGVuZXIuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOE1lZGlhQ2hhbmdlTGlzdGVu
ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJkYmY0NWQKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4TWVkaWFDaGFuZ2VMaXN0ZW5lci5j
cHAKQEAgLTAsMCArMSwzMCBAQAorI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlY4TWVk
aWFDaGFuZ2VMaXN0ZW5lci5oIgorCisjaW5jbHVkZSAiTm9kZS5oIgorI2luY2x1ZGUgIk5vZGVG
aWx0ZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRTdGF0ZS5oIgorI2luY2x1ZGUgIlY4UHJveHkuaCIK
KworI2luY2x1ZGUgPHd0Zi9Pd25BcnJheVB0ci5oPgorCit2b2lkIFY4TWVkaWFDaGFuZ2VMaXN0
ZW5lcjo6bWVkaWFDaGFuZ2VkKFNjcmlwdFN0YXRlKiBzdGF0ZSwgYm9vbCBxdWVyeVJlc3VsdCkK
K3sKKyAgICBBU1NFUlQodjg6OkNvbnRleHQ6OkluQ29udGV4dCgpKTsKKworICAgIGlmICghbV9j
YWxsYmFjay0+djhWYWx1ZSgpLT5Jc0Z1bmN0aW9uKCkpCisgICAgICAgIHJldHVybjsKKworICAg
IHY4OjpUcnlDYXRjaCBleGNlcHRpb25DYXRjaGVyOworCisgICAgdjg6OkhhbmRsZTx2ODo6T2Jq
ZWN0PiBvYmplY3QgPSB2ODo6Q29udGV4dDo6R2V0Q3VycmVudCgpLT5HbG9iYWwoKTsKKyAgICB2
ODo6TG9jYWw8djg6OkZ1bmN0aW9uPiBmdW5jdGlvbih2ODo6RnVuY3Rpb246OkNhc3QoKm1fY2Fs
bGJhY2stPnY4VmFsdWUoKSkpOworCisgICAgT3duQXJyYXlQdHI8djg6OkhhbmRsZTx2ODo6VmFs
dWU+ID4gYXJncyhuZXcgdjg6OkhhbmRsZTx2ODo6VmFsdWU+WzFdKTsKKyAgICBhcmdzWzBdID0g
djhCb29sZWFuKHF1ZXJ5UmVzdWx0KTsKKworICAgIFY4UHJveHk6OmNhbGxGdW5jdGlvbldpdGhv
dXRGcmFtZShmdW5jdGlvbiwgb2JqZWN0LCAxLCBhcmdzLmdldCgpKTsKKworICAgIGlmIChleGNl
cHRpb25DYXRjaGVyLkhhc0NhdWdodCgpKQorICAgICAgICBzdGF0ZS0+c2V0RXhjZXB0aW9uKGV4
Y2VwdGlvbkNhdGNoZXIuRXhjZXB0aW9uKCkpOworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5k
aW5ncy92OC9WOE1lZGlhQ2hhbmdlTGlzdGVuZXIuaCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhN
ZWRpYUNoYW5nZUxpc3RlbmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
ZjdhOTIyYgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhNZWRpYUNo
YW5nZUxpc3RlbmVyLmgKQEAgLTAsMCArMSwyOSBAQAorI2lmbmRlZiBWOE1lZGlhQ2hhbmdlTGlz
dGVuZXJfaAorI2RlZmluZSBWOE1lZGlhQ2hhbmdlTGlzdGVuZXJfaAorCisjaW5jbHVkZSAiTWVk
aWFDaGFuZ2VMaXN0ZW5lci5oIgorI2luY2x1ZGUgIlNjcmlwdFZhbHVlLmgiCisKKyNpbmNsdWRl
IDx2OC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEpTTWVkaWFDaGFuZ2VMaXN0
ZW5lciA6IHB1YmxpYyBNZWRpYUNoYW5nZUxpc3RlbmVyIHsKK3B1YmxpYzoKKyAgICBKU01lZGlh
Q2hhbmdlTGlzdGVuZXIodjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNhbGxiYWNrKSA6IG1fY2FsbGJh
Y2soY2FsbGJhY2spIHt9CisgICAgdmlydHVhbCB2b2lkIG1lZGlhQ2hhbmdlZChTY3JpcHRTdGF0
ZSogc3RhdGUsIGJvb2wgcXVlcnlSZXN1bHQpOworCitwcml2YXRlOgorICAgIFNjcmlwdFZhbHVl
IG1fY2FsbGJhY2s7Cit9OworCitpbmxpbmUgTWVkaWFDaGFuZ2VMaXN0ZW5lciogdG9NZWRpYUNo
YW5nZUxpc3RlbmVyKHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjYWxsYmFjaykKK3sKKyAgICBpZiAo
Y2FsbGJhY2stPklzRnVuY3Rpb24oKSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG5l
dyBKU01lZGlhQ2hhbmdlTGlzdGVuZXIoY2FsbGJhY2spOworfQorCit9CisKKyNlbmRpZiAvLyBW
OE1lZGlhQ2hhbmdlTGlzdGVuZXJfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvTWVkaWFDaGFu
Z2VMaXN0ZW5lci5oIGIvV2ViQ29yZS9jc3MvTWVkaWFDaGFuZ2VMaXN0ZW5lci5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY3OWVmMWYKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJDb3JlL2Nzcy9NZWRpYUNoYW5nZUxpc3RlbmVyLmgKQEAgLTAsMCArMSwxOCBAQAorI2lmbmRl
ZiBNZWRpYUNoYW5nZUxpc3RlbmVyX2gKKyNkZWZpbmUgTWVkaWFDaGFuZ2VMaXN0ZW5lcl9oCisK
KyNpbmNsdWRlICJTY3JpcHRTdGF0ZS5oIgorCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBNZWRpYUNoYW5nZUxpc3RlbmVyIDogcHVi
bGljIFJlZkNvdW50ZWQ8TWVkaWFDaGFuZ2VMaXN0ZW5lcj4geworcHVibGljOgorICAgIHZpcnR1
YWwgfk1lZGlhQ2hhbmdlTGlzdGVuZXIoKSB7fQorICAgIHZpcnR1YWwgdm9pZCBtZWRpYUNoYW5n
ZWQoU2NyaXB0U3RhdGUqIHN0YXRlLCBib29sIHF1ZXJ5UmVzdWx0KSA9IDA7Cit9OworCit9CisK
KyNlbmRpZiAvLyBNZWRpYUNoYW5nZUxpc3RlbmVyX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3Nz
L01lZGlhQ2hhbmdlTGlzdGVuZXIuaWRsIGIvV2ViQ29yZS9jc3MvTWVkaWFDaGFuZ2VMaXN0ZW5l
ci5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTE3M2ZjYgotLS0gL2Rl
di9udWxsCisrKyBiL1dlYkNvcmUvY3NzL01lZGlhQ2hhbmdlTGlzdGVuZXIuaWRsCkBAIC0wLDAg
KzEsMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5k
L29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIHZpZXcgeworICAgIGludGVy
ZmFjZSBNZWRpYUNoYW5nZUxpc3RlbmVyIHsKKyAgICAgICAgdm9pZCBtZWRpYUNoYW5nZWQoaW4g
Ym9vbGVhbiBxdWVyeVJlc3VsdCk7CisgICAgfTsKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3Nz
L1N0eWxlTWVkaWEuY3BwIGIvV2ViQ29yZS9jc3MvU3R5bGVNZWRpYS5jcHAKaW5kZXggNmNiNjYy
Zi4uNDNiNTVjYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvU3R5bGVNZWRpYS5jcHAKKysrIGIv
V2ViQ29yZS9jc3MvU3R5bGVNZWRpYS5jcHAKQEAgLTMxLDkgKzMxLDE5IEBACiAjaW5jbHVkZSAi
RnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiTWVkaWFMaXN0LmgiCiAjaW5jbHVkZSAiTWVkaWFRdWVy
eUV2YWx1YXRvci5oIgorI2luY2x1ZGUgIlNjcmlwdEZ1bmN0aW9uQ2FsbC5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKK3ZvaWQgU3R5bGVNZWRpYTo6UXVlcnk6OmV2YWwoU2NyaXB0U3RhdGUq
IGV4ZWMsIE1lZGlhUXVlcnlFdmFsdWF0b3IqIGV2YWx1YXRvcikKK3sKKyAgICBib29sIG5ld1Zh
bHVlID0gZXZhbHVhdG9yLT5ldmFsKG1fcXVlcnkuZ2V0KCkpOworICAgIGlmIChuZXdWYWx1ZSAh
PSBtX3ZhbHVlKSB7CisgICAgICAgIG1fdmFsdWUgPSBuZXdWYWx1ZTsKKyAgICAgICAgbV9saXN0
ZW5lci0+bWVkaWFDaGFuZ2VkKGV4ZWMsIG1fdmFsdWUpOworICAgIH0KK30KKwogU3R5bGVNZWRp
YTo6U3R5bGVNZWRpYShGcmFtZSogZnJhbWUpCiAgICAgOiBtX2ZyYW1lKGZyYW1lKQogewpAQCAt
NDgsMzAgKzU4LDYwIEBAIFN0cmluZyBTdHlsZU1lZGlhOjp0eXBlKCkgY29uc3QKICAgICByZXR1
cm4gU3RyaW5nKCk7CiB9CiAKLWJvb2wgU3R5bGVNZWRpYTo6bWF0Y2hNZWRpdW0oY29uc3QgU3Ry
aW5nJiBxdWVyeSkgY29uc3QKK2Jvb2wgU3R5bGVNZWRpYTo6bWF0Y2hNZWRpdW0oY29uc3QgU3Ry
aW5nJiBxdWVyeSwgUGFzc1JlZlB0cjxNZWRpYUNoYW5nZUxpc3RlbmVyPiBsaXN0ZW5lcikKIHsK
LSAgICBpZiAoIW1fZnJhbWUpCisgICAgUmVmUHRyPE1lZGlhTGlzdD4gbWVkaWEoTWVkaWFMaXN0
OjpjcmVhdGUoKSk7CisgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgbWVkaWEtPnNldE1l
ZGlhVGV4dChxdWVyeSwgZWMpOworICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CisgICAgT3duUHRyPE1lZGlhUXVlcnlFdmFsdWF0b3I+IGV2YWx1YXRvcihwcmVwYXJlRXZhbHVh
dG9yKCkpOworICAgIGJvb2wgcmVzdWx0ID0gZXZhbHVhdG9yICYmIGV2YWx1YXRvci0+ZXZhbCht
ZWRpYS5nZXQoKSk7CisKKyAgICBpZiAobGlzdGVuZXIpCisgICAgICAgIG1fcXVlcnlMaXN0LmFw
cGVuZChRdWVyeShtZWRpYSwgbGlzdGVuZXIsIHJlc3VsdCkpOworCisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KKworTWVkaWFRdWVyeUV2YWx1YXRvciogU3R5bGVNZWRpYTo6cHJlcGFyZUV2YWx1YXRv
cigpIGNvbnN0Cit7CisgICAgaWYgKCFtX2ZyYW1lKQorICAgICAgICByZXR1cm4gMDsKKwogICAg
IERvY3VtZW50KiBkb2N1bWVudCA9IG1fZnJhbWUtPmRvY3VtZW50KCk7Ci0gICAgQVNTRVJUKGRv
Y3VtZW50KTsKKyAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICByZXR1cm4gMDsKKwogICAgIEVs
ZW1lbnQqIGRvY3VtZW50RWxlbWVudCA9IGRvY3VtZW50LT5kb2N1bWVudEVsZW1lbnQoKTsKLSAg
ICBBU1NFUlQoZG9jdW1lbnRFbGVtZW50KTsKKyAgICBpZiAoIWRvY3VtZW50RWxlbWVudCkKKyAg
ICAgICAgcmV0dXJuIDA7CiAKICAgICBDU1NTdHlsZVNlbGVjdG9yKiBzdHlsZVNlbGVjdG9yID0g
ZG9jdW1lbnQtPnN0eWxlU2VsZWN0b3IoKTsKICAgICBpZiAoIXN0eWxlU2VsZWN0b3IpCi0gICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIDA7CiAKICAgICBSZWZQdHI8UmVuZGVy
U3R5bGU+IHJvb3RTdHlsZSA9IHN0eWxlU2VsZWN0b3ItPnN0eWxlRm9yRWxlbWVudChkb2N1bWVu
dEVsZW1lbnQsIDAgLypkZWZhdWx0UGFyZW50Ki8sIGZhbHNlIC8qYWxsb3dTaGFyaW5nKi8sIHRy
dWUgLypyZXNvbHZlRm9yUm9vdERlZmF1bHQqLyk7Ci0gICAgUmVmUHRyPE1lZGlhTGlzdD4gbWVk
aWEgPSBNZWRpYUxpc3Q6OmNyZWF0ZSgpOwogCi0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0g
ICAgbWVkaWEtPnNldE1lZGlhVGV4dChxdWVyeSwgZWMpOwotICAgIGlmIChlYykKLSAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIHJldHVybiBuZXcgTWVkaWFRdWVyeUV2YWx1YXRvcih0eXBlKCks
IG1fZnJhbWUsIHJvb3RTdHlsZS5nZXQoKSk7Cit9CisKK3ZvaWQgU3R5bGVNZWRpYTo6c3R5bGVD
aGFuZ2VkKCkKK3sKKyAgICBpZiAoIW1fZnJhbWUpCisgICAgICAgIHJldHVybjsKKworICAgIFNj
cmlwdFN0YXRlKiBleGVjID0gbWFpbldvcmxkU2NyaXB0U3RhdGUobV9mcmFtZSk7CisgICAgaWYg
KCFleGVjKQorICAgICAgICByZXR1cm47CisKKyAgICBPd25QdHI8TWVkaWFRdWVyeUV2YWx1YXRv
cj4gZXZhbHVhdG9yKHByZXBhcmVFdmFsdWF0b3IoKSk7CisgICAgaWYgKCFldmFsdWF0b3IpCisg
ICAgICAgIHJldHVybjsKIAotICAgIE1lZGlhUXVlcnlFdmFsdWF0b3Igc2NyZWVuRXZhbCh0eXBl
KCksIG1fZnJhbWUsIHJvb3RTdHlsZS5nZXQoKSk7Ci0gICAgcmV0dXJuIHNjcmVlbkV2YWwuZXZh
bChtZWRpYS5nZXQoKSk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fcXVlcnlMaXN0
LnNpemUoKTsgKytpKQorICAgICAgICBtX3F1ZXJ5TGlzdFtpXS5ldmFsKGV4ZWMsIGV2YWx1YXRv
ci5nZXQoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvY3NzL1N0eWxlTWVkaWEuaCBiL1dlYkNvcmUvY3NzL1N0eWxlTWVkaWEuaAppbmRleCA3NjFl
NmEzLi42MDhjZTA3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9TdHlsZU1lZGlhLmgKKysrIGIv
V2ViQ29yZS9jc3MvU3R5bGVNZWRpYS5oCkBAIC0yOCw5ICsyOCwxNSBAQAogI2RlZmluZSBTdHls
ZU1lZGlhX2gKIAogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgorI2luY2x1ZGUgIk1lZGlhQ2hhbmdl
TGlzdGVuZXIuaCIKKyNpbmNsdWRlICJNZWRpYUxpc3QuaCIKKworI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBNZWRpYVF1ZXJ5RXZhbHVhdG9y
OworCiBjbGFzcyBTdHlsZU1lZGlhIDogcHVibGljIFJlZkNvdW50ZWQ8U3R5bGVNZWRpYT4gewog
cHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0eWxlTWVkaWE+IGNyZWF0ZShGcmFtZSog
ZnJhbWUpCkBAIC00MiwxMiArNDgsMjkgQEAgcHVibGljOgogCiAgICAgU3RyaW5nIHR5cGUoKSBj
b25zdDsKIAotICAgIGJvb2wgbWF0Y2hNZWRpdW0oY29uc3QgU3RyaW5nJikgY29uc3Q7CisgICAg
Ym9vbCBtYXRjaE1lZGl1bShjb25zdCBTdHJpbmcmLCBQYXNzUmVmUHRyPE1lZGlhQ2hhbmdlTGlz
dGVuZXI+IGxpc3RlbmVyKTsKKworICAgIHZvaWQgc3R5bGVDaGFuZ2VkKCk7CisKK3ByaXZhdGU6
CisgICAgY2xhc3MgUXVlcnkgeworICAgIHB1YmxpYzoKKyAgICAgICAgUXVlcnkoUGFzc1JlZlB0
cjxNZWRpYUxpc3Q+IHF1ZXJ5LCBQYXNzUmVmUHRyPE1lZGlhQ2hhbmdlTGlzdGVuZXI+IGxpc3Rl
bmVyLCBib29sIHZhbHVlKSA6IG1fcXVlcnkocXVlcnkpLCBtX2xpc3RlbmVyKGxpc3RlbmVyKSwg
bV92YWx1ZSh2YWx1ZSkge30KKyAgICAgICAgdm9pZCBldmFsKFNjcmlwdFN0YXRlKiBleGVjLCBN
ZWRpYVF1ZXJ5RXZhbHVhdG9yKik7CisKKyAgICBwcml2YXRlOgorICAgICAgICBSZWZQdHI8TWVk
aWFMaXN0PiBtX3F1ZXJ5OworICAgICAgICBSZWZQdHI8TWVkaWFDaGFuZ2VMaXN0ZW5lcj4gbV9s
aXN0ZW5lcjsKKyAgICAgICAgYm9vbCBtX3ZhbHVlOworICAgIH07CiAKIHByaXZhdGU6CiAgICAg
U3R5bGVNZWRpYShGcmFtZSopOwogCiAgICAgRnJhbWUqIG1fZnJhbWU7CisgICAgVmVjdG9yPFF1
ZXJ5PiBtX3F1ZXJ5TGlzdDsKKworICAgIE1lZGlhUXVlcnlFdmFsdWF0b3IqIHByZXBhcmVFdmFs
dWF0b3IoKSBjb25zdDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2Nzcy9TdHlsZU1lZGlhLmlkbCBiL1dlYkNvcmUvY3NzL1N0eWxlTWVkaWEuaWRsCmluZGV4IDdi
ZTM1Y2MuLmNmMDhiMGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL1N0eWxlTWVkaWEuaWRsCisr
KyBiL1dlYkNvcmUvY3NzL1N0eWxlTWVkaWEuaWRsCkBAIC0yNyw2ICsyNyw2IEBACiBtb2R1bGUg
dmlldyB7CiAgICAgaW50ZXJmYWNlIFN0eWxlTWVkaWEgewogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIHR5cGU7Ci0gICAgICAgIGJvb2xlYW4gbWF0Y2hNZWRpdW0oaW4gRE9N
U3RyaW5nIG1lZGlhcXVlcnkpOworICAgICAgICBib29sZWFuIG1hdGNoTWVkaXVtKGluIERPTVN0
cmluZyBtZWRpYXF1ZXJ5LCBpbiBNZWRpYUNoYW5nZUxpc3RlbmVyIG9ic2VydmVyKTsKICAgICB9
OwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCmluZGV4IDU2YjQ3MjguLmU2NWRmYzIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTExNyw2
ICsxMTcsNyBAQAogI2luY2x1ZGUgIlNlbGVjdGlvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJT
ZXR0aW5ncy5oIgogI2luY2x1ZGUgIlN0cmluZ0J1ZmZlci5oIgorI2luY2x1ZGUgIlN0eWxlTWVk
aWEuaCIKICNpbmNsdWRlICJTdHlsZVNoZWV0TGlzdC5oIgogI2luY2x1ZGUgIlRleHRFdmVudC5o
IgogI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgpAQCAtMjU5Miw2ICsyNTkzLDkgQEAgdm9pZCBE
b2N1bWVudDo6dXBkYXRlU3R5bGVTZWxlY3RvcigpCiAgICAgICAgIGlmICh2aWV3KCkpCiAgICAg
ICAgICAgICB2aWV3KCktPnNjaGVkdWxlUmVsYXlvdXQoKTsKICAgICB9CisKKyAgICBpZiAoZG9t
V2luZG93KCkgJiYgZG9tV2luZG93KCktPnN0eWxlTWVkaWEoKSkKKyAgICAgICAgZG9tV2luZG93
KCktPnN0eWxlTWVkaWEoKS0+c3R5bGVDaGFuZ2VkKCk7CiB9CiAKIHZvaWQgRG9jdW1lbnQ6OmFk
ZFN0eWxlU2hlZXRDYW5kaWRhdGVOb2RlKE5vZGUqIG5vZGUsIGJvb2wgY3JlYXRlZEJ5UGFyc2Vy
KQotLSAKMS42LjMuMwoK
</data>
<flag name="review"
          id="39565"
          type_id="1"
          status="-"
          setter="simon.fraser"
    />
    <flag name="commit-queue"
          id="39566"
          type_id="3"
          status="-"
          setter="luiz"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57489</attachid>
            <date>2010-05-31 12:11:14 -0700</date>
            <delta_ts>2010-05-31 12:37:04 -0700</delta_ts>
            <desc>test - trying to find help with bindings.</desc>
            <filename>0001-Medium-listeners.patch</filename>
            <type>text/plain</type>
            <size>36070</size>
            <attacher name="Luiz Agostini">luiz</attacher>
            
              <data encoding="base64">RnJvbSBjNTI0MDJkMjM3ODNlMDFlMjFiMjE5NTBhZDVhYWU0MWQ1YmVjMzI2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWl6IEFnb3N0aW5pIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IE1vbiwgMzEgTWF5IDIwMTAgMTY6MDc6MDcgLTAzMDAKU3ViamVjdDogW1BB
VENIXSBNZWRpdW0gbGlzdGVuZXJzCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MzcyMDUKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKV2ViQ29yZToKCkFzIHRo
ZSBzcGVjaWZpY2F0aW9uIHN0aWxsIG9uZ29pbmcgdGhpcyBwYXRjaCBpcyBqdXN0IGEgdGVzdC4g
TWFpbiBvYmplY3RpdmUgaXMgdG8Kc2VlIGhvdyBpdCBnb2VzIGluIGRpZmZlcmVudCBwbGF0Zm9y
bXMgYW5kIHRvIHRyeSB0byBmaW5kIGhlbHAgd2l0aCB0aGUgYmluZGluZ3MuCgpKUyBiaW5kaW5n
IHNlZW1zIHRvIGJlIG9rIGJ1dCBJIG5lZWQgZmVlZGJhY2suCgpUZXN0OiBmYXN0L21lZGlhL3F1
ZXJ5LWNhbGxiYWNrcy5odG1sCgoqIFdlYkNvcmUucHJpOgoqIFdlYkNvcmUucHJvOgoqIGJpbmRp
bmdzL2pzL0pTUXVlcnlDYWxsYmFjay5jcHA6IEFkZGVkLgooV2ViQ29yZTo6SlNRdWVyeUNhbGxi
YWNrOjpvcGVyYXRvcj09KToKKFdlYkNvcmU6OkpTUXVlcnlDYWxsYmFjazo6aGFuZGxlRXZlbnQp
OgoqIGJpbmRpbmdzL2pzL0pTUXVlcnlDYWxsYmFjay5oOiBBZGRlZC4KKFdlYkNvcmU6OkpTUXVl
cnlDYWxsYmFjazo6Y3JlYXRlKToKKFdlYkNvcmU6OkpTUXVlcnlDYWxsYmFjazo6SlNRdWVyeUNh
bGxiYWNrKToKKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKiBjc3MvUXVl
cnlDYWxsYmFjay5oOiBBZGRlZC4KKFdlYkNvcmU6OlF1ZXJ5Q2FsbGJhY2s6On5RdWVyeUNhbGxi
YWNrKToKKiBjc3MvUXVlcnlDYWxsYmFjay5pZGw6IEFkZGVkLgoqIGNzcy9TdHlsZU1lZGlhLmNw
cDoKKFdlYkNvcmU6OlN0eWxlTWVkaWE6OlF1ZXJ5OjpRdWVyeSk6CihXZWJDb3JlOjpTdHlsZU1l
ZGlhOjpRdWVyeTo6flF1ZXJ5KToKKFdlYkNvcmU6OlN0eWxlTWVkaWE6OlF1ZXJ5OjpldmFsdWF0
ZSk6CihXZWJDb3JlOjpTdHlsZU1lZGlhOjpMaXN0ZW5lcjo6TGlzdGVuZXIpOgooV2ViQ29yZTo6
U3R5bGVNZWRpYTo6TGlzdGVuZXI6OmhhbmRsZUV2ZW50KToKKFdlYkNvcmU6OlN0eWxlTWVkaWE6
OlN0eWxlTWVkaWEpOgooV2ViQ29yZTo6cGFyc2UpOgooV2ViQ29yZTo6c3RyaW5nQ29tcGFyZSk6
CihXZWJDb3JlOjp3cml0ZU1lZGlhTGlzdEtleSk6CihXZWJDb3JlOjpTdHlsZU1lZGlhOjphZGRR
dWVyeUxpc3RlbmVyKToKKFdlYkNvcmU6OlN0eWxlTWVkaWE6Omxpc3RlbmVyQ29tcGFyZSk6CihX
ZWJDb3JlOjpTdHlsZU1lZGlhOjpyZW1vdmVRdWVyeUxpc3RlbmVyKToKKFdlYkNvcmU6OlN0eWxl
TWVkaWE6OnByZXBhcmVFdmFsdWF0b3IpOgooV2ViQ29yZTo6U3R5bGVNZWRpYTo6bWF0Y2hRdWVy
eSk6CihXZWJDb3JlOjpTdHlsZU1lZGlhOjpzdHlsZUNoYW5nZWQpOgoqIGNzcy9TdHlsZU1lZGlh
Lmg6CihXZWJDb3JlOjpTdHlsZU1lZGlhOjpRdWVyeTo6dmFsdWUpOgooV2ViQ29yZTo6U3R5bGVN
ZWRpYTo6UXVlcnk6OmNoYW5nZWQpOgooV2ViQ29yZTo6U3R5bGVNZWRpYTo6UXVlcnk6OmtleSk6
CihXZWJDb3JlOjpTdHlsZU1lZGlhOjpMaXN0ZW5lcjo6cXVlcnkpOgooV2ViQ29yZTo6U3R5bGVN
ZWRpYTo6TGlzdGVuZXI6OmNhbGxiYWNrKToKKFdlYkNvcmU6OlN0eWxlTWVkaWE6Okxpc3RlbmVy
OjppZCk6CiogY3NzL1N0eWxlTWVkaWEuaWRsOgoqIGRvbS9Eb2N1bWVudC5jcHA6CihXZWJDb3Jl
OjpEb2N1bWVudDo6dXBkYXRlU3R5bGVTZWxlY3Rvcik6CgpMYXlvdXRUZXN0czoKCiogZmFzdC9t
ZWRpYS9xdWVyeS1jYWxsYmFja3MtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKiBmYXN0L21lZGlhL3F1
ZXJ5LWNhbGxiYWNrcy5odG1sOiBBZGRlZC4KLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTAgKwogLi4uL2Zhc3QvbWVkaWEvcXVlcnkt
Y2FsbGJhY2tzLWV4cGVjdGVkLnR4dCAgICAgICAgfCAgICAxICsKIExheW91dFRlc3RzL2Zhc3Qv
bWVkaWEvcXVlcnktY2FsbGJhY2tzLmh0bWwgICAgICAgIHwgIDEwNCArKysrKysrKysrCiBXZWJD
b3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNTMgKysr
KysKIFdlYkNvcmUvV2ViQ29yZS5neXBpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAgMyArCiBXZWJDb3JlL1dlYkNvcmUucHJpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8ICAgIDEgKwogV2ViQ29yZS9XZWJDb3JlLnBybyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgICAzICsKIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
ICAgICAgICAgIHwgICAxNCArKwogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1F1ZXJ5Q2FsbGJhY2su
Y3BwICAgICAgICAgICAgfCAgIDY4ICsrKysrKysKIFdlYkNvcmUvYmluZGluZ3MvanMvSlNRdWVy
eUNhbGxiYWNrLmggICAgICAgICAgICAgIHwgICA1OCArKysrKysKIFdlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gICAgICAgIHwgICAgNiArCiBXZWJDb3JlL2JpbmRp
bmdzL3Y4L1Y4UXVlcnlDYWxsYmFjay5jcHAgICAgICAgICAgICB8ICAgNDAgKysrKwogV2ViQ29y
ZS9iaW5kaW5ncy92OC9WOFF1ZXJ5Q2FsbGJhY2suaCAgICAgICAgICAgICAgfCAgIDIzICsrKwog
V2ViQ29yZS9jc3MvU3R5bGVNZWRpYS5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTk5
ICsrKysrKysrKysrKysrKysrKystCiBXZWJDb3JlL2Nzcy9TdHlsZU1lZGlhLmggICAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICAgNTcgKysrKysrLQogV2ViQ29yZS9jc3MvU3R5bGVNZWRpYS5p
ZGwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA1ICstCiBXZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDUgKwogMTcgZmlsZXMgY2hhbmdl
ZCwgNjQwIGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0
IExheW91dFRlc3RzL2Zhc3QvbWVkaWEvcXVlcnktY2FsbGJhY2tzLWV4cGVjdGVkLnR4dAogY3Jl
YXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvbWVkaWEvcXVlcnktY2FsbGJhY2tzLmh0
bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTUXVlcnlDYWxsYmFj
ay5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTUXVlcnlDYWxs
YmFjay5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9iaW5kaW5ncy92OC9WOFF1ZXJ5Q2Fs
bGJhY2suY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9iaW5kaW5ncy92OC9WOFF1ZXJ5
Q2FsbGJhY2suaAoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCBiNjZlMTk3Li4xMjc2YmRlIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMTAtMDUtMzEgIEx1aXogQWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWVk
aXVtIGxpc3RlbmVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MzcyMDUKKworICAgICAgICAqIGZhc3QvbWVkaWEvcXVlcnktY2FsbGJhY2tzLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYS9xdWVyeS1jYWxsYmFja3MuaHRt
bDogQWRkZWQuCisKIDIwMTAtMDUtMjggIFNodSBDaGFuZyAgPGNoYW5nLnNodUBub2tpYS5jb20+
CiAKICAgICAgICAgVW5yZXZpZXdlZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVk
aWEvcXVlcnktY2FsbGJhY2tzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEv
cXVlcnktY2FsbGJhY2tzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4yOTNmY2JiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YS9xdWVyeS1jYWxsYmFja3MtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK1BBU1MuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL3F1ZXJ5LWNhbGxiYWNrcy5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYS9xdWVyeS1jYWxsYmFja3MuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5lMTI4Y2MxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYS9xdWVyeS1jYWxsYmFja3MuaHRtbApAQCAtMCwwICsxLDEwNCBAQAorPGh0
bWw+Cis8c2NyaXB0PgorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBpZiAoIXdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgcmV0dXJuOworICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKKworICAgIHZhciBvdXRwdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgicmVzdWx0Iik7CisgICAgdmFyIGxvZyA9IGZ1bmN0aW9uIChtc2cpCisgICAgeworICAg
ICAgICBvdXRwdXQuaW5uZXJIVE1MICs9ICJGQUlMIC0gIiArIG1zZyArICI8YnI+IjsKKyAgICB9
OworCisgICAgaWYgKCF3aW5kb3cuc3R5bGVNZWRpYSkgeworICAgICAgICBsb2coIndpbmRvdy5z
dHlsZU1lZGlhIGlzIG5vdCBzdXBwb3J0ZWQuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICB2YXIgYWN0dWFsQ2FsbGJhY2tzID0gW107CisgICAgdmFyIGV4cGVjdGVkQ2FsbGJhY2tz
ID0gW107CisKKyAgICB2YXIgcmVzdWx0ID0gdHJ1ZTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSgibWluaW1pemVkIik7CisKKyAgICB2YXIgcXVlcmll
cyA9IFsKKyAgICAgICAgWyIoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCkiLCAwXSwKKyAg
ICAgICAgWyIoLXdlYmtpdC12aWV3LW1vZGU6IG1heGltaXplZCkiLCAwXSwKKyAgICAgICAgWyIo
LXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCksICgtd2Via2l0LXZpZXctbW9kZTogbWF4aW1p
emVkKSIsIDBdLAorICAgICAgICBbIigtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSwgKC13
ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkiLCAwXQorICAgIF07CisKKyAgICB2YXIgY2FsbGJh
Y2tIYW5kbGVyID0gZnVuY3Rpb24gKGlkeCwgaWQsIHZhbHVlKSB7CisgICAgICAgIGlmIChxdWVy
aWVzW2lkeF1bMV0gIT0gaWQpIHsKKyAgICAgICAgICAgIGxvZygiaWQgd2FzIGV4cGVjdGVkIHRv
IGJlICIgKyBxdWVyaWVzW2lkeF1bMV0gKyAiIGJ1dCBpbnN0ZWFkIHdhcyAiICsgaWQpOworICAg
ICAgICAgICAgcmVzdWx0ID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgYWN0dWFsQ2FsbGJh
Y2tzLnB1c2goW2lkeCwgdmFsdWVdKTsKKyAgICB9OworCisgICAgdmFyIGNyZWF0ZUNhbGxiYWNr
ID0gZnVuY3Rpb24gKGlkeCkgeworICAgICAgICByZXR1cm4gZnVuY3Rpb24gKGlkLCB2YWx1ZSkg
eyBjYWxsYmFja0hhbmRsZXIoaWR4LCBpZCwgdmFsdWUpOyB9OworICAgIH07CisKKyAgICB2YXIg
aTsKKyAgICBmb3IgKGkgPSAwOyBpPCBxdWVyaWVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgIHZh
ciBjYWxsYmFjayA9IGNyZWF0ZUNhbGxiYWNrKGkpOworICAgICAgICBxdWVyaWVzW2ldWzFdID0g
d2luZG93LnN0eWxlTWVkaWEuYWRkUXVlcnlMaXN0ZW5lcihxdWVyaWVzW2ldWzBdLCBjYWxsYmFj
ayk7CisKKyAgICAgICAgaWYgKHF1ZXJpZXNbaV1bMV0gIT0gd2luZG93LnN0eWxlTWVkaWEuYWRk
UXVlcnlMaXN0ZW5lcihxdWVyaWVzW2ldWzBdLCBjYWxsYmFjaykpIHsKKyAgICAgICAgICAgIGxv
ZygiYWRkaW5nIHRoZSBzYW1lIGxpc3RlbmVyIHR3aWNlIHNob3VsZCByZXR1cm4gdGhlIHNhbWUg
aWQgYnV0IGl0IGRpZCBub3QuIik7CisgICAgICAgICAgICByZXN1bHQgPSBmYWxzZTsKKyAgICAg
ICAgfQorICAgIH0KKworICAgIHZhciBzZXRWaWV3TW9kZSA9IGZ1bmN0aW9uKG1vZGUpIHsKKyAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUobW9kZSk7
CisgICAgICAgIHZhciBpID0gMTsKKyAgICAgICAgZm9yICg7IGkgPCBhcmd1bWVudHMubGVuZ3Ro
OyArK2kpCisgICAgICAgICAgICBleHBlY3RlZENhbGxiYWNrcy5wdXNoKGFyZ3VtZW50c1tpXSk7
CisgICAgfTsKKworICAgIHNldFZpZXdNb2RlKCJtaW5pbWl6ZWQiKTsKKyAgICBzZXRWaWV3TW9k
ZSgid2luZG93ZWQiLCBbMCwgZmFsc2VdLCBbMiwgZmFsc2VdKTsKKyAgICBzZXRWaWV3TW9kZSgi
bWF4aW1pemVkIiwgWzEsIHRydWVdLCBbMiwgdHJ1ZV0sIFszLCBmYWxzZV0pOworICAgIHNldFZp
ZXdNb2RlKCJmbG9hdGluZyIsIFsxLCBmYWxzZV0sIFsyLCBmYWxzZV0pOworCisgICAgd2luZG93
LnN0eWxlTWVkaWEucmVtb3ZlUXVlcnlMaXN0ZW5lcihxdWVyaWVzWzJdWzFdKTsKKyAgICBzZXRW
aWV3TW9kZSgibWluaW1pemVkIiwgWzAsIHRydWVdLCBbMywgdHJ1ZV0pOworCisgICAgcXVlcmll
c1syXVsxXSA9IHdpbmRvdy5zdHlsZU1lZGlhLmFkZFF1ZXJ5TGlzdGVuZXIocXVlcmllc1syXVsw
XSwgY3JlYXRlQ2FsbGJhY2soMikpOworICAgIHNldFZpZXdNb2RlKCJ3aW5kb3dlZCIsIFswLCBm
YWxzZV0sIFsyLCBmYWxzZV0pOworICAgIHNldFZpZXdNb2RlKCJtYXhpbWl6ZWQiLCBbMSwgdHJ1
ZV0sIFszLCBmYWxzZV0sIFsyLCB0cnVlXSk7CisKKyAgICBpZiAoYWN0dWFsQ2FsbGJhY2tzLmxl
bmd0aCAhPT0gZXhwZWN0ZWRDYWxsYmFja3MubGVuZ3RoKSB7CisgICAgICAgIGxvZyhleHBlY3Rl
ZENhbGxiYWNrcy5sZW5ndGggKyAiIGNhbGxiYWNrcyB3ZXJlIGV4cGVjdGVkIGJ1dCAiICsgYWN0
dWFsQ2FsbGJhY2tzLmxlbmd0aCArICIgaGFwcGVuZWQuIik7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICB2YXIgY2hlY2tJdGVtID0gZnVuY3Rpb24gKCkgeworICAgICAgICB2YXIgd3Jp
dGUgPSBmdW5jdGlvbiAoaXRlbSkgeyByZXR1cm4gJ1snICsgaXRlbVswXSArICcsJyArIGl0ZW1b
MV0gKyAnXSc7IH0KKyAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChudW0sIGFjdHVhbCwgZXhwZWN0
ZWQpIHsKKyAgICAgICAgICAgIGlmIChhY3R1YWxbMF0gPT09IGV4cGVjdGVkWzBdICYmIGFjdHVh
bFsxXSA9PT0gZXhwZWN0ZWRbMV0pCisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
ICAgICAgICBsb2coJ2NhbGxiYWNrICcgKyBudW0gKyAnIHdhcyBleHBlY3RlZCB0byBiZSAnICsg
d3JpdGUoZXhwZWN0ZWQpICsgJyBidXQgaW5zdGVhZCB3YXMgJyArIHdyaXRlKGFjdHVhbCkgKyAn
LicpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9OworICAgIH0oKTsKKwor
ICAgIHZhciBpOworICAgIGZvciAoaSA9IDA7IGkgPCBhY3R1YWxDYWxsYmFja3MubGVuZ3RoOyAr
K2kpCisgICAgICAgIHJlc3VsdCA9IGNoZWNrSXRlbShpICsgMSwgYWN0dWFsQ2FsbGJhY2tzW2ld
LCBleHBlY3RlZENhbGxiYWNrc1tpXSkgJiYgcmVzdWx0OworCisgICAgaWYgKHJlc3VsdCkKKyAg
ICAgICAgb3V0cHV0LmlubmVySFRNTCArPSAiUEFTUy4iCit9CisKKzwvc2NyaXB0PgorCis8Ym9k
eSBvbmxvYWQ9InRlc3QoKSI+CisgICAgPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggZTk0MjM5ZC4uODc2Njg3ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NiBAQAorMjAxMC0wNS0zMSAgTHVp
eiBBZ29zdGluaSAgPGx1aXouYWdvc3RpbmlAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNZWRpdW0gbGlzdGVuZXJzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzIwNQorCisgICAg
ICAgIEFzIHRoZSBzcGVjaWZpY2F0aW9uIHN0aWxsIG9uZ29pbmcgdGhpcyBwYXRjaCBpcyBqdXN0
IGEgdGVzdC4gTWFpbiBvYmplY3RpdmUgaXMgdG8KKyAgICAgICAgc2VlIGhvdyBpdCBnb2VzIGlu
IGRpZmZlcmVudCBwbGF0Zm9ybXMgYW5kIHRvIHRyeSB0byBmaW5kIGhlbHAgd2l0aCB0aGUgYmlu
ZGluZ3MuCisKKyAgICAgICAgSlMgYmluZGluZyBzZWVtcyB0byBiZSBvayBidXQgSSBuZWVkIGZl
ZWRiYWNrLgorCisgICAgICAgIFRlc3Q6IGZhc3QvbWVkaWEvcXVlcnktY2FsbGJhY2tzLmh0bWwK
KworICAgICAgICAqIFdlYkNvcmUucHJpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTUXVlcnlDYWxsYmFjay5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6SlNRdWVyeUNhbGxiYWNrOjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNvcmU6OkpT
UXVlcnlDYWxsYmFjazo6aGFuZGxlRXZlbnQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTUXVl
cnlDYWxsYmFjay5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTUXVlcnlDYWxsYmFjazo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTUXVlcnlDYWxsYmFjazo6SlNRdWVyeUNhbGxi
YWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAg
ICAgICAgKiBjc3MvUXVlcnlDYWxsYmFjay5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlF1
ZXJ5Q2FsbGJhY2s6On5RdWVyeUNhbGxiYWNrKToKKyAgICAgICAgKiBjc3MvUXVlcnlDYWxsYmFj
ay5pZGw6IEFkZGVkLgorICAgICAgICAqIGNzcy9TdHlsZU1lZGlhLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlN0eWxlTWVkaWE6OlF1ZXJ5OjpRdWVyeSk6CisgICAgICAgIChXZWJDb3JlOjpTdHls
ZU1lZGlhOjpRdWVyeTo6flF1ZXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlTWVkaWE6OlF1
ZXJ5OjpldmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZU1lZGlhOjpMaXN0ZW5lcjo6
TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVNZWRpYTo6TGlzdGVuZXI6OmhhbmRs
ZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlTWVkaWE6OlN0eWxlTWVkaWEpOgorICAg
ICAgICAoV2ViQ29yZTo6cGFyc2UpOgorICAgICAgICAoV2ViQ29yZTo6c3RyaW5nQ29tcGFyZSk6
CisgICAgICAgIChXZWJDb3JlOjp3cml0ZU1lZGlhTGlzdEtleSk6CisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZU1lZGlhOjphZGRRdWVyeUxpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxl
TWVkaWE6Omxpc3RlbmVyQ29tcGFyZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZU1lZGlhOjpy
ZW1vdmVRdWVyeUxpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlTWVkaWE6OnByZXBh
cmVFdmFsdWF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVNZWRpYTo6bWF0Y2hRdWVyeSk6
CisgICAgICAgIChXZWJDb3JlOjpTdHlsZU1lZGlhOjpzdHlsZUNoYW5nZWQpOgorICAgICAgICAq
IGNzcy9TdHlsZU1lZGlhLmg6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZU1lZGlhOjpRdWVyeTo6
dmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVNZWRpYTo6UXVlcnk6OmNoYW5nZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGVNZWRpYTo6UXVlcnk6OmtleSk6CisgICAgICAgIChXZWJD
b3JlOjpTdHlsZU1lZGlhOjpMaXN0ZW5lcjo6cXVlcnkpOgorICAgICAgICAoV2ViQ29yZTo6U3R5
bGVNZWRpYTo6TGlzdGVuZXI6OmNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlTWVk
aWE6Okxpc3RlbmVyOjppZCk6CisgICAgICAgICogY3NzL1N0eWxlTWVkaWEuaWRsOgorICAgICAg
ICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRl
U3R5bGVTZWxlY3Rvcik6CisKIDIwMTAtMDUtMjcgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU3RldmUgQmxvY2suCmRpZmYgLS1naXQg
YS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDViNGM1
NTkuLjUxZWM5ZjIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNv
cmUvV2ViQ29yZS5neXBpCkBAIC0xOSw2ICsxOSw3IEBACiAgICAgICAgICAgICAnY3NzL0NTU1Zh
cmlhYmxlc1J1bGUuaWRsJywKICAgICAgICAgICAgICdjc3MvQ291bnRlci5pZGwnLAogICAgICAg
ICAgICAgJ2Nzcy9NZWRpYUxpc3QuaWRsJywKKyAgICAgICAgICAgICdjc3MvUXVlcnlDYWxsYmFj
ay5pZGwnLAogICAgICAgICAgICAgJ2Nzcy9SZWN0LmlkbCcsCiAgICAgICAgICAgICAnY3NzL1JH
QkNvbG9yLmlkbCcsCiAgICAgICAgICAgICAnY3NzL1N0eWxlTWVkaWEuaWRsJywKQEAgLTkwNSw2
ICs5MDYsOCBAQAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L1Y4Tm9kZUZpbHRlckNvbmRpdGlv
bi5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9WOFByb3h5LmNwcCcsCiAgICAgICAgICAg
ICAnYmluZGluZ3MvdjgvVjhQcm94eS5oJywKKyAgICAgICAgICAgICdiaW5kaW5ncy92OC9WOFF1
ZXJ5Q2FsbGJhY2suY3BwJywKKyAgICAgICAgICAgICdiaW5kaW5ncy92OC9WOFF1ZXJ5Q2FsbGJh
Y2suaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvVjhTVkdQT0RUeXBlV3JhcHBlci5oJywK
ICAgICAgICAgICAgICdiaW5kaW5ncy92OC9WOFV0aWxpdGllcy5jcHAnLAogICAgICAgICAgICAg
J2JpbmRpbmdzL3Y4L1Y4VXRpbGl0aWVzLmgnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3Jl
LnByaSBiL1dlYkNvcmUvV2ViQ29yZS5wcmkKaW5kZXggOWI4NzNmZS4uODZmNDc4MyAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9XZWJDb3JlLnByaQorKysgYi9XZWJDb3JlL1dlYkNvcmUucHJpCkBAIC0y
NDEsNiArMjQxLDcgQEAgSURMX0JJTkRJTkdTICs9IFwKICAgICBjc3MvQ1NTVmFyaWFibGVzRGVj
bGFyYXRpb24uaWRsIFwKICAgICBjc3MvQ1NTVmFyaWFibGVzUnVsZS5pZGwgXAogICAgIGNzcy9N
ZWRpYUxpc3QuaWRsIFwKKyMgICAgY3NzL1F1ZXJ5Q2FsbGJhY2suaWRsIFwKICAgICBjc3MvUmVj
dC5pZGwgXAogICAgIGNzcy9SR0JDb2xvci5pZGwgXAogICAgIGNzcy9TdHlsZU1lZGlhLmlkbCBc
CmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpp
bmRleCBkM2ViMTE1Li5kN2IzMDJkIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJvCisr
KyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTM1NSw2ICszNTUsNyBAQCBTT1VSQ0VTICs9IFwK
ICAgICBiaW5kaW5ncy9qcy9KU01haW5UaHJlYWRFeGVjU3RhdGUuY3BwIFwKICAgICBiaW5kaW5n
cy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwIFwKICAgICBiaW5kaW5ncy9qcy9KU1Bv
cFN0YXRlRXZlbnRDdXN0b20uY3BwIFwKKyAgICBiaW5kaW5ncy9qcy9KU1F1ZXJ5Q2FsbGJhY2su
Y3BwIFwKICAgICBiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwIFwK
ICAgICBiaW5kaW5ncy9qcy9TY3JpcHRBcnJheS5jcHAgXAogICAgIGJpbmRpbmdzL2pzL1Njcmlw
dENhY2hlZEZyYW1lRGF0YS5jcHAgXApAQCAtMTA2Nyw2ICsxMDY4LDcgQEAgSEVBREVSUyArPSBc
CiAgICAgYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmggXAogICAgIGJpbmRpbmdz
L2pzL0pTT3B0aW9uQ29uc3RydWN0b3IuaCBcCiAgICAgYmluZGluZ3MvanMvSlNQbHVnaW5FbGVt
ZW50RnVuY3Rpb25zLmggXAorICAgIGJpbmRpbmdzL2pzL0pTUXVlcnlDYWxsYmFjay5oIFwKICAg
ICBiaW5kaW5ncy9qcy9KU1NoYXJlZFdvcmtlckNvbnN0cnVjdG9yLmggXAogICAgIGJpbmRpbmdz
L2pzL0pTU3RvcmFnZUN1c3RvbS5oIFwKICAgICBiaW5kaW5ncy9qcy9KU1dlYktpdENTU01hdHJp
eENvbnN0cnVjdG9yLmggXApAQCAtMTE2Niw2ICsxMTY4LDcgQEAgSEVBREVSUyArPSBcCiAgICAg
Y3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuaCBcCiAgICAgY3NzL01lZGlhUXVlcnlFeHAuaCBcCiAg
ICAgY3NzL01lZGlhUXVlcnkuaCBcCisgICAgY3NzL1F1ZXJ5Q2FsbGJhY2suaCBcCiAgICAgY3Nz
L1JHQkNvbG9yLmggXAogICAgIGNzcy9TaGFkb3dWYWx1ZS5oIFwKICAgICBjc3MvU3R5bGVCYXNl
LmggXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxNjE5
NGU3Li5lYjE3NDFlIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNDg3MCw2ICs0ODcwLDkgQEAKIAkJRDIzQ0E1NUQwQUIwRUFBRTAwNTEwOEE1IC8qIEpT
UmFuZ2VFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEQyM0NBNTVDMEFCMEVBQUUwMDUxMDhBNSAvKiBKU1JhbmdlRXhjZXB0aW9uLmggKi87
IH07CiAJCUQyM0NBNTVGMEFCMEVBQjYwMDUxMDhBNSAvKiBKU1JhbmdlRXhjZXB0aW9uLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQyM0NBNTVFMEFC
MEVBQjYwMDUxMDhBNSAvKiBKU1JhbmdlRXhjZXB0aW9uLmNwcCAqLzsgfTsKIAkJRDIzQ0E1NkMw
QUIwRUI4RDAwNTEwOEE1IC8qIFJhbmdlRXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMjNDQTU2QjBBQjBFQjhEMDA1MTA4QTUgLyogUmFu
Z2VFeGNlcHRpb24uaCAqLzsgfTsKKwkJRDMyNDIxQjExMUI0MzMxRjAwNzJDOUYxIC8qIEpTUXVl
cnlDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBEMzI0MjFBRjExQjQzMzFGMDA3MkM5RjEgLyogSlNRdWVyeUNhbGxiYWNrLmNwcCAqLzsg
fTsKKwkJRDMyNDIxQjIxMUI0MzMxRjAwNzJDOUYxIC8qIEpTUXVlcnlDYWxsYmFjay5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDMyNDIxQjAxMUI0MzMx
RjAwNzJDOUYxIC8qIEpTUXVlcnlDYWxsYmFjay5oICovOyB9OworCQlEMzI0MjFCNTExQjQzMzhF
MDA3MkM5RjEgLyogUXVlcnlDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRDMyNDIxQjMxMUI0MzM4RTAwNzJDOUYxIC8qIFF1ZXJ5Q2FsbGJh
Y2suaCAqLzsgfTsKIAkJRDhCNjE1MkYxMDMyNDk1MTAwQzg1NTRBIC8qIENvb2tpZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDhCNjE1MkUxMDMyNDk1
MTAwQzg1NTRBIC8qIENvb2tpZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCURCMjNDMkNCMEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50
Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBEQjIzQzJDOTBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuY3BwICov
OyB9OwogCQlEQjIzQzJDQzBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERCMjNDMkNB
MEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5oICovOyB9OwpAQCAtMTA0
MDksNiArMTA0MTIsMTAgQEAKIAkJRDIzQ0E1NUMwQUIwRUFBRTAwNTEwOEE1IC8qIEpTUmFuZ2VF
eGNlcHRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUmFuZ2VFeGNl
cHRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDIzQ0E1NUUwQUIwRUFCNjAw
NTEwOEE1IC8qIEpTUmFuZ2VFeGNlcHRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTUmFuZ2VFeGNlcHRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlEMjNDQTU2QjBBQjBFQjhEMDA1MTA4QTUgLyogUmFuZ2VFeGNlcHRpb24uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJhbmdlRXhjZXB0aW9uLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUQzMjQyMUFGMTFCNDMzMUYwMDcyQzlGMSAvKiBKU1F1ZXJ5
Q2FsbGJhY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNRdWVy
eUNhbGxiYWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDMyNDIxQjAxMUI0
MzMxRjAwNzJDOUYxIC8qIEpTUXVlcnlDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU1F1ZXJ5Q2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRDMyNDIxQjMxMUI0MzM4RTAwNzJDOUYxIC8qIFF1ZXJ5Q2FsbGJhY2suaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUXVlcnlDYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlEMzI0MjFCNDExQjQzMzhFMDA3MkM5RjEgLyogUXVlcnlDYWxsYmFjay5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUXVlcnlDYWxsYmFjay5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUQ4QjYxNTJFMTAzMjQ5NTEwMEM4NTU0QSAvKiBDb29raWUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29va2llLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCURCMjNDMkM5MEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50
Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5kZW50
T3V0ZGVudENvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQjIzQzJD
QTBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluZGVudE91dGRlbnRDb21tYW5kLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xNTc3NSw2ICsxNTc4Miw4IEBACiAJCQkJOTM1RjQ1NDEwRjdD
M0I1RjAwRDdDMUZCIC8qIEpTTGF6eUV2ZW50TGlzdGVuZXIuaCAqLywKIAkJCQlCQ0I3NzM1RTBD
MTc4NTNEMDAxMzJCQTQgLyogSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCAqLywKIAkJCQlCQ0I3
NzM1RjBDMTc4NTNEMDAxMzJCQTQgLyogSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmggKi8sCisJCQkJ
RDMyNDIxQUYxMUI0MzMxRjAwNzJDOUYxIC8qIEpTUXVlcnlDYWxsYmFjay5jcHAgKi8sCisJCQkJ
RDMyNDIxQjAxMUI0MzMxRjAwNzJDOUYxIC8qIEpTUXVlcnlDYWxsYmFjay5oICovLAogCQkJKTsK
IAkJCW5hbWUgPSAiQ2FsbGJhY2sgT2JqZWN0cyI7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OwpAQCAtMTYwODEsNiArMTYwOTAsOCBAQAogCQlGNTIzRDE4NDAyREU0MkU4MDE4NjM1Q0EgLyog
Y3NzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlEMzI0
MjFCMzExQjQzMzhFMDA3MkM5RjEgLyogUXVlcnlDYWxsYmFjay5oICovLAorCQkJCUQzMjQyMUI0
MTFCNDMzOEUwMDcyQzlGMSAvKiBRdWVyeUNhbGxiYWNrLmlkbCAqLywKIAkJCQk5M0NBNEM5QzA5
REY5M0ZBMDBERjg2NzcgLyogbWFrZXRva2VuaXplciAqLywKIAkJCQlBODBFNkNEQTBBMTk4OUNB
MDA3RkI4QzUgLyogQ291bnRlci5oICovLAogCQkJCTkzMDcwNUM3MDlFMEM5NUYwMEIxN0ZFNCAv
KiBDb3VudGVyLmlkbCAqLywKQEAgLTE5NDA4LDYgKzE5NDE5LDggQEAKIAkJCQlDNTFEQTlBNzEx
QUVGMkMxMDA5Nzk5QzUgLyogSURCSW5kZXhJbXBsLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNTFE
QTlBOTExQUVGMkMxMDA5Nzk5QzUgLyogSURCSW5kZXhSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywK
IAkJCQlDNUJCQzlEMTExQUVGODM4MDA3QzJCRkUgLyogSlNJREJJbmRleFJlcXVlc3QuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUQzMjQyMUIyMTFCNDMzMUYwMDcyQzlGMSAvKiBKU1F1ZXJ5Q2FsbGJh
Y2suaCBpbiBIZWFkZXJzICovLAorCQkJCUQzMjQyMUI1MTFCNDMzOEUwMDcyQzlGMSAvKiBRdWVy
eUNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVu
dFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTIxNzA3LDYgKzIxNzIwLDcgQEAKIAkJCQlD
NTFEQTlBNjExQUVGMkMxMDA5Nzk5QzUgLyogSURCSW5kZXhJbXBsLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUM1MURBOUE4MTFBRUYyQzEwMDk3OTlDNSAvKiBJREJJbmRleFJlcXVlc3QuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQzVCQkM5RDAxMUFFRjgzODAwN0MyQkZFIC8qIEpTSURCSW5kZXhS
ZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUQzMjQyMUIxMTFCNDMzMUYwMDcyQzlGMSAv
KiBKU1F1ZXJ5Q2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZv
ckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTUXVlcnlDYWxsYmFjay5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
UXVlcnlDYWxsYmFjay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWQ1
NGVmNwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNRdWVyeUNhbGxi
YWNrLmNwcApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lh
IENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJKU1F1ZXJ5Q2FsbGJhY2suaCIKKworI2luY2x1ZGUgIkpT
RE9NQmluZGluZy5oIgorI2luY2x1ZGUgIlNjcmlwdFZhbHVlLmgiCisKKyNpbmNsdWRlIDxydW50
aW1lL0FyZ0xpc3QuaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgorCit1c2luZyBuYW1l
c3BhY2UgSlNDOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Jvb2wgSlNRdWVyeUNhbGxiYWNr
Ojppc0VxdWFsKFNjcmlwdFN0YXRlKiBzdGF0ZSwgY29uc3QgUXVlcnlDYWxsYmFjayYgb3RoZXIp
IGNvbnN0Cit7CisgICAgY29uc3QgSlNRdWVyeUNhbGxiYWNrKiBjYWxsYmFjayA9IHN0YXRpY19j
YXN0PGNvbnN0IEpTUXVlcnlDYWxsYmFjayo+KCZvdGhlcik7CisgICAgaWYgKCFjYWxsYmFjaykK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIG1fY2FsbGJhY2suaXNFcXVhbChz
dGF0ZSwgY2FsbGJhY2stPm1fY2FsbGJhY2spOworfQorCit2b2lkIEpTUXVlcnlDYWxsYmFjazo6
aGFuZGxlRXZlbnQoU2NyaXB0U3RhdGUqIHN0YXRlLCBpbnQgcXVlcnlJZCwgYm9vbCBxdWVyeVJl
c3VsdCkKK3sKKyAgICBKU0xvY2sgbG9jayhTaWxlbmNlQXNzZXJ0aW9uc09ubHkpOworCisgICAg
Q2FsbERhdGEgY2FsbERhdGE7CisgICAgQ2FsbFR5cGUgY2FsbFR5cGUgPSBtX2NhbGxiYWNrLmpz
VmFsdWUoKS5nZXRDYWxsRGF0YShjYWxsRGF0YSk7CisgICAgaWYgKGNhbGxUeXBlID09IENhbGxU
eXBlTm9uZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgSlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZl
ciBhcmd1bWVudHM7CisgICAgYXJndW1lbnRzLmFwcGVuZChqc051bWJlcihzdGF0ZSwgcXVlcnlJ
ZCkpOworICAgIGFyZ3VtZW50cy5hcHBlbmQoanNCb29sZWFuKHF1ZXJ5UmVzdWx0KSk7CisKKyAg
ICBKU0M6OmNhbGwoc3RhdGUsIG1fY2FsbGJhY2suanNWYWx1ZSgpLCBjYWxsVHlwZSwgY2FsbERh
dGEsIG1fY2FsbGJhY2suanNWYWx1ZSgpLCBhcmd1bWVudHMpOworCisgICAgaWYgKHN0YXRlLT5o
YWRFeGNlcHRpb24oKSkKKyAgICAgICAgcmVwb3J0RXhjZXB0aW9uKHN0YXRlLCBzdGF0ZS0+ZXhj
ZXB0aW9uKCkpOworCit9CisKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNR
dWVyeUNhbGxiYWNrLmggYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUXVlcnlDYWxsYmFjay5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE3Y2NhMjYKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUXVlcnlDYWxsYmFjay5oCkBAIC0wLDAgKzEsNTgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBKU1F1ZXJ5Q2FsbGJhY2tfaAorI2Rl
ZmluZSBKU1F1ZXJ5Q2FsbGJhY2tfaAorCisjaW5jbHVkZSAiUXVlcnlDYWxsYmFjay5oIgorI2lu
Y2x1ZGUgIlNjcmlwdFZhbHVlLmgiCisjaW5jbHVkZSAicnVudGltZS9KU1ZhbHVlLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSlNRdWVyeUNhbGxiYWNrIDogcHVibGljIFF1ZXJ5
Q2FsbGJhY2sgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFF1ZXJ5Q2FsbGJhY2s+
IGNyZWF0ZShKU0M6OkpTVmFsdWUgY2FsbGJhY2spCisgICAgeworICAgICAgICBKU0M6OkNhbGxE
YXRhIGNhbGxEYXRhOworICAgICAgICBKU0M6OkNhbGxUeXBlIGNhbGxUeXBlID0gY2FsbGJhY2su
Z2V0Q2FsbERhdGEoY2FsbERhdGEpOworICAgICAgICBpZiAoY2FsbFR5cGUgPT0gSlNDOjpDYWxs
VHlwZU5vbmUpCisgICAgICAgICAgICByZXR1cm4gMDsKKworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IEpTUXVlcnlDYWxsYmFjayhjYWxsYmFjaykpOworICAgIH0KKworCisgICAgdmlydHVh
bCBib29sIGlzRXF1YWwoU2NyaXB0U3RhdGUqLCBjb25zdCBRdWVyeUNhbGxiYWNrJikgY29uc3Q7
CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KFNjcmlwdFN0YXRlKiwgaW50LCBib29sKTsK
KworcHJpdmF0ZToKKyAgICBTY3JpcHRWYWx1ZSBtX2NhbGxiYWNrOworICAgIEpTUXVlcnlDYWxs
YmFjayhKU0M6OkpTVmFsdWUgY2FsbGJhY2spIDogbV9jYWxsYmFjayhjYWxsYmFjaykge30KK307
CisKK30KKworI2VuZGlmIC8vIEpTUXVlcnlDYWxsYmFja19oCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCA4MzIxN2Y1Li45YjhmNjRkIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTIyNjAsNiArMjI2
MCw3IEBAIG15ICVuYXRpdmVUeXBlID0gKAogICAgICJET01TdHJpbmciID0+ICJjb25zdCBTdHJp
bmcmIiwKICAgICAiRE9NT2JqZWN0IiA9PiAiU2NyaXB0VmFsdWUiLAogICAgICJOb2RlRmlsdGVy
IiA9PiAiUmVmUHRyPE5vZGVGaWx0ZXI+IiwKKyAgICAiUXVlcnlDYWxsYmFjayIgPT4gIlJlZlB0
cjxRdWVyeUNhbGxiYWNrPiIsCiAgICAgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSIgPT4gIlJlZlB0
cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IiwKICAgICAiU1ZHQW5nbGUiID0+ICJTVkdBbmdsZSIs
CiAgICAgIlNWR0xlbmd0aCIgPT4gIlNWR0xlbmd0aCIsCkBAIC0yMzI4LDYgKzIzMjksMTEgQEAg
c3ViIEpTVmFsdWVUb05hdGl2ZQogICAgICAgICByZXR1cm4gIlNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZTo6Y3JlYXRlKGV4ZWMsICR2YWx1ZSkiOwogICAgIH0KIAorICAgIGlmICgkdHlwZSBlcSAiUXVl
cnlDYWxsYmFjayIpIHsKKyAgICAgICAgJGltcGxJbmNsdWRlc3siSlNRdWVyeUNhbGxiYWNrLmgi
fSA9IDE7CisgICAgICAgIHJldHVybiAiSlNRdWVyeUNhbGxiYWNrOjpjcmVhdGUoJHZhbHVlKSI7
CisgICAgfQorCiAgICAgJGltcGxJbmNsdWRlc3siRmxvYXRQb2ludC5oIn0gPSAxIGlmICR0eXBl
IGVxICJTVkdQb2ludCI7CiAgICAgJGltcGxJbmNsdWRlc3siRmxvYXRSZWN0LmgifSA9IDEgaWYg
JHR5cGUgZXEgIlNWR1JlY3QiOwogICAgICRpbXBsSW5jbHVkZXN7IkhUTUxPcHRpb25FbGVtZW50
LmgifSA9IDEgaWYgJHR5cGUgZXEgIkhUTUxPcHRpb25FbGVtZW50IjsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhRdWVyeUNhbGxiYWNrLmNwcCBiL1dlYkNvcmUvYmluZGluZ3Mv
djgvVjhRdWVyeUNhbGxiYWNrLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4xOGFhN2Y5Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFF1ZXJ5
Q2FsbGJhY2suY3BwCkBAIC0wLDAgKzEsNDAgQEAKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJWOFF1ZXJ5Q2FsbGJhY2suaCIKKworI2luY2x1ZGUgIk5vZGUuaCIKKyNpbmNsdWRlICJO
b2RlRmlsdGVyLmgiCisjaW5jbHVkZSAiU2NyaXB0U3RhdGUuaCIKKyNpbmNsdWRlICJWOFByb3h5
LmgiCisKKyNpbmNsdWRlIDx3dGYvT3duQXJyYXlQdHIuaD4KKworYm9vbCBWOFF1ZXJ5Q2FsbGJh
Y2s6OmlzRXF1YWwoU2NyaXB0U3RhdGUqIHN0YXRlLCBjb25zdCBRdWVyeUNhbGxiYWNrJiBvdGhl
cikgY29uc3QKK3sKKyAgICBjb25zdCBWOFF1ZXJ5Q2FsbGJhY2sqIGNhbGxiYWNrID0gc3RhdGlj
X2Nhc3Q8Y29uc3QgVjhRdWVyeUNhbGxiYWNrKj4oJm90aGVyKTsKKyAgICBpZiAoIWNhbGxiYWNr
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gbV9jYWxsYmFjay5pc0VxdWFs
KHN0YXRlLCBjYWxsYmFjay0+bV9jYWxsYmFjayk7Cit9CisKK3ZvaWQgVjhRdWVyeUNhbGxiYWNr
OjpoYW5kbGVFdmVudChTY3JpcHRTdGF0ZSogc3RhdGUsIGludCBpZCwgYm9vbCBxdWVyeVJlc3Vs
dCkKK3sKKyAgICBBU1NFUlQodjg6OkNvbnRleHQ6OkluQ29udGV4dCgpKTsKKworICAgIGlmICgh
bV9jYWxsYmFjay0+djhWYWx1ZSgpLT5Jc0Z1bmN0aW9uKCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIHY4OjpUcnlDYXRjaCBleGNlcHRpb25DYXRjaGVyOworCisgICAgdjg6OkhhbmRsZTx2ODo6
T2JqZWN0PiBvYmplY3QgPSB2ODo6Q29udGV4dDo6R2V0Q3VycmVudCgpLT5HbG9iYWwoKTsKKyAg
ICB2ODo6TG9jYWw8djg6OkZ1bmN0aW9uPiBmdW5jdGlvbih2ODo6RnVuY3Rpb246OkNhc3QoKm1f
Y2FsbGJhY2stPnY4VmFsdWUoKSkpOworCisgICAgT3duQXJyYXlQdHI8djg6OkhhbmRsZTx2ODo6
VmFsdWU+ID4gYXJncyhuZXcgdjg6OkhhbmRsZTx2ODo6VmFsdWU+WzJdKTsKKyAgICBhcmdzWzBd
ID0gdjg6Ok51bWJlcjo6TmV3KGFyZ3VtZW50KTsKKyAgICBhcmdzWzFdID0gdjhCb29sZWFuKHF1
ZXJ5UmVzdWx0KTsKKworICAgIFY4UHJveHk6OmNhbGxGdW5jdGlvbldpdGhvdXRGcmFtZShmdW5j
dGlvbiwgb2JqZWN0LCAyLCBhcmdzLmdldCgpKTsKKworICAgIGlmIChleGNlcHRpb25DYXRjaGVy
Lkhhc0NhdWdodCgpKQorICAgICAgICBzdGF0ZS0+c2V0RXhjZXB0aW9uKGV4Y2VwdGlvbkNhdGNo
ZXIuRXhjZXB0aW9uKCkpOworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFF1
ZXJ5Q2FsbGJhY2suaCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhRdWVyeUNhbGxiYWNrLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDA3YjAyZgotLS0gL2Rldi9udWxsCisr
KyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhRdWVyeUNhbGxiYWNrLmgKQEAgLTAsMCArMSwyMyBA
QAorI2lmbmRlZiBWOFF1ZXJ5Q2FsbGJhY2tfaAorI2RlZmluZSBWOFF1ZXJ5Q2FsbGJhY2tfaAor
CisjaW5jbHVkZSAiTWVkaWFDaGFuZ2VMaXN0ZW5lci5oIgorI2luY2x1ZGUgIlNjcmlwdFZhbHVl
LmgiCisKKyNpbmNsdWRlIDx2OC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFY4
UXVlcnlDYWxsYmFjayA6IHB1YmxpYyBNZWRpYUNoYW5nZUxpc3RlbmVyIHsKK3B1YmxpYzoKKyAg
ICBWOFF1ZXJ5Q2FsbGJhY2sodjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNhbGxiYWNrKSA6IG1fY2Fs
bGJhY2soY2FsbGJhY2spIHt9CisKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZlbnQoU2NyaXB0
U3RhdGUqLCBpbnQsIGJvb2wpOworCitwcml2YXRlOgorICAgIFNjcmlwdFZhbHVlIG1fY2FsbGJh
Y2s7Cit9OworCit9CisKKyNlbmRpZiAvLyBWOFF1ZXJ5Q2FsbGJhY2tfaApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9jc3MvU3R5bGVNZWRpYS5jcHAgYi9XZWJDb3JlL2Nzcy9TdHlsZU1lZGlhLmNwcApp
bmRleCA2Y2I2NjJmLi44NjQwYmM5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9TdHlsZU1lZGlh
LmNwcAorKysgYi9XZWJDb3JlL2Nzcy9TdHlsZU1lZGlhLmNwcApAQCAtMSw1ICsxLDYgQEAKIC8q
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lk
aWFyeSgtaWVzKQogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMCwxMiArMzEs
NTcgQEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1
ZGUgIk1lZGlhTGlzdC5oIgorI2luY2x1ZGUgIk1lZGlhUXVlcnkuaCIKICNpbmNsdWRlICJNZWRp
YVF1ZXJ5RXZhbHVhdG9yLmgiCisjaW5jbHVkZSAiU3RyaW5nQnVpbGRlci5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKK3N0YXRpYyBpbnQgbGlzdGVuZXJJZHMgPSAwOworCisvLyBTdHlsZU1l
ZGlhOjpRdWVyeQorCitTdHlsZU1lZGlhOjpRdWVyeTo6UXVlcnkoUGFzc1JlZlB0cjxNZWRpYUxp
c3Q+IG1lZGlhLCBQYXNzT3duUHRyPE1lZGlhUXVlcnlFdmFsdWF0b3I+IGV2YWx1YXRvciwgaW50
JiByb3VuZCwgY29uc3QgU3RyaW5nJiBrZXkpCisgICAgOiBtX21lZGlhKG1lZGlhKQorICAgICwg
bV9jdXJyZW50VmFsdWUoZXZhbHVhdG9yICYmIGV2YWx1YXRvci0+ZXZhbChtX21lZGlhLmdldCgp
KSkKKyAgICAsIG1fY3VycmVudFJvdW5kKHJvdW5kKQorICAgICwgbV9jaGFuZ2VSb3VuZChtX2N1
cnJlbnRSb3VuZCAtIDEpCisgICAgLCBtX2tleShrZXkpCit7Cit9CisKK1N0eWxlTWVkaWE6OlF1
ZXJ5Ojp+UXVlcnkoKQoreworfQorCit2b2lkIFN0eWxlTWVkaWE6OlF1ZXJ5OjpldmFsdWF0ZShN
ZWRpYVF1ZXJ5RXZhbHVhdG9yKiBldmFsdWF0b3IpCit7CisgICAgYm9vbCBuZXdWYWx1ZSA9IGV2
YWx1YXRvciAmJiBldmFsdWF0b3ItPmV2YWwobV9tZWRpYS5nZXQoKSk7CisgICAgaWYgKG5ld1Zh
bHVlICE9IG1fY3VycmVudFZhbHVlKSB7CisgICAgICAgIG1fY3VycmVudFZhbHVlID0gbmV3VmFs
dWU7CisgICAgICAgIG1fY2hhbmdlUm91bmQgPSBtX2N1cnJlbnRSb3VuZDsKKyAgICB9Cit9CisK
Ky8vIFN0eWxlTWVkaWE6Okxpc3RlbmVyCisKK1N0eWxlTWVkaWE6Okxpc3RlbmVyOjpMaXN0ZW5l
cihQYXNzUmVmUHRyPFF1ZXJ5PiBxdWVyeSwgUGFzc1JlZlB0cjxRdWVyeUNhbGxiYWNrPiBjYWxs
YmFjaykKKyAgICA6IG1fcXVlcnkocXVlcnkpCisgICAgLCBtX2NhbGxiYWNrKGNhbGxiYWNrKQor
ICAgICwgbV9pZCgrK2xpc3RlbmVySWRzKQore30KKwordm9pZCBTdHlsZU1lZGlhOjpMaXN0ZW5l
cjo6aGFuZGxlRXZlbnQoU2NyaXB0U3RhdGUqIGV4ZWMpCit7CisgICAgaWYgKG1fcXVlcnktPmNo
YW5nZWQoKSkKKyAgICAgICAgbV9jYWxsYmFjay0+aGFuZGxlRXZlbnQoZXhlYywgbV9pZCwgbV9x
dWVyeS0+dmFsdWUoKSk7Cit9CisKKy8vIFN0eWxlTWVkaWEKKwogU3R5bGVNZWRpYTo6U3R5bGVN
ZWRpYShGcmFtZSogZnJhbWUpCiAgICAgOiBtX2ZyYW1lKGZyYW1lKQorICAgICwgbV9jdXJyZW50
Um91bmQoMCkKIHsKIH0KIApAQCAtNDgsMzAgKzk0LDE2NyBAQCBTdHJpbmcgU3R5bGVNZWRpYTo6
dHlwZSgpIGNvbnN0CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi1ib29sIFN0eWxlTWVkaWE6
Om1hdGNoTWVkaXVtKGNvbnN0IFN0cmluZyYgcXVlcnkpIGNvbnN0CitzdGF0aWMgUGFzc1JlZlB0
cjxNZWRpYUxpc3Q+IHBhcnNlKGNvbnN0IFN0cmluZyYgcXVlcnkpCit7CisgICAgUmVmUHRyPE1l
ZGlhTGlzdD4gbWVkaWEgPSBNZWRpYUxpc3Q6OmNyZWF0ZSgpOworICAgIEV4Y2VwdGlvbkNvZGUg
ZWMgPSAwOworICAgIG1lZGlhLT5zZXRNZWRpYVRleHQocXVlcnksIGVjKTsKKyAgICBpZiAoZWMp
CisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBtZWRpYTsKK30KKworc3RhdGljIGJvb2wg
c3RyaW5nQ29tcGFyZShjb25zdCBTdHJpbmcmIGEsIGNvbnN0IFN0cmluZyYgYikKK3sKKyAgICBy
ZXR1cm4gY29kZVBvaW50Q29tcGFyZShhLCBiKSA8IDA7Cit9CisKK3N0YXRpYyBTdHJpbmcgd3Jp
dGVNZWRpYUxpc3RLZXkoTWVkaWFMaXN0KiBtZWRpYSkKK3sKKyAgICBWZWN0b3I8U3RyaW5nPiBs
aXN0OworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbWVkaWEtPm1lZGlhUXVlcmllcygpLnNp
emUoKTsgKytpKSB7CisgICAgICAgIGxpc3QuYXBwZW5kKG1lZGlhLT5tZWRpYVF1ZXJpZXMoKVtp
XS0+Y3NzVGV4dCgpKTsKKyAgICB9CisKKyAgICBpZiAobGlzdC5pc0VtcHR5KCkpCisgICAgICAg
IHJldHVybiBTdHJpbmcoKTsKKworICAgIHN0ZDo6c29ydChsaXN0LmJlZ2luKCksIGxpc3QuZW5k
KCksIHN0cmluZ0NvbXBhcmUpOworICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0OworICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgbGlzdC5zaXplKCk7ICsraSkKKyAgICAgICAgcmVzdWx0LmFwcGVu
ZChsaXN0W2ldKTsKKyAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7Cit9CisKK2ludCBTdHls
ZU1lZGlhOjphZGRRdWVyeUxpc3RlbmVyKGNvbnN0IFN0cmluZyYgbWVkaWFRdWVyeSwgUGFzc1Jl
ZlB0cjxRdWVyeUNhbGxiYWNrPiBjYWxsYmFjaykKK3sKKyAgICBpZiAoIWNhbGxiYWNrKQorICAg
ICAgICByZXR1cm4gMDsKKworICAgIFJlZlB0cjxNZWRpYUxpc3Q+IG1lZGlhID0gcGFyc2UobWVk
aWFRdWVyeSk7CisKKyAgICBTdHJpbmcga2V5ID0gd3JpdGVNZWRpYUxpc3RLZXkobWVkaWEuZ2V0
KCkpOworICAgIGlmIChrZXkuaXNOdWxsKCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgLy8g
bG9vayBmb3IgcXVlcnkgaW4gbV9xdWVyaWVzLgorICAgIFF1ZXJ5KiBxdWVyeSA9IG1fcXVlcmll
cy5nZXQoa2V5KTsKKyAgICBpZiAoIXF1ZXJ5KSB7CisKKyAgICAgICAgLy8gaWYgbm8gZXF1aXZh
bGVudCBxdWVyeSBpcyBpbiBtX3F1ZXJpZXMgY3JlYXRlIG9uZS4KKyAgICAgICAgT3duUHRyPFF1
ZXJ5PiB0ZW1wKG5ldyBRdWVyeShtZWRpYSwgcHJlcGFyZUV2YWx1YXRvcigpLCBtX2N1cnJlbnRS
b3VuZCwga2V5KSk7CisgICAgICAgIGlmIChtX3F1ZXJpZXMuYWRkKGtleSwgdGVtcC5nZXQoKSku
c2Vjb25kKQorICAgICAgICAgICAgcXVlcnkgPSB0ZW1wLnJlbGVhc2UoKTsgLy8gcXVlcnkgY3Jl
YXRlZCBhbmQgYWRkZWQgdG8gbV9xdWVyaWVzCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJl
dHVybiAwOworCisgICAgfSBlbHNlIHsKKworICAgICAgICBTY3JpcHRTdGF0ZSogZXhlYyA9IG1h
aW5Xb3JsZFNjcmlwdFN0YXRlKG1fZnJhbWUpOworICAgICAgICBpZiAoIWV4ZWMpCisgICAgICAg
ICAgICByZXR1cm4gMDsKKworICAgICAgICAvLyBpZiB0aGVyZSBpcyBhbHJlYWR5IGFuIGVxdWl2
YWxlbnQgcXVlcnkgbG9vayBmb3IgYW4gZXF1aXZhbGVudAorICAgICAgICAvLyBwYWlyIChxdWVy
eSwgY2FsbGJhY2spLiByZXR1cm4gaWYgZm91bmQuCisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgbV9saXN0ZW5lcnMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChtX2xpc3Rl
bmVyc1tpXS0+cXVlcnkoKSA9PSBxdWVyeSAmJiBtX2xpc3RlbmVyc1tpXS0+Y2FsbGJhY2soKS0+
aXNFcXVhbChleGVjLCpjYWxsYmFjaykpCisgICAgICAgICAgICAgICAgcmV0dXJuIG1fbGlzdGVu
ZXJzW2ldLT5pZCgpOworICAgICAgICB9CisKKyAgICB9CisKKyAgICBMaXN0ZW5lciogbGlzdGVu
ZXIgPSBuZXcgTGlzdGVuZXIocXVlcnksIGNhbGxiYWNrKTsKKyAgICBtX2xpc3RlbmVycy5hcHBl
bmQobGlzdGVuZXIpOworICAgIHJldHVybiBsaXN0ZW5lci0+aWQoKTsKK30KKworYm9vbCBTdHls
ZU1lZGlhOjpsaXN0ZW5lckNvbXBhcmUoY29uc3QgTGlzdGVuZXIqIGxpc3RlbmVyLCBpbnQgaWQp
Cit7CisgICAgcmV0dXJuIGxpc3RlbmVyLT5pZCgpIC0gaWQgPCAwOworfQorCit2b2lkIFN0eWxl
TWVkaWE6OnJlbW92ZVF1ZXJ5TGlzdGVuZXIoaW50IGlkKQoreworICAgIC8vIGxvb2sgZm9yIHRo
ZSBsaXN0ZW5lciBpZGVudGlmaWVkIGJ5IGlkLiByZXR1cm4gaWYgbm90IGZvdW5kLgorICAgIFZl
Y3RvcjxMaXN0ZW5lcio+OjppdGVyYXRvciBsaXN0ZW5lciA9IHN0ZDo6bG93ZXJfYm91bmQobV9s
aXN0ZW5lcnMuYmVnaW4oKSwgbV9saXN0ZW5lcnMuZW5kKCksIGlkLCBsaXN0ZW5lckNvbXBhcmUp
OworICAgIGlmIChsaXN0ZW5lciA9PSBtX2xpc3RlbmVycy5lbmQoKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgLy8gZGVsZXRlIHRoZSByZW1vdmVkIGxpc3RlbmVyLiBrZWVwIGEgcG9pbnRlciB0
byB0aGUgcXVlcnkuCisgICAgTGlzdGVuZXIqIGl0ZW0gPSAqbGlzdGVuZXI7CisgICAgY29uc3Qg
UXVlcnkqIHF1ZXJ5ID0gaXRlbS0+cXVlcnkoKTsKKyAgICBtX2xpc3RlbmVycy5yZW1vdmUobGlz
dGVuZXIgLSBtX2xpc3RlbmVycy5kYXRhKCkpOworICAgIGRlbGV0ZSBpdGVtOworCisgICAgLy8g
ZGVsZXRlIHRoZSBxdWVyeSBpZiBpdCBpcyBub3QgdXNlZCBhbnkgbW9yZS4KKyAgICBpZiAocXVl
cnktPmhhc09uZVJlZigpKSB7CisgICAgICAgIG1fcXVlcmllcy5yZW1vdmUocXVlcnktPmtleSgp
KTsKKyAgICAgICAgZGVsZXRlIHF1ZXJ5OworICAgIH0KK30KKworTWVkaWFRdWVyeUV2YWx1YXRv
ciogU3R5bGVNZWRpYTo6cHJlcGFyZUV2YWx1YXRvcigpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2Zy
YW1lKQotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiAwOwogCiAgICAgRG9j
dW1lbnQqIGRvY3VtZW50ID0gbV9mcmFtZS0+ZG9jdW1lbnQoKTsKLSAgICBBU1NFUlQoZG9jdW1l
bnQpOworICAgIGlmICghZG9jdW1lbnQpCisgICAgICAgIHJldHVybiAwOworCiAgICAgRWxlbWVu
dCogZG9jdW1lbnRFbGVtZW50ID0gZG9jdW1lbnQtPmRvY3VtZW50RWxlbWVudCgpOwotICAgIEFT
U0VSVChkb2N1bWVudEVsZW1lbnQpOworICAgIGlmICghZG9jdW1lbnRFbGVtZW50KQorICAgICAg
ICByZXR1cm4gMDsKIAogICAgIENTU1N0eWxlU2VsZWN0b3IqIHN0eWxlU2VsZWN0b3IgPSBkb2N1
bWVudC0+c3R5bGVTZWxlY3RvcigpOwogICAgIGlmICghc3R5bGVTZWxlY3RvcikKLSAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gMDsKIAogICAgIFJlZlB0cjxSZW5kZXJTdHls
ZT4gcm9vdFN0eWxlID0gc3R5bGVTZWxlY3Rvci0+c3R5bGVGb3JFbGVtZW50KGRvY3VtZW50RWxl
bWVudCwgMCAvKmRlZmF1bHRQYXJlbnQqLywgZmFsc2UgLyphbGxvd1NoYXJpbmcqLywgdHJ1ZSAv
KnJlc29sdmVGb3JSb290RGVmYXVsdCovKTsKLSAgICBSZWZQdHI8TWVkaWFMaXN0PiBtZWRpYSA9
IE1lZGlhTGlzdDo6Y3JlYXRlKCk7CiAKKyAgICByZXR1cm4gbmV3IE1lZGlhUXVlcnlFdmFsdWF0
b3IodHlwZSgpLCBtX2ZyYW1lLCByb290U3R5bGUuZ2V0KCkpOworfQorCitib29sIFN0eWxlTWVk
aWE6Om1hdGNoUXVlcnkoY29uc3QgU3RyaW5nJiBxdWVyeSkgY29uc3QKK3sKKyAgICBSZWZQdHI8
TWVkaWFMaXN0PiBtZWRpYShNZWRpYUxpc3Q6OmNyZWF0ZSgpKTsKICAgICBFeGNlcHRpb25Db2Rl
IGVjID0gMDsKICAgICBtZWRpYS0+c2V0TWVkaWFUZXh0KHF1ZXJ5LCBlYyk7CiAgICAgaWYgKGVj
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBNZWRpYVF1ZXJ5RXZhbHVhdG9yIHNjcmVl
bkV2YWwodHlwZSgpLCBtX2ZyYW1lLCByb290U3R5bGUuZ2V0KCkpOwotICAgIHJldHVybiBzY3Jl
ZW5FdmFsLmV2YWwobWVkaWEuZ2V0KCkpOworICAgIE93blB0cjxNZWRpYVF1ZXJ5RXZhbHVhdG9y
PiBldmFsdWF0b3IocHJlcGFyZUV2YWx1YXRvcigpKTsKKyAgICByZXR1cm4gZXZhbHVhdG9yICYm
IGV2YWx1YXRvci0+ZXZhbChtZWRpYS5nZXQoKSk7Cit9CisKK3ZvaWQgU3R5bGVNZWRpYTo6c3R5
bGVDaGFuZ2VkKCkKK3sKKyAgICBPd25QdHI8TWVkaWFRdWVyeUV2YWx1YXRvcj4gZXZhbHVhdG9y
KHByZXBhcmVFdmFsdWF0b3IoKSk7CisgICAgaWYgKCFldmFsdWF0b3IpCisgICAgICAgIHJldHVy
bjsKKworICAgIC8vIGluY3JlbWVudCBldmFsdWF0aW9uIHJvdW5kCisgICAgKyttX2N1cnJlbnRS
b3VuZDsKKworICAgIC8vIGV2YWx1YXRlIGVhY2ggcXVlcnkgYW5kIGNoZWNrIGlmIGFueSBvZiB0
aGVtIGNoYW5nZXMKKyAgICBib29sIGNoYW5nZWQgPSBmYWxzZTsKKyAgICBIYXNoTWFwPFN0cmlu
ZywgUXVlcnkqPjo6aXRlcmF0b3I6OlZhbHVlcyBpID0gbV9xdWVyaWVzLmJlZ2luKCk7CisgICAg
SGFzaE1hcDxTdHJpbmcsIFF1ZXJ5Kj46Oml0ZXJhdG9yOjpWYWx1ZXMgZW5kID0gbV9xdWVyaWVz
LmVuZCgpOworICAgIGZvciAoOyBpICE9IGVuZDsgKytpKSB7CisgICAgICAgICgqaSktPmV2YWx1
YXRlKGV2YWx1YXRvci5nZXQoKSk7CisgICAgICAgIGNoYW5nZWQgPSBjaGFuZ2VkIHx8ICgqaSkt
PmNoYW5nZWQoKTsKKyAgICB9CisKKyAgICAvLyBpZiBhbnkgb2YgdGhlIHF1ZXJpZXMgaGFzIGNo
YW5nZWQgdHJpZ2VyIHRoZSBjb3JyZXNwb25kaW5nIGNhbGxiYWNrcyBpbiBvcmRlcgorICAgIGlm
IChjaGFuZ2VkICYmIG1fZnJhbWUpIHsKKworICAgICAgICBTY3JpcHRTdGF0ZSogZXhlYyA9IG1h
aW5Xb3JsZFNjcmlwdFN0YXRlKG1fZnJhbWUpOworICAgICAgICBpZiAoIWV4ZWMpCisgICAgICAg
ICAgICByZXR1cm47CisKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2xpc3RlbmVy
cy5zaXplKCk7ICsraSkKKyAgICAgICAgICAgICAgICBtX2xpc3RlbmVyc1tpXS0+aGFuZGxlRXZl
bnQoZXhlYyk7CisgICAgfQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2Nzcy9TdHlsZU1lZGlhLmggYi9XZWJDb3JlL2Nzcy9TdHlsZU1lZGlhLmgKaW5k
ZXggNzYxZTZhMy4uNzg4MTM3OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvU3R5bGVNZWRpYS5o
CisrKyBiL1dlYkNvcmUvY3NzL1N0eWxlTWVkaWEuaApAQCAtMjgsNiArMjgsMTUgQEAKICNkZWZp
bmUgU3R5bGVNZWRpYV9oCiAKICNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJNZWRp
YUxpc3QuaCIKKyNpbmNsdWRlICJRdWVyeUNhbGxiYWNrLmgiCisjaW5jbHVkZSAiTWVkaWFRdWVy
eUV2YWx1YXRvci5oIgorCisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYv
T3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTQyLDEyICs1MSw1OCBAQCBwdWJsaWM6CiAKICAgICBTdHJpbmcgdHlwZSgp
IGNvbnN0OwogCi0gICAgYm9vbCBtYXRjaE1lZGl1bShjb25zdCBTdHJpbmcmKSBjb25zdDsKKyAg
ICBib29sIG1hdGNoUXVlcnkoY29uc3QgU3RyaW5nJikgY29uc3Q7CisKKyAgICBpbnQgYWRkUXVl
cnlMaXN0ZW5lcihjb25zdCBTdHJpbmcmIG1lZGlhUXVlcnksIFBhc3NSZWZQdHI8UXVlcnlDYWxs
YmFjaz4gY2FsbGJhY2spOworICAgIHZvaWQgcmVtb3ZlUXVlcnlMaXN0ZW5lcihpbnQgaWQpOwor
CisgICAgdm9pZCBzdHlsZUNoYW5nZWQoKTsKKworcHJpdmF0ZToKKworICAgIGNsYXNzIFF1ZXJ5
IDogcHVibGljIFJlZkNvdW50ZWQ8UXVlcnk+CisgICAgeworICAgIHB1YmxpYzoKKyAgICAgICAg
UXVlcnkoUGFzc1JlZlB0cjxNZWRpYUxpc3Q+IG1lZGlhLCBQYXNzT3duUHRyPE1lZGlhUXVlcnlF
dmFsdWF0b3I+IGV2YWx1YXRvciwgaW50JiByb3VuZCwgY29uc3QgU3RyaW5nJiBrZXkpOworICAg
ICAgICB+UXVlcnkoKTsKKyAgICAgICAgdm9pZCBldmFsdWF0ZShNZWRpYVF1ZXJ5RXZhbHVhdG9y
Kik7CisgICAgICAgIGJvb2wgdmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnRWYWx1ZTsg
fQorICAgICAgICBib29sIGNoYW5nZWQoKSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnRSb3VuZCA9
PSBtX2NoYW5nZVJvdW5kOyB9CisgICAgICAgIFN0cmluZyBrZXkoKSBjb25zdCB7IHJldHVybiBt
X2tleTsgfQorCisgICAgcHJpdmF0ZToKKyAgICAgICAgUmVmUHRyPE1lZGlhTGlzdD4gbV9tZWRp
YTsKKyAgICAgICAgYm9vbCBtX2N1cnJlbnRWYWx1ZTsKKyAgICAgICAgaW50JiBtX2N1cnJlbnRS
b3VuZDsKKyAgICAgICAgaW50IG1fY2hhbmdlUm91bmQ7CisgICAgICAgIFN0cmluZyBtX2tleTsK
KyAgICB9OworCisgICAgY2xhc3MgTGlzdGVuZXIgeworICAgIHB1YmxpYzoKKyAgICAgICAgTGlz
dGVuZXIoUGFzc1JlZlB0cjxRdWVyeT4gcXVlcnksIFBhc3NSZWZQdHI8UXVlcnlDYWxsYmFjaz4g
Y2FsbGJhY2spOworICAgICAgICB2b2lkIGhhbmRsZUV2ZW50KFNjcmlwdFN0YXRlKik7CisgICAg
ICAgIGNvbnN0IFF1ZXJ5KiBxdWVyeSgpIHsgcmV0dXJuIG1fcXVlcnkuZ2V0KCk7IH0KKyAgICAg
ICAgY29uc3QgUXVlcnlDYWxsYmFjayogY2FsbGJhY2soKSBjb25zdCB7IHJldHVybiBtX2NhbGxi
YWNrLmdldCgpOyB9CisgICAgICAgIGludCBpZCgpIGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0KKwor
ICAgIHByaXZhdGU6CisgICAgICAgIFJlZlB0cjxRdWVyeT4gbV9xdWVyeTsKKyAgICAgICAgUmVm
UHRyPFF1ZXJ5Q2FsbGJhY2s+IG1fY2FsbGJhY2s7CisgICAgICAgIGludCBtX2lkOworICAgIH07
CiAKIHByaXZhdGU6CiAgICAgU3R5bGVNZWRpYShGcmFtZSopOwogCiAgICAgRnJhbWUqIG1fZnJh
bWU7CisgICAgSGFzaE1hcDxTdHJpbmcsIFF1ZXJ5Kj4gbV9xdWVyaWVzOworICAgIFZlY3RvcjxM
aXN0ZW5lcio+IG1fbGlzdGVuZXJzOworICAgIGludCBtX2N1cnJlbnRSb3VuZDsKKworICAgIE1l
ZGlhUXVlcnlFdmFsdWF0b3IqIHByZXBhcmVFdmFsdWF0b3IoKSBjb25zdDsKKworICAgIHN0YXRp
YyBib29sIGxpc3RlbmVyQ29tcGFyZShjb25zdCBMaXN0ZW5lciogbGlzdGVuZXIsIGludCBpZCk7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvU3R5bGVNZWRp
YS5pZGwgYi9XZWJDb3JlL2Nzcy9TdHlsZU1lZGlhLmlkbAppbmRleCA3YmUzNWNjLi5jMGE4NTlm
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9TdHlsZU1lZGlhLmlkbAorKysgYi9XZWJDb3JlL2Nz
cy9TdHlsZU1lZGlhLmlkbApAQCAtMjcsNiArMjcsOSBAQAogbW9kdWxlIHZpZXcgewogICAgIGlu
dGVyZmFjZSBTdHlsZU1lZGlhIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmlu
ZyB0eXBlOwotICAgICAgICBib29sZWFuIG1hdGNoTWVkaXVtKGluIERPTVN0cmluZyBtZWRpYXF1
ZXJ5KTsKKyAgICAgICAgYm9vbGVhbiBtYXRjaFF1ZXJ5KGluIERPTVN0cmluZyBtZWRpYXF1ZXJ5
KTsKKworICAgICAgICBsb25nIGFkZFF1ZXJ5TGlzdGVuZXIoaW4gRE9NU3RyaW5nIG1lZGlhUXVl
cnksIGluIFF1ZXJ5Q2FsbGJhY2sgY2FsbGJhY2spOworICAgICAgICB2b2lkIHJlbW92ZVF1ZXJ5
TGlzdGVuZXIoaW4gbG9uZyBpZCk7CiAgICAgfTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBkMWQ3MGI2Li40
YTc2MmE3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xMTgsNiArMTE4LDcgQEAKICNpbmNsdWRlICJTZWxlY3Rp
b25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTdHJpbmdC
dWZmZXIuaCIKKyNpbmNsdWRlICJTdHlsZU1lZGlhLmgiCiAjaW5jbHVkZSAiU3R5bGVTaGVldExp
c3QuaCIKICNpbmNsdWRlICJUZXh0RXZlbnQuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIK
QEAgLTI2MDcsNiArMjYwOCwxMCBAQCB2b2lkIERvY3VtZW50Ojp1cGRhdGVTdHlsZVNlbGVjdG9y
KCkKICAgICAgICAgaWYgKHZpZXcoKSkKICAgICAgICAgICAgIHZpZXcoKS0+c2NoZWR1bGVSZWxh
eW91dCgpOwogICAgIH0KKworICAgIGlmIChkb21XaW5kb3coKSAmJiBkb21XaW5kb3coKS0+c3R5
bGVNZWRpYSgpKQorICAgICAgICBkb21XaW5kb3coKS0+c3R5bGVNZWRpYSgpLT5zdHlsZUNoYW5n
ZWQoKTsKKwogfQogCiB2b2lkIERvY3VtZW50OjphZGRTdHlsZVNoZWV0Q2FuZGlkYXRlTm9kZShO
b2RlKiBub2RlLCBib29sIGNyZWF0ZWRCeVBhcnNlcikKLS0gCjEuNi4zLjMKCg==
</data>
<flag name="commit-queue"
          id="42084"
          type_id="3"
          status="-"
          setter="luiz"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57491</attachid>
            <date>2010-05-31 12:37:04 -0700</date>
            <delta_ts>2010-06-01 11:38:22 -0700</delta_ts>
            <desc>test - trying to find help with bindings.</desc>
            <filename>0001-Medium-listeners.patch</filename>
            <type>text/plain</type>
            <size>39410</size>
            <attacher name="Luiz Agostini">luiz</attacher>
            
              <data encoding="base64">RnJvbSAyZTg4MjhhODk2ZjE0Yjc5NjdmZmI1ODZlNjkzNDA3MDBhMTIwMjEzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWl6IEFnb3N0aW5pIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IE1vbiwgMzEgTWF5IDIwMTAgMTY6MzQ6MjAgLTAzMDAKU3ViamVjdDogW1BB
VENIXSBNZWRpdW0gbGlzdGVuZXJzCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MzcyMDUKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKV2ViQ29yZToKCkFzIHRo
ZSBzcGVjaWZpY2F0aW9uIHN0aWxsIG9uZ29pbmcgdGhpcyBwYXRjaCBpcyBqdXN0IGEgdGVzdC4g
TWFpbiBvYmplY3RpdmUgaXMgdG8Kc2VlIGhvdyBpdCBnb2VzIGluIGRpZmZlcmVudCBwbGF0Zm9y
bXMgYW5kIHRvIHRyeSB0byBmaW5kIGhlbHAgd2l0aCB0aGUgYmluZGluZ3MuCgpKUyBiaW5kaW5n
IHNlZW1zIHRvIGJlIG9rIGJ1dCBJIG5lZWQgZmVlZGJhY2suCgpUZXN0OiBmYXN0L21lZGlhL3F1
ZXJ5LWNhbGxiYWNrcy5odG1sCgoqIFdlYkNvcmUucHJpOgoqIFdlYkNvcmUucHJvOgoqIGJpbmRp
bmdzL2pzL0pTUXVlcnlDYWxsYmFjay5jcHA6IEFkZGVkLgooV2ViQ29yZTo6SlNRdWVyeUNhbGxi
YWNrOjpvcGVyYXRvcj09KToKKFdlYkNvcmU6OkpTUXVlcnlDYWxsYmFjazo6aGFuZGxlRXZlbnQp
OgoqIGJpbmRpbmdzL2pzL0pTUXVlcnlDYWxsYmFjay5oOiBBZGRlZC4KKFdlYkNvcmU6OkpTUXVl
cnlDYWxsYmFjazo6Y3JlYXRlKToKKFdlYkNvcmU6OkpTUXVlcnlDYWxsYmFjazo6SlNRdWVyeUNh
bGxiYWNrKToKKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKiBjc3MvUXVl
cnlDYWxsYmFjay5oOiBBZGRlZC4KKFdlYkNvcmU6OlF1ZXJ5Q2FsbGJhY2s6On5RdWVyeUNhbGxi
YWNrKToKKiBjc3MvUXVlcnlDYWxsYmFjay5pZGw6IEFkZGVkLgoqIGNzcy9TdHlsZU1lZGlhLmNw
cDoKKFdlYkNvcmU6OlN0eWxlTWVkaWE6OlF1ZXJ5OjpRdWVyeSk6CihXZWJDb3JlOjpTdHlsZU1l
ZGlhOjpRdWVyeTo6flF1ZXJ5KToKKFdlYkNvcmU6OlN0eWxlTWVkaWE6OlF1ZXJ5OjpldmFsdWF0
ZSk6CihXZWJDb3JlOjpTdHlsZU1lZGlhOjpMaXN0ZW5lcjo6TGlzdGVuZXIpOgooV2ViQ29yZTo6
U3R5bGVNZWRpYTo6TGlzdGVuZXI6OmhhbmRsZUV2ZW50KToKKFdlYkNvcmU6OlN0eWxlTWVkaWE6
OlN0eWxlTWVkaWEpOgooV2ViQ29yZTo6cGFyc2UpOgooV2ViQ29yZTo6c3RyaW5nQ29tcGFyZSk6
CihXZWJDb3JlOjp3cml0ZU1lZGlhTGlzdEtleSk6CihXZWJDb3JlOjpTdHlsZU1lZGlhOjphZGRR
dWVyeUxpc3RlbmVyKToKKFdlYkNvcmU6OlN0eWxlTWVkaWE6Omxpc3RlbmVyQ29tcGFyZSk6CihX
ZWJDb3JlOjpTdHlsZU1lZGlhOjpyZW1vdmVRdWVyeUxpc3RlbmVyKToKKFdlYkNvcmU6OlN0eWxl
TWVkaWE6OnByZXBhcmVFdmFsdWF0b3IpOgooV2ViQ29yZTo6U3R5bGVNZWRpYTo6bWF0Y2hRdWVy
eSk6CihXZWJDb3JlOjpTdHlsZU1lZGlhOjpzdHlsZUNoYW5nZWQpOgoqIGNzcy9TdHlsZU1lZGlh
Lmg6CihXZWJDb3JlOjpTdHlsZU1lZGlhOjpRdWVyeTo6dmFsdWUpOgooV2ViQ29yZTo6U3R5bGVN
ZWRpYTo6UXVlcnk6OmNoYW5nZWQpOgooV2ViQ29yZTo6U3R5bGVNZWRpYTo6UXVlcnk6OmtleSk6
CihXZWJDb3JlOjpTdHlsZU1lZGlhOjpMaXN0ZW5lcjo6cXVlcnkpOgooV2ViQ29yZTo6U3R5bGVN
ZWRpYTo6TGlzdGVuZXI6OmNhbGxiYWNrKToKKFdlYkNvcmU6OlN0eWxlTWVkaWE6Okxpc3RlbmVy
OjppZCk6CiogY3NzL1N0eWxlTWVkaWEuaWRsOgoqIGRvbS9Eb2N1bWVudC5jcHA6CihXZWJDb3Jl
OjpEb2N1bWVudDo6dXBkYXRlU3R5bGVTZWxlY3Rvcik6CgpMYXlvdXRUZXN0czoKCiogZmFzdC9t
ZWRpYS9xdWVyeS1jYWxsYmFja3MtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKiBmYXN0L21lZGlhL3F1
ZXJ5LWNhbGxiYWNrcy5odG1sOiBBZGRlZC4KLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTAgKwogLi4uL2Zhc3QvbWVkaWEvcXVlcnkt
Y2FsbGJhY2tzLWV4cGVjdGVkLnR4dCAgICAgICAgfCAgICAxICsKIExheW91dFRlc3RzL2Zhc3Qv
bWVkaWEvcXVlcnktY2FsbGJhY2tzLmh0bWwgICAgICAgIHwgIDEwNCArKysrKysrKysrCiBXZWJD
b3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNTMgKysr
KysrCiBXZWJDb3JlL1dlYkNvcmUuZ3lwaSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAgIDMgKwogV2ViQ29yZS9XZWJDb3JlLnByaSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgICAxICsKIFdlYkNvcmUvV2ViQ29yZS5wcm8gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAgMyArCiBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiAgICAgICAgICB8ICAgMTQgKysKIFdlYkNvcmUvYmluZGluZ3MvanMvSlNRdWVyeUNhbGxiYWNr
LmNwcCAgICAgICAgICAgIHwgICA2OCArKysrKysrCiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTUXVl
cnlDYWxsYmFjay5oICAgICAgICAgICAgICB8ICAgNTggKysrKysrCiBXZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtICAgICAgICB8ICAgIDYgKwogV2ViQ29yZS9iaW5k
aW5ncy92OC9WOFF1ZXJ5Q2FsbGJhY2suY3BwICAgICAgICAgICAgfCAgIDQwICsrKysKIFdlYkNv
cmUvYmluZGluZ3MvdjgvVjhRdWVyeUNhbGxiYWNrLmggICAgICAgICAgICAgIHwgICAyMyArKysK
IFdlYkNvcmUvY3NzL1F1ZXJ5Q2FsbGJhY2suaCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAz
OSArKysrCiBXZWJDb3JlL2Nzcy9RdWVyeUNhbGxiYWNrLmlkbCAgICAgICAgICAgICAgICAgICAg
ICB8ICAgMzAgKysrCiBXZWJDb3JlL2Nzcy9TdHlsZU1lZGlhLmNwcCAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAxOTggKysrKysrKysrKysrKysrKysrKy0KIFdlYkNvcmUvY3NzL1N0eWxlTWVk
aWEuaCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA1NiArKysrKystCiBXZWJDb3JlL2Nz
cy9TdHlsZU1lZGlhLmlkbCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDUgKy0KIFdlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNSArCiAx
OSBmaWxlcyBjaGFuZ2VkLCA3MDcgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCiBjcmVh
dGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9xdWVyeS1jYWxsYmFja3MtZXhw
ZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9xdWVy
eS1jYWxsYmFja3MuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvYmluZGluZ3MvanMv
SlNRdWVyeUNhbGxiYWNrLmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvYmluZGluZ3Mv
anMvSlNRdWVyeUNhbGxiYWNrLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4UXVlcnlDYWxsYmFjay5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL2JpbmRp
bmdzL3Y4L1Y4UXVlcnlDYWxsYmFjay5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9jc3Mv
UXVlcnlDYWxsYmFjay5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9jc3MvUXVlcnlDYWxs
YmFjay5pZGwKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggYjY2ZTE5Ny4uMTI3NmJkZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBA
CisyMDEwLTA1LTMxICBMdWl6IEFnb3N0aW5pICA8bHVpei5hZ29zdGluaUBvcGVuYm9zc2Eub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1lZGl1
bSBsaXN0ZW5lcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTM3MjA1CisKKyAgICAgICAgKiBmYXN0L21lZGlhL3F1ZXJ5LWNhbGxiYWNrcy1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWEvcXVlcnktY2FsbGJhY2tzLmh0bWw6
IEFkZGVkLgorCiAyMDEwLTA1LTI4ICBTaHUgQ2hhbmcgIDxjaGFuZy5zaHVAbm9raWEuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlh
L3F1ZXJ5LWNhbGxiYWNrcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL3F1
ZXJ5LWNhbGxiYWNrcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMjkzZmNiYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEv
cXVlcnktY2FsbGJhY2tzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitQQVNTLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9xdWVyeS1jYWxsYmFja3MuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvbWVkaWEvcXVlcnktY2FsbGJhY2tzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uZTEyOGNjMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvbWVkaWEvcXVlcnktY2FsbGJhY2tzLmh0bWwKQEAgLTAsMCArMSwxMDQgQEAKKzxodG1s
PgorPHNjcmlwdD4KKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgaWYgKCF3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCisgICAgICAgIHJldHVybjsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7CisKKyAgICB2YXIgb3V0cHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInJlc3VsdCIpOworICAgIHZhciBsb2cgPSBmdW5jdGlvbiAobXNnKQorICAgIHsKKyAgICAg
ICAgb3V0cHV0LmlubmVySFRNTCArPSAiRkFJTCAtICIgKyBtc2cgKyAiPGJyPiI7CisgICAgfTsK
KworICAgIGlmICghd2luZG93LnN0eWxlTWVkaWEpIHsKKyAgICAgICAgbG9nKCJ3aW5kb3cuc3R5
bGVNZWRpYSBpcyBub3Qgc3VwcG9ydGVkLiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgdmFyIGFjdHVhbENhbGxiYWNrcyA9IFtdOworICAgIHZhciBleHBlY3RlZENhbGxiYWNrcyA9
IFtdOworCisgICAgdmFyIHJlc3VsdCA9IHRydWU7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
c2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoIm1pbmltaXplZCIpOworCisgICAgdmFyIHF1ZXJpZXMg
PSBbCisgICAgICAgIFsiKC13ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQpIiwgMF0sCisgICAg
ICAgIFsiKC13ZWJraXQtdmlldy1tb2RlOiBtYXhpbWl6ZWQpIiwgMF0sCisgICAgICAgIFsiKC13
ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQpLCAoLXdlYmtpdC12aWV3LW1vZGU6IG1heGltaXpl
ZCkiLCAwXSwKKyAgICAgICAgWyIoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCksICgtd2Vi
a2l0LXZpZXctbW9kZTogd2luZG93ZWQpIiwgMF0KKyAgICBdOworCisgICAgdmFyIGNhbGxiYWNr
SGFuZGxlciA9IGZ1bmN0aW9uIChpZHgsIGlkLCB2YWx1ZSkgeworICAgICAgICBpZiAocXVlcmll
c1tpZHhdWzFdICE9IGlkKSB7CisgICAgICAgICAgICBsb2coImlkIHdhcyBleHBlY3RlZCB0byBi
ZSAiICsgcXVlcmllc1tpZHhdWzFdICsgIiBidXQgaW5zdGVhZCB3YXMgIiArIGlkKTsKKyAgICAg
ICAgICAgIHJlc3VsdCA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIGFjdHVhbENhbGxiYWNr
cy5wdXNoKFtpZHgsIHZhbHVlXSk7CisgICAgfTsKKworICAgIHZhciBjcmVhdGVDYWxsYmFjayA9
IGZ1bmN0aW9uIChpZHgpIHsKKyAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChpZCwgdmFsdWUpIHsg
Y2FsbGJhY2tIYW5kbGVyKGlkeCwgaWQsIHZhbHVlKTsgfTsKKyAgICB9OworCisgICAgdmFyIGk7
CisgICAgZm9yIChpID0gMDsgaTwgcXVlcmllcy5sZW5ndGg7ICsraSkgeworICAgICAgICB2YXIg
Y2FsbGJhY2sgPSBjcmVhdGVDYWxsYmFjayhpKTsKKyAgICAgICAgcXVlcmllc1tpXVsxXSA9IHdp
bmRvdy5zdHlsZU1lZGlhLmFkZFF1ZXJ5TGlzdGVuZXIocXVlcmllc1tpXVswXSwgY2FsbGJhY2sp
OworCisgICAgICAgIGlmIChxdWVyaWVzW2ldWzFdICE9IHdpbmRvdy5zdHlsZU1lZGlhLmFkZFF1
ZXJ5TGlzdGVuZXIocXVlcmllc1tpXVswXSwgY2FsbGJhY2spKSB7CisgICAgICAgICAgICBsb2co
ImFkZGluZyB0aGUgc2FtZSBsaXN0ZW5lciB0d2ljZSBzaG91bGQgcmV0dXJuIHRoZSBzYW1lIGlk
IGJ1dCBpdCBkaWQgbm90LiIpOworICAgICAgICAgICAgcmVzdWx0ID0gZmFsc2U7CisgICAgICAg
IH0KKyAgICB9CisKKyAgICB2YXIgc2V0Vmlld01vZGUgPSBmdW5jdGlvbihtb2RlKSB7CisgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKG1vZGUpOwor
ICAgICAgICB2YXIgaSA9IDE7CisgICAgICAgIGZvciAoOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsg
KytpKQorICAgICAgICAgICAgZXhwZWN0ZWRDYWxsYmFja3MucHVzaChhcmd1bWVudHNbaV0pOwor
ICAgIH07CisKKyAgICBzZXRWaWV3TW9kZSgibWluaW1pemVkIik7CisgICAgc2V0Vmlld01vZGUo
IndpbmRvd2VkIiwgWzAsIGZhbHNlXSwgWzIsIGZhbHNlXSk7CisgICAgc2V0Vmlld01vZGUoIm1h
eGltaXplZCIsIFsxLCB0cnVlXSwgWzIsIHRydWVdLCBbMywgZmFsc2VdKTsKKyAgICBzZXRWaWV3
TW9kZSgiZmxvYXRpbmciLCBbMSwgZmFsc2VdLCBbMiwgZmFsc2VdKTsKKworICAgIHdpbmRvdy5z
dHlsZU1lZGlhLnJlbW92ZVF1ZXJ5TGlzdGVuZXIocXVlcmllc1syXVsxXSk7CisgICAgc2V0Vmll
d01vZGUoIm1pbmltaXplZCIsIFswLCB0cnVlXSwgWzMsIHRydWVdKTsKKworICAgIHF1ZXJpZXNb
Ml1bMV0gPSB3aW5kb3cuc3R5bGVNZWRpYS5hZGRRdWVyeUxpc3RlbmVyKHF1ZXJpZXNbMl1bMF0s
IGNyZWF0ZUNhbGxiYWNrKDIpKTsKKyAgICBzZXRWaWV3TW9kZSgid2luZG93ZWQiLCBbMCwgZmFs
c2VdLCBbMiwgZmFsc2VdKTsKKyAgICBzZXRWaWV3TW9kZSgibWF4aW1pemVkIiwgWzEsIHRydWVd
LCBbMywgZmFsc2VdLCBbMiwgdHJ1ZV0pOworCisgICAgaWYgKGFjdHVhbENhbGxiYWNrcy5sZW5n
dGggIT09IGV4cGVjdGVkQ2FsbGJhY2tzLmxlbmd0aCkgeworICAgICAgICBsb2coZXhwZWN0ZWRD
YWxsYmFja3MubGVuZ3RoICsgIiBjYWxsYmFja3Mgd2VyZSBleHBlY3RlZCBidXQgIiArIGFjdHVh
bENhbGxiYWNrcy5sZW5ndGggKyAiIGhhcHBlbmVkLiIpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgdmFyIGNoZWNrSXRlbSA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIHdyaXRl
ID0gZnVuY3Rpb24gKGl0ZW0pIHsgcmV0dXJuICdbJyArIGl0ZW1bMF0gKyAnLCcgKyBpdGVtWzFd
ICsgJ10nOyB9CisgICAgICAgIHJldHVybiBmdW5jdGlvbiAobnVtLCBhY3R1YWwsIGV4cGVjdGVk
KSB7CisgICAgICAgICAgICBpZiAoYWN0dWFsWzBdID09PSBleHBlY3RlZFswXSAmJiBhY3R1YWxb
MV0gPT09IGV4cGVjdGVkWzFdKQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAg
ICAgICAgbG9nKCdjYWxsYmFjayAnICsgbnVtICsgJyB3YXMgZXhwZWN0ZWQgdG8gYmUgJyArIHdy
aXRlKGV4cGVjdGVkKSArICcgYnV0IGluc3RlYWQgd2FzICcgKyB3cml0ZShhY3R1YWwpICsgJy4n
KTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfTsKKyAgICB9KCk7CisKKyAg
ICB2YXIgaTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgYWN0dWFsQ2FsbGJhY2tzLmxlbmd0aDsgKytp
KQorICAgICAgICByZXN1bHQgPSBjaGVja0l0ZW0oaSArIDEsIGFjdHVhbENhbGxiYWNrc1tpXSwg
ZXhwZWN0ZWRDYWxsYmFja3NbaV0pICYmIHJlc3VsdDsKKworICAgIGlmIChyZXN1bHQpCisgICAg
ICAgIG91dHB1dC5pbm5lckhUTUwgKz0gIlBBU1MuIgorfQorCis8L3NjcmlwdD4KKworPGJvZHkg
b25sb2FkPSJ0ZXN0KCkiPgorICAgIDxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IGU5NDIzOWQuLjg3NjY4N2YgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTYgQEAKKzIwMTAtMDUtMzEgIEx1aXog
QWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWVkaXVtIGxpc3RlbmVycworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzcyMDUKKworICAgICAg
ICBBcyB0aGUgc3BlY2lmaWNhdGlvbiBzdGlsbCBvbmdvaW5nIHRoaXMgcGF0Y2ggaXMganVzdCBh
IHRlc3QuIE1haW4gb2JqZWN0aXZlIGlzIHRvCisgICAgICAgIHNlZSBob3cgaXQgZ29lcyBpbiBk
aWZmZXJlbnQgcGxhdGZvcm1zIGFuZCB0byB0cnkgdG8gZmluZCBoZWxwIHdpdGggdGhlIGJpbmRp
bmdzLgorCisgICAgICAgIEpTIGJpbmRpbmcgc2VlbXMgdG8gYmUgb2sgYnV0IEkgbmVlZCBmZWVk
YmFjay4KKworICAgICAgICBUZXN0OiBmYXN0L21lZGlhL3F1ZXJ5LWNhbGxiYWNrcy5odG1sCisK
KyAgICAgICAgKiBXZWJDb3JlLnByaToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU1F1ZXJ5Q2FsbGJhY2suY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkpTUXVlcnlDYWxsYmFjazo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpKU1F1
ZXJ5Q2FsbGJhY2s6OmhhbmRsZUV2ZW50KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1F1ZXJ5
Q2FsbGJhY2suaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpKU1F1ZXJ5Q2FsbGJhY2s6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpKU1F1ZXJ5Q2FsbGJhY2s6OkpTUXVlcnlDYWxsYmFj
ayk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAg
ICAgICogY3NzL1F1ZXJ5Q2FsbGJhY2suaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpRdWVy
eUNhbGxiYWNrOjp+UXVlcnlDYWxsYmFjayk6CisgICAgICAgICogY3NzL1F1ZXJ5Q2FsbGJhY2su
aWRsOiBBZGRlZC4KKyAgICAgICAgKiBjc3MvU3R5bGVNZWRpYS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTdHlsZU1lZGlhOjpRdWVyeTo6UXVlcnkpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVN
ZWRpYTo6UXVlcnk6On5RdWVyeSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZU1lZGlhOjpRdWVy
eTo6ZXZhbHVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVNZWRpYTo6TGlzdGVuZXI6Okxp
c3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlTWVkaWE6Okxpc3RlbmVyOjpoYW5kbGVF
dmVudCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZU1lZGlhOjpTdHlsZU1lZGlhKToKKyAgICAg
ICAgKFdlYkNvcmU6OnBhcnNlKToKKyAgICAgICAgKFdlYkNvcmU6OnN0cmluZ0NvbXBhcmUpOgor
ICAgICAgICAoV2ViQ29yZTo6d3JpdGVNZWRpYUxpc3RLZXkpOgorICAgICAgICAoV2ViQ29yZTo6
U3R5bGVNZWRpYTo6YWRkUXVlcnlMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZU1l
ZGlhOjpsaXN0ZW5lckNvbXBhcmUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVNZWRpYTo6cmVt
b3ZlUXVlcnlMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZU1lZGlhOjpwcmVwYXJl
RXZhbHVhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlTWVkaWE6Om1hdGNoUXVlcnkpOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGVNZWRpYTo6c3R5bGVDaGFuZ2VkKToKKyAgICAgICAgKiBj
c3MvU3R5bGVNZWRpYS5oOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVNZWRpYTo6UXVlcnk6OnZh
bHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlTWVkaWE6OlF1ZXJ5OjpjaGFuZ2VkKToKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlTWVkaWE6OlF1ZXJ5OjprZXkpOgorICAgICAgICAoV2ViQ29y
ZTo6U3R5bGVNZWRpYTo6TGlzdGVuZXI6OnF1ZXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxl
TWVkaWE6Okxpc3RlbmVyOjpjYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZU1lZGlh
OjpMaXN0ZW5lcjo6aWQpOgorICAgICAgICAqIGNzcy9TdHlsZU1lZGlhLmlkbDoKKyAgICAgICAg
KiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZVN0
eWxlU2VsZWN0b3IpOgorCiAyMDEwLTA1LTI3ICBKZXJlbXkgT3Jsb3cgIDxqb3Jsb3dAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFN0ZXZlIEJsb2NrLgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA1YjRjNTU5
Li41MWVjOWYyIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQpAQCAtMTksNiArMTksNyBAQAogICAgICAgICAgICAgJ2Nzcy9DU1NWYXJp
YWJsZXNSdWxlLmlkbCcsCiAgICAgICAgICAgICAnY3NzL0NvdW50ZXIuaWRsJywKICAgICAgICAg
ICAgICdjc3MvTWVkaWFMaXN0LmlkbCcsCisgICAgICAgICAgICAnY3NzL1F1ZXJ5Q2FsbGJhY2su
aWRsJywKICAgICAgICAgICAgICdjc3MvUmVjdC5pZGwnLAogICAgICAgICAgICAgJ2Nzcy9SR0JD
b2xvci5pZGwnLAogICAgICAgICAgICAgJ2Nzcy9TdHlsZU1lZGlhLmlkbCcsCkBAIC05MDUsNiAr
OTA2LDggQEAKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9WOE5vZGVGaWx0ZXJDb25kaXRpb24u
aCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvVjhQcm94eS5jcHAnLAogICAgICAgICAgICAg
J2JpbmRpbmdzL3Y4L1Y4UHJveHkuaCcsCisgICAgICAgICAgICAnYmluZGluZ3MvdjgvVjhRdWVy
eUNhbGxiYWNrLmNwcCcsCisgICAgICAgICAgICAnYmluZGluZ3MvdjgvVjhRdWVyeUNhbGxiYWNr
LmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L1Y4U1ZHUE9EVHlwZVdyYXBwZXIuaCcsCiAg
ICAgICAgICAgICAnYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuY3BwJywKICAgICAgICAgICAgICdi
aW5kaW5ncy92OC9WOFV0aWxpdGllcy5oJywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5w
cmkgYi9XZWJDb3JlL1dlYkNvcmUucHJpCmluZGV4IDliODczZmUuLjg2ZjQ3ODMgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvV2ViQ29yZS5wcmkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnByaQpAQCAtMjQx
LDYgKzI0MSw3IEBAIElETF9CSU5ESU5HUyArPSBcCiAgICAgY3NzL0NTU1ZhcmlhYmxlc0RlY2xh
cmF0aW9uLmlkbCBcCiAgICAgY3NzL0NTU1ZhcmlhYmxlc1J1bGUuaWRsIFwKICAgICBjc3MvTWVk
aWFMaXN0LmlkbCBcCisjICAgIGNzcy9RdWVyeUNhbGxiYWNrLmlkbCBcCiAgICAgY3NzL1JlY3Qu
aWRsIFwKICAgICBjc3MvUkdCQ29sb3IuaWRsIFwKICAgICBjc3MvU3R5bGVNZWRpYS5pZGwgXApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5k
ZXggZDNlYjExNS4uZDdiMzAyZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBybworKysg
Yi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0zNTUsNiArMzU1LDcgQEAgU09VUkNFUyArPSBcCiAg
ICAgYmluZGluZ3MvanMvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmNwcCBcCiAgICAgYmluZGluZ3Mv
anMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcCBcCiAgICAgYmluZGluZ3MvanMvSlNQb3BT
dGF0ZUV2ZW50Q3VzdG9tLmNwcCBcCisgICAgYmluZGluZ3MvanMvSlNRdWVyeUNhbGxiYWNrLmNw
cCBcCiAgICAgYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcCBcCiAg
ICAgYmluZGluZ3MvanMvU2NyaXB0QXJyYXkuY3BwIFwKICAgICBiaW5kaW5ncy9qcy9TY3JpcHRD
YWNoZWRGcmFtZURhdGEuY3BwIFwKQEAgLTEwNjcsNiArMTA2OCw3IEBAIEhFQURFUlMgKz0gXAog
ICAgIGJpbmRpbmdzL2pzL0pTTm9kZUZpbHRlckNvbmRpdGlvbi5oIFwKICAgICBiaW5kaW5ncy9q
cy9KU09wdGlvbkNvbnN0cnVjdG9yLmggXAogICAgIGJpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVu
dEZ1bmN0aW9ucy5oIFwKKyAgICBiaW5kaW5ncy9qcy9KU1F1ZXJ5Q2FsbGJhY2suaCBcCiAgICAg
YmluZGluZ3MvanMvSlNTaGFyZWRXb3JrZXJDb25zdHJ1Y3Rvci5oIFwKICAgICBiaW5kaW5ncy9q
cy9KU1N0b3JhZ2VDdXN0b20uaCBcCiAgICAgYmluZGluZ3MvanMvSlNXZWJLaXRDU1NNYXRyaXhD
b25zdHJ1Y3Rvci5oIFwKQEAgLTExNjYsNiArMTE2OCw3IEBAIEhFQURFUlMgKz0gXAogICAgIGNz
cy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmggXAogICAgIGNzcy9NZWRpYVF1ZXJ5RXhwLmggXAogICAg
IGNzcy9NZWRpYVF1ZXJ5LmggXAorICAgIGNzcy9RdWVyeUNhbGxiYWNrLmggXAogICAgIGNzcy9S
R0JDb2xvci5oIFwKICAgICBjc3MvU2hhZG93VmFsdWUuaCBcCiAgICAgY3NzL1N0eWxlQmFzZS5o
IFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMTYxOTRl
Ny4uZWIxNzQxZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTQ4NzAsNiArNDg3MCw5IEBACiAJCUQyM0NBNTVEMEFCMEVBQUUwMDUxMDhBNSAvKiBKU1Jh
bmdlRXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBEMjNDQTU1QzBBQjBFQUFFMDA1MTA4QTUgLyogSlNSYW5nZUV4Y2VwdGlvbi5oICovOyB9
OwogCQlEMjNDQTU1RjBBQjBFQUI2MDA1MTA4QTUgLyogSlNSYW5nZUV4Y2VwdGlvbi5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMjNDQTU1RTBBQjBF
QUI2MDA1MTA4QTUgLyogSlNSYW5nZUV4Y2VwdGlvbi5jcHAgKi87IH07CiAJCUQyM0NBNTZDMEFC
MEVCOEQwMDUxMDhBNSAvKiBSYW5nZUV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDIzQ0E1NkIwQUIwRUI4RDAwNTEwOEE1IC8qIFJhbmdl
RXhjZXB0aW9uLmggKi87IH07CisJCUQzMjQyMUIxMTFCNDMzMUYwMDcyQzlGMSAvKiBKU1F1ZXJ5
Q2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRDMyNDIxQUYxMUI0MzMxRjAwNzJDOUYxIC8qIEpTUXVlcnlDYWxsYmFjay5jcHAgKi87IH07
CisJCUQzMjQyMUIyMTFCNDMzMUYwMDcyQzlGMSAvKiBKU1F1ZXJ5Q2FsbGJhY2suaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzMjQyMUIwMTFCNDMzMUYw
MDcyQzlGMSAvKiBKU1F1ZXJ5Q2FsbGJhY2suaCAqLzsgfTsKKwkJRDMyNDIxQjUxMUI0MzM4RTAw
NzJDOUYxIC8qIFF1ZXJ5Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEQzMjQyMUIzMTFCNDMzOEUwMDcyQzlGMSAvKiBRdWVyeUNhbGxiYWNr
LmggKi87IH07CiAJCUQ4QjYxNTJGMTAzMjQ5NTEwMEM4NTU0QSAvKiBDb29raWUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQ4QjYxNTJFMTAzMjQ5NTEw
MEM4NTU0QSAvKiBDb29raWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlEQjIzQzJDQjBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENv
bW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
REIyM0MyQzkwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmNwcCAqLzsg
fTsKIAkJREIyM0MyQ0MwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQjIzQzJDQTBB
NTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuaCAqLzsgfTsKQEAgLTEwNDA5
LDYgKzEwNDEyLDEwIEBACiAJCUQyM0NBNTVDMEFCMEVBQUUwMDUxMDhBNSAvKiBKU1JhbmdlRXhj
ZXB0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1JhbmdlRXhjZXB0
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQyM0NBNTVFMEFCMEVBQjYwMDUx
MDhBNSAvKiBKU1JhbmdlRXhjZXB0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU1JhbmdlRXhjZXB0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRDIzQ0E1NkIwQUIwRUI4RDAwNTEwOEE1IC8qIFJhbmdlRXhjZXB0aW9uLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSYW5nZUV4Y2VwdGlvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlEMzI0MjFBRjExQjQzMzFGMDA3MkM5RjEgLyogSlNRdWVyeUNh
bGxiYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUXVlcnlD
YWxsYmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQzMjQyMUIwMTFCNDMz
MUYwMDcyQzlGMSAvKiBKU1F1ZXJ5Q2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSlNRdWVyeUNhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUQzMjQyMUIzMTFCNDMzOEUwMDcyQzlGMSAvKiBRdWVyeUNhbGxiYWNrLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFF1ZXJ5Q2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRDMyNDIxQjQxMUI0MzM4RTAwNzJDOUYxIC8qIFF1ZXJ5Q2FsbGJhY2suaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFF1ZXJ5Q2FsbGJhY2suaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlEOEI2MTUyRTEwMzI0OTUxMDBDODU1NEEgLyogQ29va2llLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvb2tpZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlEQjIzQzJDOTBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENv
bW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluZGVudE91
dGRlbnRDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREIyM0MyQ0Ew
QTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBJbmRlbnRPdXRkZW50Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTU3NzUsNiArMTU3ODIsOCBAQAogCQkJCTkzNUY0NTQxMEY3QzNC
NUYwMEQ3QzFGQiAvKiBKU0xhenlFdmVudExpc3RlbmVyLmggKi8sCiAJCQkJQkNCNzczNUUwQzE3
ODUzRDAwMTMyQkE0IC8qIEpTTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAgKi8sCiAJCQkJQkNCNzcz
NUYwQzE3ODUzRDAwMTMyQkE0IC8qIEpTTm9kZUZpbHRlckNvbmRpdGlvbi5oICovLAorCQkJCUQz
MjQyMUFGMTFCNDMzMUYwMDcyQzlGMSAvKiBKU1F1ZXJ5Q2FsbGJhY2suY3BwICovLAorCQkJCUQz
MjQyMUIwMTFCNDMzMUYwMDcyQzlGMSAvKiBKU1F1ZXJ5Q2FsbGJhY2suaCAqLywKIAkJCSk7CiAJ
CQluYW1lID0gIkNhbGxiYWNrIE9iamVjdHMiOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
QEAgLTE2MDgxLDYgKzE2MDkwLDggQEAKIAkJRjUyM0QxODQwMkRFNDJFODAxODYzNUNBIC8qIGNz
cyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJRDMyNDIx
QjMxMUI0MzM4RTAwNzJDOUYxIC8qIFF1ZXJ5Q2FsbGJhY2suaCAqLywKKwkJCQlEMzI0MjFCNDEx
QjQzMzhFMDA3MkM5RjEgLyogUXVlcnlDYWxsYmFjay5pZGwgKi8sCiAJCQkJOTNDQTRDOUMwOURG
OTNGQTAwREY4Njc3IC8qIG1ha2V0b2tlbml6ZXIgKi8sCiAJCQkJQTgwRTZDREEwQTE5ODlDQTAw
N0ZCOEM1IC8qIENvdW50ZXIuaCAqLywKIAkJCQk5MzA3MDVDNzA5RTBDOTVGMDBCMTdGRTQgLyog
Q291bnRlci5pZGwgKi8sCkBAIC0xOTQwOCw2ICsxOTQxOSw4IEBACiAJCQkJQzUxREE5QTcxMUFF
RjJDMTAwOTc5OUM1IC8qIElEQkluZGV4SW1wbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzUxREE5
QTkxMUFFRjJDMTAwOTc5OUM1IC8qIElEQkluZGV4UmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQzVCQkM5RDExMUFFRjgzODAwN0MyQkZFIC8qIEpTSURCSW5kZXhSZXF1ZXN0LmggaW4gSGVh
ZGVycyAqLywKKwkJCQlEMzI0MjFCMjExQjQzMzFGMDA3MkM5RjEgLyogSlNRdWVyeUNhbGxiYWNr
LmggaW4gSGVhZGVycyAqLywKKwkJCQlEMzI0MjFCNTExQjQzMzhFMDA3MkM5RjEgLyogUXVlcnlD
YWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQ
b3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yMTcwNyw2ICsyMTcyMCw3IEBACiAJCQkJQzUx
REE5QTYxMUFFRjJDMTAwOTc5OUM1IC8qIElEQkluZGV4SW1wbC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlDNTFEQTlBODExQUVGMkMxMDA5Nzk5QzUgLyogSURCSW5kZXhSZXF1ZXN0LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUM1QkJDOUQwMTFBRUY4MzgwMDdDMkJGRSAvKiBKU0lEQkluZGV4UmVx
dWVzdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlEMzI0MjFCMTExQjQzMzFGMDA3MkM5RjEgLyog
SlNRdWVyeUNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JE
ZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1F1ZXJ5Q2FsbGJhY2suY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1F1
ZXJ5Q2FsbGJhY2suY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlkNTRl
ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUXVlcnlDYWxsYmFj
ay5jcHAKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBD
b3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiSlNRdWVyeUNhbGxiYWNrLmgiCisKKyNpbmNsdWRlICJKU0RP
TUJpbmRpbmcuaCIKKyNpbmNsdWRlICJTY3JpcHRWYWx1ZS5oIgorCisjaW5jbHVkZSA8cnVudGlt
ZS9BcmdMaXN0Lmg+CisjaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KKwordXNpbmcgbmFtZXNw
YWNlIEpTQzsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitib29sIEpTUXVlcnlDYWxsYmFjazo6
aXNFcXVhbChTY3JpcHRTdGF0ZSogc3RhdGUsIGNvbnN0IFF1ZXJ5Q2FsbGJhY2smIG90aGVyKSBj
b25zdAoreworICAgIGNvbnN0IEpTUXVlcnlDYWxsYmFjayogY2FsbGJhY2sgPSBzdGF0aWNfY2Fz
dDxjb25zdCBKU1F1ZXJ5Q2FsbGJhY2sqPigmb3RoZXIpOworICAgIGlmICghY2FsbGJhY2spCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiBtX2NhbGxiYWNrLmlzRXF1YWwoc3Rh
dGUsIGNhbGxiYWNrLT5tX2NhbGxiYWNrKTsKK30KKwordm9pZCBKU1F1ZXJ5Q2FsbGJhY2s6Omhh
bmRsZUV2ZW50KFNjcmlwdFN0YXRlKiBzdGF0ZSwgaW50IHF1ZXJ5SWQsIGJvb2wgcXVlcnlSZXN1
bHQpCit7CisgICAgSlNMb2NrIGxvY2soU2lsZW5jZUFzc2VydGlvbnNPbmx5KTsKKworICAgIENh
bGxEYXRhIGNhbGxEYXRhOworICAgIENhbGxUeXBlIGNhbGxUeXBlID0gbV9jYWxsYmFjay5qc1Zh
bHVlKCkuZ2V0Q2FsbERhdGEoY2FsbERhdGEpOworICAgIGlmIChjYWxsVHlwZSA9PSBDYWxsVHlw
ZU5vbmUpCisgICAgICAgIHJldHVybjsKKworICAgIEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXIg
YXJndW1lbnRzOworICAgIGFyZ3VtZW50cy5hcHBlbmQoanNOdW1iZXIoc3RhdGUsIHF1ZXJ5SWQp
KTsKKyAgICBhcmd1bWVudHMuYXBwZW5kKGpzQm9vbGVhbihxdWVyeVJlc3VsdCkpOworCisgICAg
SlNDOjpjYWxsKHN0YXRlLCBtX2NhbGxiYWNrLmpzVmFsdWUoKSwgY2FsbFR5cGUsIGNhbGxEYXRh
LCBtX2NhbGxiYWNrLmpzVmFsdWUoKSwgYXJndW1lbnRzKTsKKworICAgIGlmIChzdGF0ZS0+aGFk
RXhjZXB0aW9uKCkpCisgICAgICAgIHJlcG9ydEV4Y2VwdGlvbihzdGF0ZSwgc3RhdGUtPmV4Y2Vw
dGlvbigpKTsKKworfQorCit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUXVl
cnlDYWxsYmFjay5oIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1F1ZXJ5Q2FsbGJhY2suaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hN2NjYTI2Ci0tLSAvZGV2L251bGwKKysr
IGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1F1ZXJ5Q2FsbGJhY2suaApAQCAtMCwwICsxLDU4IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMg
c3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgSlNRdWVyeUNhbGxiYWNrX2gKKyNkZWZp
bmUgSlNRdWVyeUNhbGxiYWNrX2gKKworI2luY2x1ZGUgIlF1ZXJ5Q2FsbGJhY2suaCIKKyNpbmNs
dWRlICJTY3JpcHRWYWx1ZS5oIgorI2luY2x1ZGUgInJ1bnRpbWUvSlNWYWx1ZS5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEpTUXVlcnlDYWxsYmFjayA6IHB1YmxpYyBRdWVyeUNh
bGxiYWNrIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxRdWVyeUNhbGxiYWNrPiBj
cmVhdGUoSlNDOjpKU1ZhbHVlIGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgSlNDOjpDYWxsRGF0
YSBjYWxsRGF0YTsKKyAgICAgICAgSlNDOjpDYWxsVHlwZSBjYWxsVHlwZSA9IGNhbGxiYWNrLmdl
dENhbGxEYXRhKGNhbGxEYXRhKTsKKyAgICAgICAgaWYgKGNhbGxUeXBlID09IEpTQzo6Q2FsbFR5
cGVOb25lKQorICAgICAgICAgICAgcmV0dXJuIDA7CisKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBKU1F1ZXJ5Q2FsbGJhY2soY2FsbGJhY2spKTsKKyAgICB9CisKKworICAgIHZpcnR1YWwg
Ym9vbCBpc0VxdWFsKFNjcmlwdFN0YXRlKiwgY29uc3QgUXVlcnlDYWxsYmFjayYpIGNvbnN0Owor
ICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVFdmVudChTY3JpcHRTdGF0ZSosIGludCwgYm9vbCk7CisK
K3ByaXZhdGU6CisgICAgU2NyaXB0VmFsdWUgbV9jYWxsYmFjazsKKyAgICBKU1F1ZXJ5Q2FsbGJh
Y2soSlNDOjpKU1ZhbHVlIGNhbGxiYWNrKSA6IG1fY2FsbGJhY2soY2FsbGJhY2spIHt9Cit9Owor
Cit9CisKKyNlbmRpZiAvLyBKU1F1ZXJ5Q2FsbGJhY2tfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggODMyMTdmNS4uOWI4ZjY0ZCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC0yMjYwLDYgKzIyNjAs
NyBAQCBteSAlbmF0aXZlVHlwZSA9ICgKICAgICAiRE9NU3RyaW5nIiA9PiAiY29uc3QgU3RyaW5n
JiIsCiAgICAgIkRPTU9iamVjdCIgPT4gIlNjcmlwdFZhbHVlIiwKICAgICAiTm9kZUZpbHRlciIg
PT4gIlJlZlB0cjxOb2RlRmlsdGVyPiIsCisgICAgIlF1ZXJ5Q2FsbGJhY2siID0+ICJSZWZQdHI8
UXVlcnlDYWxsYmFjaz4iLAogICAgICJTZXJpYWxpemVkU2NyaXB0VmFsdWUiID0+ICJSZWZQdHI8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPiIsCiAgICAgIlNWR0FuZ2xlIiA9PiAiU1ZHQW5nbGUiLAog
ICAgICJTVkdMZW5ndGgiID0+ICJTVkdMZW5ndGgiLApAQCAtMjMyOCw2ICsyMzI5LDExIEBAIHN1
YiBKU1ZhbHVlVG9OYXRpdmUKICAgICAgICAgcmV0dXJuICJTZXJpYWxpemVkU2NyaXB0VmFsdWU6
OmNyZWF0ZShleGVjLCAkdmFsdWUpIjsKICAgICB9CiAKKyAgICBpZiAoJHR5cGUgZXEgIlF1ZXJ5
Q2FsbGJhY2siKSB7CisgICAgICAgICRpbXBsSW5jbHVkZXN7IkpTUXVlcnlDYWxsYmFjay5oIn0g
PSAxOworICAgICAgICByZXR1cm4gIkpTUXVlcnlDYWxsYmFjazo6Y3JlYXRlKCR2YWx1ZSkiOwor
ICAgIH0KKwogICAgICRpbXBsSW5jbHVkZXN7IkZsb2F0UG9pbnQuaCJ9ID0gMSBpZiAkdHlwZSBl
cSAiU1ZHUG9pbnQiOwogICAgICRpbXBsSW5jbHVkZXN7IkZsb2F0UmVjdC5oIn0gPSAxIGlmICR0
eXBlIGVxICJTVkdSZWN0IjsKICAgICAkaW1wbEluY2x1ZGVzeyJIVE1MT3B0aW9uRWxlbWVudC5o
In0gPSAxIGlmICR0eXBlIGVxICJIVE1MT3B0aW9uRWxlbWVudCI7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1Y4UXVlcnlDYWxsYmFjay5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1Y4UXVlcnlDYWxsYmFjay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MThhYTdmOQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhRdWVyeUNh
bGxiYWNrLmNwcApAQCAtMCwwICsxLDQwIEBACisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiVjhRdWVyeUNhbGxiYWNrLmgiCisKKyNpbmNsdWRlICJOb2RlLmgiCisjaW5jbHVkZSAiTm9k
ZUZpbHRlci5oIgorI2luY2x1ZGUgIlNjcmlwdFN0YXRlLmgiCisjaW5jbHVkZSAiVjhQcm94eS5o
IgorCisjaW5jbHVkZSA8d3RmL093bkFycmF5UHRyLmg+CisKK2Jvb2wgVjhRdWVyeUNhbGxiYWNr
Ojppc0VxdWFsKFNjcmlwdFN0YXRlKiBzdGF0ZSwgY29uc3QgUXVlcnlDYWxsYmFjayYgb3RoZXIp
IGNvbnN0Cit7CisgICAgY29uc3QgVjhRdWVyeUNhbGxiYWNrKiBjYWxsYmFjayA9IHN0YXRpY19j
YXN0PGNvbnN0IFY4UXVlcnlDYWxsYmFjayo+KCZvdGhlcik7CisgICAgaWYgKCFjYWxsYmFjaykK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIG1fY2FsbGJhY2suaXNFcXVhbChz
dGF0ZSwgY2FsbGJhY2stPm1fY2FsbGJhY2spOworfQorCit2b2lkIFY4UXVlcnlDYWxsYmFjazo6
aGFuZGxlRXZlbnQoU2NyaXB0U3RhdGUqIHN0YXRlLCBpbnQgaWQsIGJvb2wgcXVlcnlSZXN1bHQp
Cit7CisgICAgQVNTRVJUKHY4OjpDb250ZXh0OjpJbkNvbnRleHQoKSk7CisKKyAgICBpZiAoIW1f
Y2FsbGJhY2stPnY4VmFsdWUoKS0+SXNGdW5jdGlvbigpKQorICAgICAgICByZXR1cm47CisKKyAg
ICB2ODo6VHJ5Q2F0Y2ggZXhjZXB0aW9uQ2F0Y2hlcjsKKworICAgIHY4OjpIYW5kbGU8djg6Ok9i
amVjdD4gb2JqZWN0ID0gdjg6OkNvbnRleHQ6OkdldEN1cnJlbnQoKS0+R2xvYmFsKCk7CisgICAg
djg6OkxvY2FsPHY4OjpGdW5jdGlvbj4gZnVuY3Rpb24odjg6OkZ1bmN0aW9uOjpDYXN0KCptX2Nh
bGxiYWNrLT52OFZhbHVlKCkpKTsKKworICAgIE93bkFycmF5UHRyPHY4OjpIYW5kbGU8djg6OlZh
bHVlPiA+IGFyZ3MobmV3IHY4OjpIYW5kbGU8djg6OlZhbHVlPlsyXSk7CisgICAgYXJnc1swXSA9
IHY4OjpOdW1iZXI6Ok5ldyhhcmd1bWVudCk7CisgICAgYXJnc1sxXSA9IHY4Qm9vbGVhbihxdWVy
eVJlc3VsdCk7CisKKyAgICBWOFByb3h5OjpjYWxsRnVuY3Rpb25XaXRob3V0RnJhbWUoZnVuY3Rp
b24sIG9iamVjdCwgMiwgYXJncy5nZXQoKSk7CisKKyAgICBpZiAoZXhjZXB0aW9uQ2F0Y2hlci5I
YXNDYXVnaHQoKSkKKyAgICAgICAgc3RhdGUtPnNldEV4Y2VwdGlvbihleGNlcHRpb25DYXRjaGVy
LkV4Y2VwdGlvbigpKTsKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhRdWVy
eUNhbGxiYWNrLmggYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UXVlcnlDYWxsYmFjay5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQwN2IwMmYKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UXVlcnlDYWxsYmFjay5oCkBAIC0wLDAgKzEsMjMgQEAK
KyNpZm5kZWYgVjhRdWVyeUNhbGxiYWNrX2gKKyNkZWZpbmUgVjhRdWVyeUNhbGxiYWNrX2gKKwor
I2luY2x1ZGUgIk1lZGlhQ2hhbmdlTGlzdGVuZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRWYWx1ZS5o
IgorCisjaW5jbHVkZSA8djguaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBWOFF1
ZXJ5Q2FsbGJhY2sgOiBwdWJsaWMgTWVkaWFDaGFuZ2VMaXN0ZW5lciB7CitwdWJsaWM6CisgICAg
VjhRdWVyeUNhbGxiYWNrKHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjYWxsYmFjaykgOiBtX2NhbGxi
YWNrKGNhbGxiYWNrKSB7fQorCisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KFNjcmlwdFN0
YXRlKiwgaW50LCBib29sKTsKKworcHJpdmF0ZToKKyAgICBTY3JpcHRWYWx1ZSBtX2NhbGxiYWNr
OworfTsKKworfQorCisjZW5kaWYgLy8gVjhRdWVyeUNhbGxiYWNrX2gKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvY3NzL1F1ZXJ5Q2FsbGJhY2suaCBiL1dlYkNvcmUvY3NzL1F1ZXJ5Q2FsbGJhY2suaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MDkyZGRhCi0tLSAvZGV2L251bGwK
KysrIGIvV2ViQ29yZS9jc3MvUXVlcnlDYWxsYmFjay5oCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisq
IENvcHlyaWdodCAoQykgMjAwNiwgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisqCisqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyoKKyogVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisq
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCisqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorKgorKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisqIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisqIHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsCisqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKgorKi8KKyNpZm5kZWYg
TWVkaXVtTGlzdGVuZXJfaAorI2RlZmluZSBNZWRpdW1MaXN0ZW5lcl9oCisKKyNpbmNsdWRlICJT
Y3JpcHRTdGF0ZS5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgUXVlcnlDYWxsYmFjayA6IHB1YmxpYyBSZWZDb3VudGVkPFF1ZXJ5
Q2FsbGJhY2s+IHsKK3B1YmxpYzoKKworICAgdmlydHVhbCB+UXVlcnlDYWxsYmFjaygpIHsgfQor
CisgICB2aXJ0dWFsIGJvb2wgaXNFcXVhbChTY3JpcHRTdGF0ZSosIGNvbnN0IFF1ZXJ5Q2FsbGJh
Y2smKSBjb25zdCA9IDA7CisgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZlbnQoU2NyaXB0U3RhdGUq
LCBpbnQsIGJvb2wpID0gMDsKK307CisKK30KKworI2VuZGlmIC8vIE1lZGl1bUxpc3RlbmVyX2gK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL1F1ZXJ5Q2FsbGJhY2suaWRsIGIvV2ViQ29yZS9jc3Mv
UXVlcnlDYWxsYmFjay5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGU2
MTk4OAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvY3NzL1F1ZXJ5Q2FsbGJhY2suaWRsCkBA
IC0wLDAgKzEsMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIHZpZXcgeworICAg
IFF1ZXJ5Q2FsbGJhY2sgeworICAgICAgICB2b2lkIGhhbmRsZUV2ZW50KGluIGxvbmcgaWQsIGlu
IGJvb2xlYW4gcXVlcnlSZXN1bHQpOworICAgIH07Cit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nz
cy9TdHlsZU1lZGlhLmNwcCBiL1dlYkNvcmUvY3NzL1N0eWxlTWVkaWEuY3BwCmluZGV4IDZjYjY2
MmYuLjQzMGY2OTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL1N0eWxlTWVkaWEuY3BwCisrKyBi
L1dlYkNvcmUvY3NzL1N0eWxlTWVkaWEuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHly
aWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMwLDEyICszMSw1NyBAQAogI2lu
Y2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiTWVkaWFM
aXN0LmgiCisjaW5jbHVkZSAiTWVkaWFRdWVyeS5oIgogI2luY2x1ZGUgIk1lZGlhUXVlcnlFdmFs
dWF0b3IuaCIKKyNpbmNsdWRlICJTdHJpbmdCdWlsZGVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAorc3RhdGljIGludCBsaXN0ZW5lcklkcyA9IDA7CisKKy8vIFN0eWxlTWVkaWE6OlF1ZXJ5
CisKK1N0eWxlTWVkaWE6OlF1ZXJ5OjpRdWVyeShQYXNzUmVmUHRyPE1lZGlhTGlzdD4gbWVkaWEs
IFBhc3NPd25QdHI8TWVkaWFRdWVyeUV2YWx1YXRvcj4gZXZhbHVhdG9yLCBpbnQmIHJvdW5kLCBj
b25zdCBTdHJpbmcmIGtleSkKKyAgICA6IG1fbWVkaWEobWVkaWEpCisgICAgLCBtX2N1cnJlbnRW
YWx1ZShldmFsdWF0b3IgJiYgZXZhbHVhdG9yLT5ldmFsKG1fbWVkaWEuZ2V0KCkpKQorICAgICwg
bV9jdXJyZW50Um91bmQocm91bmQpCisgICAgLCBtX2NoYW5nZVJvdW5kKG1fY3VycmVudFJvdW5k
IC0gMSkKKyAgICAsIG1fa2V5KGtleSkKK3sKK30KKworU3R5bGVNZWRpYTo6UXVlcnk6On5RdWVy
eSgpCit7Cit9CisKK3ZvaWQgU3R5bGVNZWRpYTo6UXVlcnk6OmV2YWx1YXRlKE1lZGlhUXVlcnlF
dmFsdWF0b3IqIGV2YWx1YXRvcikKK3sKKyAgICBib29sIG5ld1ZhbHVlID0gZXZhbHVhdG9yICYm
IGV2YWx1YXRvci0+ZXZhbChtX21lZGlhLmdldCgpKTsKKyAgICBpZiAobmV3VmFsdWUgIT0gbV9j
dXJyZW50VmFsdWUpIHsKKyAgICAgICAgbV9jdXJyZW50VmFsdWUgPSBuZXdWYWx1ZTsKKyAgICAg
ICAgbV9jaGFuZ2VSb3VuZCA9IG1fY3VycmVudFJvdW5kOworICAgIH0KK30KKworLy8gU3R5bGVN
ZWRpYTo6TGlzdGVuZXIKKworU3R5bGVNZWRpYTo6TGlzdGVuZXI6Okxpc3RlbmVyKFBhc3NSZWZQ
dHI8UXVlcnk+IHF1ZXJ5LCBQYXNzUmVmUHRyPFF1ZXJ5Q2FsbGJhY2s+IGNhbGxiYWNrKQorICAg
IDogbV9xdWVyeShxdWVyeSkKKyAgICAsIG1fY2FsbGJhY2soY2FsbGJhY2spCisgICAgLCBtX2lk
KCsrbGlzdGVuZXJJZHMpCit7fQorCit2b2lkIFN0eWxlTWVkaWE6Okxpc3RlbmVyOjpoYW5kbGVF
dmVudChTY3JpcHRTdGF0ZSogZXhlYykKK3sKKyAgICBpZiAobV9xdWVyeS0+Y2hhbmdlZCgpKQor
ICAgICAgICBtX2NhbGxiYWNrLT5oYW5kbGVFdmVudChleGVjLCBtX2lkLCBtX3F1ZXJ5LT52YWx1
ZSgpKTsKK30KKworLy8gU3R5bGVNZWRpYQorCiBTdHlsZU1lZGlhOjpTdHlsZU1lZGlhKEZyYW1l
KiBmcmFtZSkKICAgICA6IG1fZnJhbWUoZnJhbWUpCisgICAgLCBtX2N1cnJlbnRSb3VuZCgwKQog
ewogfQogCkBAIC00OCwzMCArOTQsMTY2IEBAIFN0cmluZyBTdHlsZU1lZGlhOjp0eXBlKCkgY29u
c3QKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLWJvb2wgU3R5bGVNZWRpYTo6bWF0Y2hNZWRp
dW0oY29uc3QgU3RyaW5nJiBxdWVyeSkgY29uc3QKK3N0YXRpYyBQYXNzUmVmUHRyPE1lZGlhTGlz
dD4gcGFyc2UoY29uc3QgU3RyaW5nJiBxdWVyeSkKK3sKKyAgICBSZWZQdHI8TWVkaWFMaXN0PiBt
ZWRpYSA9IE1lZGlhTGlzdDo6Y3JlYXRlKCk7CisgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Cisg
ICAgbWVkaWEtPnNldE1lZGlhVGV4dChxdWVyeSwgZWMpOworICAgIGlmIChlYykKKyAgICAgICAg
cmV0dXJuIDA7CisgICAgcmV0dXJuIG1lZGlhOworfQorCitzdGF0aWMgYm9vbCBzdHJpbmdDb21w
YXJlKGNvbnN0IFN0cmluZyYgYSwgY29uc3QgU3RyaW5nJiBiKQoreworICAgIHJldHVybiBjb2Rl
UG9pbnRDb21wYXJlKGEsIGIpIDwgMDsKK30KKworc3RhdGljIFN0cmluZyB3cml0ZU1lZGlhTGlz
dEtleShNZWRpYUxpc3QqIG1lZGlhKQoreworICAgIFZlY3RvcjxTdHJpbmc+IGxpc3Q7CisgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBtZWRpYS0+bWVkaWFRdWVyaWVzKCkuc2l6ZSgpOyArK2kp
CisgICAgICAgIGxpc3QuYXBwZW5kKG1lZGlhLT5tZWRpYVF1ZXJpZXMoKVtpXS0+Y3NzVGV4dCgp
KTsKKworICAgIGlmIChsaXN0LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOwor
CisgICAgc3RkOjpzb3J0KGxpc3QuYmVnaW4oKSwgbGlzdC5lbmQoKSwgc3RyaW5nQ29tcGFyZSk7
CisgICAgU3RyaW5nQnVpbGRlciByZXN1bHQ7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBs
aXN0LnNpemUoKTsgKytpKQorICAgICAgICByZXN1bHQuYXBwZW5kKGxpc3RbaV0pOworICAgIHJl
dHVybiByZXN1bHQudG9TdHJpbmcoKTsKK30KKworaW50IFN0eWxlTWVkaWE6OmFkZFF1ZXJ5TGlz
dGVuZXIoY29uc3QgU3RyaW5nJiBtZWRpYVF1ZXJ5LCBQYXNzUmVmUHRyPFF1ZXJ5Q2FsbGJhY2s+
IGNhbGxiYWNrKQoreworICAgIGlmICghY2FsbGJhY2spCisgICAgICAgIHJldHVybiAwOworCisg
ICAgUmVmUHRyPE1lZGlhTGlzdD4gbWVkaWEgPSBwYXJzZShtZWRpYVF1ZXJ5KTsKKworICAgIFN0
cmluZyBrZXkgPSB3cml0ZU1lZGlhTGlzdEtleShtZWRpYS5nZXQoKSk7CisgICAgaWYgKGtleS5p
c051bGwoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICAvLyBsb29rIGZvciBxdWVyeSBpbiBt
X3F1ZXJpZXMuCisgICAgUXVlcnkqIHF1ZXJ5ID0gbV9xdWVyaWVzLmdldChrZXkpOworICAgIGlm
ICghcXVlcnkpIHsKKworICAgICAgICAvLyBpZiBubyBlcXVpdmFsZW50IHF1ZXJ5IGlzIGluIG1f
cXVlcmllcyBjcmVhdGUgb25lLgorICAgICAgICBPd25QdHI8UXVlcnk+IHRlbXAobmV3IFF1ZXJ5
KG1lZGlhLCBwcmVwYXJlRXZhbHVhdG9yKCksIG1fY3VycmVudFJvdW5kLCBrZXkpKTsKKyAgICAg
ICAgaWYgKG1fcXVlcmllcy5hZGQoa2V5LCB0ZW1wLmdldCgpKS5zZWNvbmQpCisgICAgICAgICAg
ICBxdWVyeSA9IHRlbXAucmVsZWFzZSgpOyAvLyBxdWVyeSBjcmVhdGVkIGFuZCBhZGRlZCB0byBt
X3F1ZXJpZXMKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIDA7CisKKyAgICB9IGVs
c2UgeworCisgICAgICAgIFNjcmlwdFN0YXRlKiBleGVjID0gbWFpbldvcmxkU2NyaXB0U3RhdGUo
bV9mcmFtZSk7CisgICAgICAgIGlmICghZXhlYykKKyAgICAgICAgICAgIHJldHVybiAwOworCisg
ICAgICAgIC8vIGlmIHRoZXJlIGlzIGFscmVhZHkgYW4gZXF1aXZhbGVudCBxdWVyeSBsb29rIGZv
ciBhbiBlcXVpdmFsZW50CisgICAgICAgIC8vIHBhaXIgKHF1ZXJ5LCBjYWxsYmFjaykuIHJldHVy
biBpZiBmb3VuZC4KKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2xpc3RlbmVycy5z
aXplKCk7ICsraSkgeworICAgICAgICAgICAgaWYgKG1fbGlzdGVuZXJzW2ldLT5xdWVyeSgpID09
IHF1ZXJ5ICYmIG1fbGlzdGVuZXJzW2ldLT5jYWxsYmFjaygpLT5pc0VxdWFsKGV4ZWMsICpjYWxs
YmFjaykpCisgICAgICAgICAgICAgICAgcmV0dXJuIG1fbGlzdGVuZXJzW2ldLT5pZCgpOworICAg
ICAgICB9CisKKyAgICB9CisKKyAgICBMaXN0ZW5lciogbGlzdGVuZXIgPSBuZXcgTGlzdGVuZXIo
cXVlcnksIGNhbGxiYWNrKTsKKyAgICBtX2xpc3RlbmVycy5hcHBlbmQobGlzdGVuZXIpOworICAg
IHJldHVybiBsaXN0ZW5lci0+aWQoKTsKK30KKworYm9vbCBTdHlsZU1lZGlhOjpsaXN0ZW5lckNv
bXBhcmUoY29uc3QgTGlzdGVuZXIqIGxpc3RlbmVyLCBpbnQgaWQpCit7CisgICAgcmV0dXJuIGxp
c3RlbmVyLT5pZCgpIC0gaWQgPCAwOworfQorCit2b2lkIFN0eWxlTWVkaWE6OnJlbW92ZVF1ZXJ5
TGlzdGVuZXIoaW50IGlkKQoreworICAgIC8vIGxvb2sgZm9yIHRoZSBsaXN0ZW5lciBpZGVudGlm
aWVkIGJ5IGlkLiByZXR1cm4gaWYgbm90IGZvdW5kLgorICAgIFZlY3RvcjxMaXN0ZW5lcio+Ojpp
dGVyYXRvciBsaXN0ZW5lciA9IHN0ZDo6bG93ZXJfYm91bmQobV9saXN0ZW5lcnMuYmVnaW4oKSwg
bV9saXN0ZW5lcnMuZW5kKCksIGlkLCBsaXN0ZW5lckNvbXBhcmUpOworICAgIGlmIChsaXN0ZW5l
ciA9PSBtX2xpc3RlbmVycy5lbmQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gZGVsZXRl
IHRoZSByZW1vdmVkIGxpc3RlbmVyLiBrZWVwIGEgcG9pbnRlciB0byB0aGUgcXVlcnkuCisgICAg
TGlzdGVuZXIqIGl0ZW0gPSAqbGlzdGVuZXI7CisgICAgY29uc3QgUXVlcnkqIHF1ZXJ5ID0gaXRl
bS0+cXVlcnkoKTsKKyAgICBtX2xpc3RlbmVycy5yZW1vdmUobGlzdGVuZXIgLSBtX2xpc3RlbmVy
cy5kYXRhKCkpOworICAgIGRlbGV0ZSBpdGVtOworCisgICAgLy8gZGVsZXRlIHRoZSBxdWVyeSBp
ZiBpdCBpcyBub3QgdXNlZCBhbnkgbW9yZS4KKyAgICBpZiAocXVlcnktPmhhc09uZVJlZigpKSB7
CisgICAgICAgIG1fcXVlcmllcy5yZW1vdmUocXVlcnktPmtleSgpKTsKKyAgICAgICAgZGVsZXRl
IHF1ZXJ5OworICAgIH0KK30KKworTWVkaWFRdWVyeUV2YWx1YXRvciogU3R5bGVNZWRpYTo6cHJl
cGFyZUV2YWx1YXRvcigpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2ZyYW1lKQotICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgIHJldHVybiAwOwogCiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0g
bV9mcmFtZS0+ZG9jdW1lbnQoKTsKLSAgICBBU1NFUlQoZG9jdW1lbnQpOworICAgIGlmICghZG9j
dW1lbnQpCisgICAgICAgIHJldHVybiAwOworCiAgICAgRWxlbWVudCogZG9jdW1lbnRFbGVtZW50
ID0gZG9jdW1lbnQtPmRvY3VtZW50RWxlbWVudCgpOwotICAgIEFTU0VSVChkb2N1bWVudEVsZW1l
bnQpOworICAgIGlmICghZG9jdW1lbnRFbGVtZW50KQorICAgICAgICByZXR1cm4gMDsKIAogICAg
IENTU1N0eWxlU2VsZWN0b3IqIHN0eWxlU2VsZWN0b3IgPSBkb2N1bWVudC0+c3R5bGVTZWxlY3Rv
cigpOwogICAgIGlmICghc3R5bGVTZWxlY3RvcikKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICByZXR1cm4gMDsKIAogICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gcm9vdFN0eWxlID0gc3R5
bGVTZWxlY3Rvci0+c3R5bGVGb3JFbGVtZW50KGRvY3VtZW50RWxlbWVudCwgMCAvKmRlZmF1bHRQ
YXJlbnQqLywgZmFsc2UgLyphbGxvd1NoYXJpbmcqLywgdHJ1ZSAvKnJlc29sdmVGb3JSb290RGVm
YXVsdCovKTsKLSAgICBSZWZQdHI8TWVkaWFMaXN0PiBtZWRpYSA9IE1lZGlhTGlzdDo6Y3JlYXRl
KCk7CiAKKyAgICByZXR1cm4gbmV3IE1lZGlhUXVlcnlFdmFsdWF0b3IodHlwZSgpLCBtX2ZyYW1l
LCByb290U3R5bGUuZ2V0KCkpOworfQorCitib29sIFN0eWxlTWVkaWE6Om1hdGNoUXVlcnkoY29u
c3QgU3RyaW5nJiBxdWVyeSkgY29uc3QKK3sKKyAgICBSZWZQdHI8TWVkaWFMaXN0PiBtZWRpYShN
ZWRpYUxpc3Q6OmNyZWF0ZSgpKTsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBtZWRp
YS0+c2V0TWVkaWFUZXh0KHF1ZXJ5LCBlYyk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKLSAgICBNZWRpYVF1ZXJ5RXZhbHVhdG9yIHNjcmVlbkV2YWwodHlwZSgpLCBtX2Zy
YW1lLCByb290U3R5bGUuZ2V0KCkpOwotICAgIHJldHVybiBzY3JlZW5FdmFsLmV2YWwobWVkaWEu
Z2V0KCkpOworICAgIE93blB0cjxNZWRpYVF1ZXJ5RXZhbHVhdG9yPiBldmFsdWF0b3IocHJlcGFy
ZUV2YWx1YXRvcigpKTsKKyAgICByZXR1cm4gZXZhbHVhdG9yICYmIGV2YWx1YXRvci0+ZXZhbCht
ZWRpYS5nZXQoKSk7Cit9CisKK3ZvaWQgU3R5bGVNZWRpYTo6c3R5bGVDaGFuZ2VkKCkKK3sKKyAg
ICBPd25QdHI8TWVkaWFRdWVyeUV2YWx1YXRvcj4gZXZhbHVhdG9yKHByZXBhcmVFdmFsdWF0b3Io
KSk7CisgICAgaWYgKCFldmFsdWF0b3IpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIGluY3Jl
bWVudCBldmFsdWF0aW9uIHJvdW5kCisgICAgKyttX2N1cnJlbnRSb3VuZDsKKworICAgIC8vIGV2
YWx1YXRlIGVhY2ggcXVlcnkgYW5kIGNoZWNrIGlmIGFueSBvZiB0aGVtIGNoYW5nZXMKKyAgICBi
b29sIGNoYW5nZWQgPSBmYWxzZTsKKyAgICBIYXNoTWFwPFN0cmluZywgUXVlcnkqPjo6aXRlcmF0
b3I6OlZhbHVlcyBpID0gbV9xdWVyaWVzLmJlZ2luKCk7CisgICAgSGFzaE1hcDxTdHJpbmcsIFF1
ZXJ5Kj46Oml0ZXJhdG9yOjpWYWx1ZXMgZW5kID0gbV9xdWVyaWVzLmVuZCgpOworICAgIGZvciAo
OyBpICE9IGVuZDsgKytpKSB7CisgICAgICAgICgqaSktPmV2YWx1YXRlKGV2YWx1YXRvci5nZXQo
KSk7CisgICAgICAgIGNoYW5nZWQgPSBjaGFuZ2VkIHx8ICgqaSktPmNoYW5nZWQoKTsKKyAgICB9
CisKKyAgICAvLyBpZiBhbnkgb2YgdGhlIHF1ZXJpZXMgaGFzIGNoYW5nZWQgdHJpZ2VyIHRoZSBj
b3JyZXNwb25kaW5nIGNhbGxiYWNrcyBpbiBvcmRlcgorICAgIGlmIChjaGFuZ2VkICYmIG1fZnJh
bWUpIHsKKworICAgICAgICBTY3JpcHRTdGF0ZSogZXhlYyA9IG1haW5Xb3JsZFNjcmlwdFN0YXRl
KG1fZnJhbWUpOworICAgICAgICBpZiAoIWV4ZWMpCisgICAgICAgICAgICByZXR1cm47CisKKyAg
ICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2xpc3RlbmVycy5zaXplKCk7ICsraSkKKyAg
ICAgICAgICAgICAgICBtX2xpc3RlbmVyc1tpXS0+aGFuZGxlRXZlbnQoZXhlYyk7CisgICAgfQog
fQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9TdHls
ZU1lZGlhLmggYi9XZWJDb3JlL2Nzcy9TdHlsZU1lZGlhLmgKaW5kZXggNzYxZTZhMy4uMTAxYmIz
YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvU3R5bGVNZWRpYS5oCisrKyBiL1dlYkNvcmUvY3Nz
L1N0eWxlTWVkaWEuaApAQCAtMjgsNiArMjgsMTUgQEAKICNkZWZpbmUgU3R5bGVNZWRpYV9oCiAK
ICNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJNZWRpYUxpc3QuaCIKKyNpbmNsdWRl
ICJNZWRpYVF1ZXJ5RXZhbHVhdG9yLmgiCisjaW5jbHVkZSAiUXVlcnlDYWxsYmFjay5oIgorCisj
aW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVk
ZSA8d3RmL1Bhc3NPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8
d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQyLDEy
ICs1MSw1NyBAQCBwdWJsaWM6CiAKICAgICBTdHJpbmcgdHlwZSgpIGNvbnN0OwogCi0gICAgYm9v
bCBtYXRjaE1lZGl1bShjb25zdCBTdHJpbmcmKSBjb25zdDsKKyAgICBib29sIG1hdGNoUXVlcnko
Y29uc3QgU3RyaW5nJikgY29uc3Q7CisKKyAgICBpbnQgYWRkUXVlcnlMaXN0ZW5lcihjb25zdCBT
dHJpbmcmIG1lZGlhUXVlcnksIFBhc3NSZWZQdHI8UXVlcnlDYWxsYmFjaz4gY2FsbGJhY2spOwor
ICAgIHZvaWQgcmVtb3ZlUXVlcnlMaXN0ZW5lcihpbnQgaWQpOworCisgICAgdm9pZCBzdHlsZUNo
YW5nZWQoKTsKKworcHJpdmF0ZToKKworICAgIGNsYXNzIFF1ZXJ5IDogcHVibGljIFJlZkNvdW50
ZWQ8UXVlcnk+IHsKKyAgICBwdWJsaWM6CisgICAgICAgIFF1ZXJ5KFBhc3NSZWZQdHI8TWVkaWFM
aXN0PiBtZWRpYSwgUGFzc093blB0cjxNZWRpYVF1ZXJ5RXZhbHVhdG9yPiBldmFsdWF0b3IsIGlu
dCYgcm91bmQsIGNvbnN0IFN0cmluZyYga2V5KTsKKyAgICAgICAgflF1ZXJ5KCk7CisgICAgICAg
IHZvaWQgZXZhbHVhdGUoTWVkaWFRdWVyeUV2YWx1YXRvciopOworICAgICAgICBib29sIHZhbHVl
KCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50VmFsdWU7IH0KKyAgICAgICAgYm9vbCBjaGFuZ2Vk
KCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50Um91bmQgPT0gbV9jaGFuZ2VSb3VuZDsgfQorICAg
ICAgICBTdHJpbmcga2V5KCkgY29uc3QgeyByZXR1cm4gbV9rZXk7IH0KKworICAgIHByaXZhdGU6
CisgICAgICAgIFJlZlB0cjxNZWRpYUxpc3Q+IG1fbWVkaWE7CisgICAgICAgIGJvb2wgbV9jdXJy
ZW50VmFsdWU7CisgICAgICAgIGludCYgbV9jdXJyZW50Um91bmQ7CisgICAgICAgIGludCBtX2No
YW5nZVJvdW5kOworICAgICAgICBTdHJpbmcgbV9rZXk7CisgICAgfTsKKworICAgIGNsYXNzIExp
c3RlbmVyIHsKKyAgICBwdWJsaWM6CisgICAgICAgIExpc3RlbmVyKFBhc3NSZWZQdHI8UXVlcnk+
IHF1ZXJ5LCBQYXNzUmVmUHRyPFF1ZXJ5Q2FsbGJhY2s+IGNhbGxiYWNrKTsKKyAgICAgICAgdm9p
ZCBoYW5kbGVFdmVudChTY3JpcHRTdGF0ZSopOworICAgICAgICBjb25zdCBRdWVyeSogcXVlcnko
KSB7IHJldHVybiBtX3F1ZXJ5LmdldCgpOyB9CisgICAgICAgIGNvbnN0IFF1ZXJ5Q2FsbGJhY2sq
IGNhbGxiYWNrKCkgY29uc3QgeyByZXR1cm4gbV9jYWxsYmFjay5nZXQoKTsgfQorICAgICAgICBp
bnQgaWQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9CisKKyAgICBwcml2YXRlOgorICAgICAgICBS
ZWZQdHI8UXVlcnk+IG1fcXVlcnk7CisgICAgICAgIFJlZlB0cjxRdWVyeUNhbGxiYWNrPiBtX2Nh
bGxiYWNrOworICAgICAgICBpbnQgbV9pZDsKKyAgICB9OwogCiBwcml2YXRlOgogICAgIFN0eWxl
TWVkaWEoRnJhbWUqKTsKIAogICAgIEZyYW1lKiBtX2ZyYW1lOworICAgIEhhc2hNYXA8U3RyaW5n
LCBRdWVyeSo+IG1fcXVlcmllczsKKyAgICBWZWN0b3I8TGlzdGVuZXIqPiBtX2xpc3RlbmVyczsK
KyAgICBpbnQgbV9jdXJyZW50Um91bmQ7CisKKyAgICBNZWRpYVF1ZXJ5RXZhbHVhdG9yKiBwcmVw
YXJlRXZhbHVhdG9yKCkgY29uc3Q7CisKKyAgICBzdGF0aWMgYm9vbCBsaXN0ZW5lckNvbXBhcmUo
Y29uc3QgTGlzdGVuZXIqIGxpc3RlbmVyLCBpbnQgaWQpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL1N0eWxlTWVkaWEuaWRsIGIvV2ViQ29yZS9jc3MvU3R5
bGVNZWRpYS5pZGwKaW5kZXggN2JlMzVjYy4uYzBhODU5ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9j
c3MvU3R5bGVNZWRpYS5pZGwKKysrIGIvV2ViQ29yZS9jc3MvU3R5bGVNZWRpYS5pZGwKQEAgLTI3
LDYgKzI3LDkgQEAKIG1vZHVsZSB2aWV3IHsKICAgICBpbnRlcmZhY2UgU3R5bGVNZWRpYSB7CiAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdHlwZTsKLSAgICAgICAgYm9vbGVh
biBtYXRjaE1lZGl1bShpbiBET01TdHJpbmcgbWVkaWFxdWVyeSk7CisgICAgICAgIGJvb2xlYW4g
bWF0Y2hRdWVyeShpbiBET01TdHJpbmcgbWVkaWFxdWVyeSk7CisKKyAgICAgICAgbG9uZyBhZGRR
dWVyeUxpc3RlbmVyKGluIERPTVN0cmluZyBtZWRpYVF1ZXJ5LCBpbiBRdWVyeUNhbGxiYWNrIGNh
bGxiYWNrKTsKKyAgICAgICAgdm9pZCByZW1vdmVRdWVyeUxpc3RlbmVyKGluIGxvbmcgaWQpOwog
ICAgIH07CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggZDFkNzBiNi4uNGE3NjJhNyAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAt
MTE4LDYgKzExOCw3IEBACiAjaW5jbHVkZSAiU2VsZWN0aW9uQ29udHJvbGxlci5oIgogI2luY2x1
ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU3RyaW5nQnVmZmVyLmgiCisjaW5jbHVkZSAiU3R5
bGVNZWRpYS5oIgogI2luY2x1ZGUgIlN0eWxlU2hlZXRMaXN0LmgiCiAjaW5jbHVkZSAiVGV4dEV2
ZW50LmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCkBAIC0yNjA3LDYgKzI2MDgsMTAgQEAg
dm9pZCBEb2N1bWVudDo6dXBkYXRlU3R5bGVTZWxlY3RvcigpCiAgICAgICAgIGlmICh2aWV3KCkp
CiAgICAgICAgICAgICB2aWV3KCktPnNjaGVkdWxlUmVsYXlvdXQoKTsKICAgICB9CisKKyAgICBp
ZiAoZG9tV2luZG93KCkgJiYgZG9tV2luZG93KCktPnN0eWxlTWVkaWEoKSkKKyAgICAgICAgZG9t
V2luZG93KCktPnN0eWxlTWVkaWEoKS0+c3R5bGVDaGFuZ2VkKCk7CisKIH0KIAogdm9pZCBEb2N1
bWVudDo6YWRkU3R5bGVTaGVldENhbmRpZGF0ZU5vZGUoTm9kZSogbm9kZSwgYm9vbCBjcmVhdGVk
QnlQYXJzZXIpCi0tIAoxLjYuMy4zCgo=
</data>
<flag name="commit-queue"
          id="42089"
          type_id="3"
          status="-"
          setter="luiz"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57574</attachid>
            <date>2010-06-01 11:38:22 -0700</date>
            <delta_ts>2010-08-11 17:07:57 -0700</delta_ts>
            <desc>test</desc>
            <filename>0001-Medium-listeners.patch</filename>
            <type>text/plain</type>
            <size>38341</size>
            <attacher name="Luiz Agostini">luiz</attacher>
            
              <data encoding="base64">RnJvbSA0ZmRkOTRhODMzYWQ5MjUzNjkxYzVjYmU5NDkzNWVhNDU0ZmEzMTY3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWl6IEFnb3N0aW5pIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IFR1ZSwgMSBKdW4gMjAxMCAxNToyMjoxMiAtMDMwMApTdWJqZWN0OiBbUEFU
Q0hdIE1lZGl1bSBsaXN0ZW5lcnMKIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zNzIwNQoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpXZWJDb3JlOgoKQXMgdGhl
IHNwZWNpZmljYXRpb24gc3RpbGwgb25nb2luZyB0aGlzIHBhdGNoIGlzIGp1c3QgYSB0ZXN0LiBN
YWluIG9iamVjdGl2ZSBpcyB0bwpzZWUgaG93IGl0IGdvZXMgaW4gZGlmZmVyZW50IHBsYXRmb3Jt
cyBhbmQgdG8gdHJ5IHRvIGZpbmQgaGVscCB3aXRoIHRoZSBiaW5kaW5ncy4KCkpTIGJpbmRpbmcg
c2VlbXMgdG8gYmUgb2sgYnV0IEkgbmVlZCBmZWVkYmFjay4KClRlc3Q6IGZhc3QvbWVkaWEvcXVl
cnktY2FsbGJhY2tzLmh0bWwKCiogV2ViQ29yZS5wcmk6CiogV2ViQ29yZS5wcm86CiogYmluZGlu
Z3MvanMvSlNRdWVyeUNhbGxiYWNrLmNwcDogQWRkZWQuCihXZWJDb3JlOjpKU1F1ZXJ5Q2FsbGJh
Y2s6Om9wZXJhdG9yPT0pOgooV2ViQ29yZTo6SlNRdWVyeUNhbGxiYWNrOjpoYW5kbGVFdmVudCk6
CiogYmluZGluZ3MvanMvSlNRdWVyeUNhbGxiYWNrLmg6IEFkZGVkLgooV2ViQ29yZTo6SlNRdWVy
eUNhbGxiYWNrOjpjcmVhdGUpOgooV2ViQ29yZTo6SlNRdWVyeUNhbGxiYWNrOjpKU1F1ZXJ5Q2Fs
bGJhY2spOgoqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgoqIGNzcy9RdWVy
eUNhbGxiYWNrLmg6IEFkZGVkLgooV2ViQ29yZTo6UXVlcnlDYWxsYmFjazo6flF1ZXJ5Q2FsbGJh
Y2spOgoqIGNzcy9RdWVyeUNhbGxiYWNrLmlkbDogQWRkZWQuCiogY3NzL1N0eWxlTWVkaWEuY3Bw
OgooV2ViQ29yZTo6U3R5bGVNZWRpYTo6UXVlcnk6OlF1ZXJ5KToKKFdlYkNvcmU6OlN0eWxlTWVk
aWE6OlF1ZXJ5Ojp+UXVlcnkpOgooV2ViQ29yZTo6U3R5bGVNZWRpYTo6UXVlcnk6OmV2YWx1YXRl
KToKKFdlYkNvcmU6OlN0eWxlTWVkaWE6Okxpc3RlbmVyOjpMaXN0ZW5lcik6CihXZWJDb3JlOjpT
dHlsZU1lZGlhOjpMaXN0ZW5lcjo6aGFuZGxlRXZlbnQpOgooV2ViQ29yZTo6U3R5bGVNZWRpYTo6
U3R5bGVNZWRpYSk6CihXZWJDb3JlOjpwYXJzZSk6CihXZWJDb3JlOjpzdHJpbmdDb21wYXJlKToK
KFdlYkNvcmU6OndyaXRlTWVkaWFMaXN0S2V5KToKKFdlYkNvcmU6OlN0eWxlTWVkaWE6OmFkZFF1
ZXJ5TGlzdGVuZXIpOgooV2ViQ29yZTo6U3R5bGVNZWRpYTo6bGlzdGVuZXJDb21wYXJlKToKKFdl
YkNvcmU6OlN0eWxlTWVkaWE6OnJlbW92ZVF1ZXJ5TGlzdGVuZXIpOgooV2ViQ29yZTo6U3R5bGVN
ZWRpYTo6cHJlcGFyZUV2YWx1YXRvcik6CihXZWJDb3JlOjpTdHlsZU1lZGlhOjptYXRjaFF1ZXJ5
KToKKFdlYkNvcmU6OlN0eWxlTWVkaWE6OnN0eWxlQ2hhbmdlZCk6CiogY3NzL1N0eWxlTWVkaWEu
aDoKKFdlYkNvcmU6OlN0eWxlTWVkaWE6OlF1ZXJ5Ojp2YWx1ZSk6CihXZWJDb3JlOjpTdHlsZU1l
ZGlhOjpRdWVyeTo6Y2hhbmdlZCk6CihXZWJDb3JlOjpTdHlsZU1lZGlhOjpRdWVyeTo6a2V5KToK
KFdlYkNvcmU6OlN0eWxlTWVkaWE6Okxpc3RlbmVyOjpxdWVyeSk6CihXZWJDb3JlOjpTdHlsZU1l
ZGlhOjpMaXN0ZW5lcjo6Y2FsbGJhY2spOgooV2ViQ29yZTo6U3R5bGVNZWRpYTo6TGlzdGVuZXI6
OmlkKToKKiBjc3MvU3R5bGVNZWRpYS5pZGw6CiogZG9tL0RvY3VtZW50LmNwcDoKKFdlYkNvcmU6
OkRvY3VtZW50Ojp1cGRhdGVTdHlsZVNlbGVjdG9yKToKCkxheW91dFRlc3RzOgoKKiBmYXN0L21l
ZGlhL3F1ZXJ5LWNhbGxiYWNrcy1leHBlY3RlZC50eHQ6IEFkZGVkLgoqIGZhc3QvbWVkaWEvcXVl
cnktY2FsbGJhY2tzLmh0bWw6IEFkZGVkLgotLS0KIExheW91dFRlc3RzL0NoYW5nZUxvZyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMCArCiAuLi4vZmFzdC9tZWRpYS9xdWVyeS1j
YWxsYmFja3MtZXhwZWN0ZWQudHh0ICAgICAgICB8ICAgIDEgKwogTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYS9xdWVyeS1jYWxsYmFja3MuaHRtbCAgICAgICAgfCAgMTA0ICsrKysrKysrKysKIFdlYkNv
cmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA1MyArKysr
KysKIFdlYkNvcmUvV2ViQ29yZS5neXBpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAgMyArCiBXZWJDb3JlL1dlYkNvcmUucHJpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8ICAgIDEgKwogV2ViQ29yZS9XZWJDb3JlLnBybyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgICAzICsKIFdlYkNvcmUvYmluZGluZ3MvanMvSlNRdWVyeUNhbGxiYWNrLmNwcCAg
ICAgICAgICAgIHwgICA2OCArKysrKysrCiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTUXVlcnlDYWxs
YmFjay5oICAgICAgICAgICAgICB8ICAgNTkgKysrKysrCiBXZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtICAgICAgICB8ICAgIDYgKwogV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbSAgICAgICAgfCAgICA2ICsKIFdlYkNvcmUvYmluZGlu
Z3MvdjgvVjhRdWVyeUNhbGxiYWNrLmNwcCAgICAgICAgICAgIHwgICA2NSArKysrKysrCiBXZWJD
b3JlL2JpbmRpbmdzL3Y4L1Y4UXVlcnlDYWxsYmFjay5oICAgICAgICAgICAgICB8ICAgNTYgKysr
KysrCiBXZWJDb3JlL2Nzcy9RdWVyeUNhbGxiYWNrLmggICAgICAgICAgICAgICAgICAgICAgICB8
ICAgMzggKysrKwogV2ViQ29yZS9jc3MvUXVlcnlDYWxsYmFjay5pZGwgICAgICAgICAgICAgICAg
ICAgICAgfCAgIDMwICsrKwogV2ViQ29yZS9jc3MvU3R5bGVNZWRpYS5jcHAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgMTk4ICsrKysrKysrKysrKysrKysrKystCiBXZWJDb3JlL2Nzcy9TdHls
ZU1lZGlhLmggICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNTYgKysrKysrLQogV2ViQ29y
ZS9jc3MvU3R5bGVNZWRpYS5pZGwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA1ICstCiBX
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDUg
KwogMTkgZmlsZXMgY2hhbmdlZCwgNzU3IGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQog
Y3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvbWVkaWEvcXVlcnktY2FsbGJhY2tz
LWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvbWVkaWEv
cXVlcnktY2FsbGJhY2tzLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL2JpbmRpbmdz
L2pzL0pTUXVlcnlDYWxsYmFjay5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL2JpbmRp
bmdzL2pzL0pTUXVlcnlDYWxsYmFjay5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9iaW5k
aW5ncy92OC9WOFF1ZXJ5Q2FsbGJhY2suY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9i
aW5kaW5ncy92OC9WOFF1ZXJ5Q2FsbGJhY2suaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUv
Y3NzL1F1ZXJ5Q2FsbGJhY2suaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvY3NzL1F1ZXJ5
Q2FsbGJhY2suaWRsCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGIwMDk1ZjYuLjA2M2MwY2UgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MyBAQAorMjAxMC0wNS0zMSAgTHVpeiBBZ29zdGluaSAgPGx1aXouYWdvc3RpbmlAb3BlbmJvc3Nh
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBN
ZWRpdW0gbGlzdGVuZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zNzIwNQorCisgICAgICAgICogZmFzdC9tZWRpYS9xdWVyeS1jYWxsYmFja3MtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhL3F1ZXJ5LWNhbGxiYWNrcy5o
dG1sOiBBZGRlZC4KKwogMjAxMC0wNi0wMSAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGln
YWxpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9xdWVyeS1jYWxsYmFja3MtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYS9xdWVyeS1jYWxsYmFja3MtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI5M2ZjYmIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L21lZGlhL3F1ZXJ5LWNhbGxiYWNrcy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSBAQAorUEFTUy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvcXVlcnkt
Y2FsbGJhY2tzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL3F1ZXJ5LWNhbGxiYWNrcy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUxMjhjYzEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL3F1ZXJ5LWNhbGxiYWNrcy5odG1sCkBA
IC0wLDAgKzEsMTA0IEBACis8aHRtbD4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIHRlc3QoKQorewor
ICAgIGlmICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICByZXR1cm47Cisg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgICAgdmFyIG91dHB1dCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKTsKKyAgICB2YXIgbG9nID0gZnVuY3Rp
b24gKG1zZykKKyAgICB7CisgICAgICAgIG91dHB1dC5pbm5lckhUTUwgKz0gIkZBSUwgLSAiICsg
bXNnICsgIjxicj4iOworICAgIH07CisKKyAgICBpZiAoIXdpbmRvdy5zdHlsZU1lZGlhKSB7Cisg
ICAgICAgIGxvZygid2luZG93LnN0eWxlTWVkaWEgaXMgbm90IHN1cHBvcnRlZC4iKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIHZhciBhY3R1YWxDYWxsYmFja3MgPSBbXTsKKyAgICB2
YXIgZXhwZWN0ZWRDYWxsYmFja3MgPSBbXTsKKworICAgIHZhciByZXN1bHQgPSB0cnVlOworICAg
IGxheW91dFRlc3RDb250cm9sbGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCJtaW5pbWl6ZWQi
KTsKKworICAgIHZhciBxdWVyaWVzID0gWworICAgICAgICBbIigtd2Via2l0LXZpZXctbW9kZTog
bWluaW1pemVkKSIsIDBdLAorICAgICAgICBbIigtd2Via2l0LXZpZXctbW9kZTogbWF4aW1pemVk
KSIsIDBdLAorICAgICAgICBbIigtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSwgKC13ZWJr
aXQtdmlldy1tb2RlOiBtYXhpbWl6ZWQpIiwgMF0sCisgICAgICAgIFsiKC13ZWJraXQtdmlldy1t
b2RlOiBtaW5pbWl6ZWQpLCAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSIsIDBdCisgICAg
XTsKKworICAgIHZhciBjYWxsYmFja0hhbmRsZXIgPSBmdW5jdGlvbiAoaWR4LCBpZCwgdmFsdWUp
IHsKKyAgICAgICAgaWYgKHF1ZXJpZXNbaWR4XVsxXSAhPSBpZCkgeworICAgICAgICAgICAgbG9n
KCJpZCB3YXMgZXhwZWN0ZWQgdG8gYmUgIiArIHF1ZXJpZXNbaWR4XVsxXSArICIgYnV0IGluc3Rl
YWQgd2FzICIgKyBpZCk7CisgICAgICAgICAgICByZXN1bHQgPSBmYWxzZTsKKyAgICAgICAgfQor
ICAgICAgICBhY3R1YWxDYWxsYmFja3MucHVzaChbaWR4LCB2YWx1ZV0pOworICAgIH07CisKKyAg
ICB2YXIgY3JlYXRlQ2FsbGJhY2sgPSBmdW5jdGlvbiAoaWR4KSB7CisgICAgICAgIHJldHVybiBm
dW5jdGlvbiAoaWQsIHZhbHVlKSB7IGNhbGxiYWNrSGFuZGxlcihpZHgsIGlkLCB2YWx1ZSk7IH07
CisgICAgfTsKKworICAgIHZhciBpOworICAgIGZvciAoaSA9IDA7IGk8IHF1ZXJpZXMubGVuZ3Ro
OyArK2kpIHsKKyAgICAgICAgdmFyIGNhbGxiYWNrID0gY3JlYXRlQ2FsbGJhY2soaSk7CisgICAg
ICAgIHF1ZXJpZXNbaV1bMV0gPSB3aW5kb3cuc3R5bGVNZWRpYS5hZGRRdWVyeUxpc3RlbmVyKHF1
ZXJpZXNbaV1bMF0sIGNhbGxiYWNrKTsKKworICAgICAgICBpZiAocXVlcmllc1tpXVsxXSAhPSB3
aW5kb3cuc3R5bGVNZWRpYS5hZGRRdWVyeUxpc3RlbmVyKHF1ZXJpZXNbaV1bMF0sIGNhbGxiYWNr
KSkgeworICAgICAgICAgICAgbG9nKCJhZGRpbmcgdGhlIHNhbWUgbGlzdGVuZXIgdHdpY2Ugc2hv
dWxkIHJldHVybiB0aGUgc2FtZSBpZCBidXQgaXQgZGlkIG5vdC4iKTsKKyAgICAgICAgICAgIHJl
c3VsdCA9IGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgdmFyIHNldFZpZXdNb2RlID0g
ZnVuY3Rpb24obW9kZSkgeworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9k
ZU1lZGlhRmVhdHVyZShtb2RlKTsKKyAgICAgICAgdmFyIGkgPSAxOworICAgICAgICBmb3IgKDsg
aSA8IGFyZ3VtZW50cy5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgIGV4cGVjdGVkQ2FsbGJhY2tz
LnB1c2goYXJndW1lbnRzW2ldKTsKKyAgICB9OworCisgICAgc2V0Vmlld01vZGUoIm1pbmltaXpl
ZCIpOworICAgIHNldFZpZXdNb2RlKCJ3aW5kb3dlZCIsIFswLCBmYWxzZV0sIFsyLCBmYWxzZV0p
OworICAgIHNldFZpZXdNb2RlKCJtYXhpbWl6ZWQiLCBbMSwgdHJ1ZV0sIFsyLCB0cnVlXSwgWzMs
IGZhbHNlXSk7CisgICAgc2V0Vmlld01vZGUoImZsb2F0aW5nIiwgWzEsIGZhbHNlXSwgWzIsIGZh
bHNlXSk7CisKKyAgICB3aW5kb3cuc3R5bGVNZWRpYS5yZW1vdmVRdWVyeUxpc3RlbmVyKHF1ZXJp
ZXNbMl1bMV0pOworICAgIHNldFZpZXdNb2RlKCJtaW5pbWl6ZWQiLCBbMCwgdHJ1ZV0sIFszLCB0
cnVlXSk7CisKKyAgICBxdWVyaWVzWzJdWzFdID0gd2luZG93LnN0eWxlTWVkaWEuYWRkUXVlcnlM
aXN0ZW5lcihxdWVyaWVzWzJdWzBdLCBjcmVhdGVDYWxsYmFjaygyKSk7CisgICAgc2V0Vmlld01v
ZGUoIndpbmRvd2VkIiwgWzAsIGZhbHNlXSwgWzIsIGZhbHNlXSk7CisgICAgc2V0Vmlld01vZGUo
Im1heGltaXplZCIsIFsxLCB0cnVlXSwgWzMsIGZhbHNlXSwgWzIsIHRydWVdKTsKKworICAgIGlm
IChhY3R1YWxDYWxsYmFja3MubGVuZ3RoICE9PSBleHBlY3RlZENhbGxiYWNrcy5sZW5ndGgpIHsK
KyAgICAgICAgbG9nKGV4cGVjdGVkQ2FsbGJhY2tzLmxlbmd0aCArICIgY2FsbGJhY2tzIHdlcmUg
ZXhwZWN0ZWQgYnV0ICIgKyBhY3R1YWxDYWxsYmFja3MubGVuZ3RoICsgIiBoYXBwZW5lZC4iKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHZhciBjaGVja0l0ZW0gPSBmdW5jdGlvbiAo
KSB7CisgICAgICAgIHZhciB3cml0ZSA9IGZ1bmN0aW9uIChpdGVtKSB7IHJldHVybiAnWycgKyBp
dGVtWzBdICsgJywnICsgaXRlbVsxXSArICddJzsgfQorICAgICAgICByZXR1cm4gZnVuY3Rpb24g
KG51bSwgYWN0dWFsLCBleHBlY3RlZCkgeworICAgICAgICAgICAgaWYgKGFjdHVhbFswXSA9PT0g
ZXhwZWN0ZWRbMF0gJiYgYWN0dWFsWzFdID09PSBleHBlY3RlZFsxXSkKKyAgICAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIGxvZygnY2FsbGJhY2sgJyArIG51bSArICcgd2Fz
IGV4cGVjdGVkIHRvIGJlICcgKyB3cml0ZShleHBlY3RlZCkgKyAnIGJ1dCBpbnN0ZWFkIHdhcyAn
ICsgd3JpdGUoYWN0dWFsKSArICcuJyk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIH07CisgICAgfSgpOworCisgICAgdmFyIGk7CisgICAgZm9yIChpID0gMDsgaSA8IGFjdHVh
bENhbGxiYWNrcy5sZW5ndGg7ICsraSkKKyAgICAgICAgcmVzdWx0ID0gY2hlY2tJdGVtKGkgKyAx
LCBhY3R1YWxDYWxsYmFja3NbaV0sIGV4cGVjdGVkQ2FsbGJhY2tzW2ldKSAmJiByZXN1bHQ7CisK
KyAgICBpZiAocmVzdWx0KQorICAgICAgICBvdXRwdXQuaW5uZXJIVE1MICs9ICJQQVNTLiIKK30K
KworPC9zY3JpcHQ+CisKKzxib2R5IG9ubG9hZD0idGVzdCgpIj4KKyAgICA8ZGl2IGlkPSJyZXN1
bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkOGRhNjQxLi45NmM3NmU2IDEwMDY0NAotLS0g
YS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2
IEBACisyMDEwLTA1LTMxICBMdWl6IEFnb3N0aW5pICA8bHVpei5hZ29zdGluaUBvcGVuYm9zc2Eu
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1l
ZGl1bSBsaXN0ZW5lcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTM3MjA1CisKKyAgICAgICAgQXMgdGhlIHNwZWNpZmljYXRpb24gc3RpbGwgb25nb2lu
ZyB0aGlzIHBhdGNoIGlzIGp1c3QgYSB0ZXN0LiBNYWluIG9iamVjdGl2ZSBpcyB0bworICAgICAg
ICBzZWUgaG93IGl0IGdvZXMgaW4gZGlmZmVyZW50IHBsYXRmb3JtcyBhbmQgdG8gdHJ5IHRvIGZp
bmQgaGVscCB3aXRoIHRoZSBiaW5kaW5ncy4KKworICAgICAgICBKUyBiaW5kaW5nIHNlZW1zIHRv
IGJlIG9rIGJ1dCBJIG5lZWQgZmVlZGJhY2suCisKKyAgICAgICAgVGVzdDogZmFzdC9tZWRpYS9x
dWVyeS1jYWxsYmFja3MuaHRtbAorCisgICAgICAgICogV2ViQ29yZS5wcmk6CisgICAgICAgICog
V2ViQ29yZS5wcm86CisgICAgICAgICogYmluZGluZ3MvanMvSlNRdWVyeUNhbGxiYWNrLmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpKU1F1ZXJ5Q2FsbGJhY2s6Om9wZXJhdG9yPT0pOgor
ICAgICAgICAoV2ViQ29yZTo6SlNRdWVyeUNhbGxiYWNrOjpoYW5kbGVFdmVudCk6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNRdWVyeUNhbGxiYWNrLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6SlNRdWVyeUNhbGxiYWNrOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SlNRdWVyeUNh
bGxiYWNrOjpKU1F1ZXJ5Q2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAqIGNzcy9RdWVyeUNhbGxiYWNrLmg6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6UXVlcnlDYWxsYmFjazo6flF1ZXJ5Q2FsbGJhY2spOgorICAgICAg
ICAqIGNzcy9RdWVyeUNhbGxiYWNrLmlkbDogQWRkZWQuCisgICAgICAgICogY3NzL1N0eWxlTWVk
aWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVNZWRpYTo6UXVlcnk6OlF1ZXJ5KToKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlTWVkaWE6OlF1ZXJ5Ojp+UXVlcnkpOgorICAgICAgICAoV2Vi
Q29yZTo6U3R5bGVNZWRpYTo6UXVlcnk6OmV2YWx1YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlTWVkaWE6Okxpc3RlbmVyOjpMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZU1l
ZGlhOjpMaXN0ZW5lcjo6aGFuZGxlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVNZWRp
YTo6U3R5bGVNZWRpYSk6CisgICAgICAgIChXZWJDb3JlOjpwYXJzZSk6CisgICAgICAgIChXZWJD
b3JlOjpzdHJpbmdDb21wYXJlKToKKyAgICAgICAgKFdlYkNvcmU6OndyaXRlTWVkaWFMaXN0S2V5
KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlTWVkaWE6OmFkZFF1ZXJ5TGlzdGVuZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGVNZWRpYTo6bGlzdGVuZXJDb21wYXJlKToKKyAgICAgICAgKFdl
YkNvcmU6OlN0eWxlTWVkaWE6OnJlbW92ZVF1ZXJ5TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6U3R5bGVNZWRpYTo6cHJlcGFyZUV2YWx1YXRvcik6CisgICAgICAgIChXZWJDb3JlOjpTdHls
ZU1lZGlhOjptYXRjaFF1ZXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlTWVkaWE6OnN0eWxl
Q2hhbmdlZCk6CisgICAgICAgICogY3NzL1N0eWxlTWVkaWEuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlN0eWxlTWVkaWE6OlF1ZXJ5Ojp2YWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZU1lZGlh
OjpRdWVyeTo6Y2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZU1lZGlhOjpRdWVyeTo6
a2V5KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlTWVkaWE6Okxpc3RlbmVyOjpxdWVyeSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZU1lZGlhOjpMaXN0ZW5lcjo6Y2FsbGJhY2spOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGVNZWRpYTo6TGlzdGVuZXI6OmlkKToKKyAgICAgICAgKiBjc3MvU3R5
bGVNZWRpYS5pZGw6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50Ojp1cGRhdGVTdHlsZVNlbGVjdG9yKToKKwogMjAxMC0wNi0wMSAgQWRhbSBM
YW5nbGV5ICA8YWdsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNl
aWRlbC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKaW5kZXggYzY2YTMyYi4uNGFhNjQ2YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTE5LDYgKzE5LDcgQEAKICAgICAg
ICAgICAgICdjc3MvQ1NTVmFyaWFibGVzUnVsZS5pZGwnLAogICAgICAgICAgICAgJ2Nzcy9Db3Vu
dGVyLmlkbCcsCiAgICAgICAgICAgICAnY3NzL01lZGlhTGlzdC5pZGwnLAorICAgICAgICAgICAg
J2Nzcy9RdWVyeUNhbGxiYWNrLmlkbCcsCiAgICAgICAgICAgICAnY3NzL1JlY3QuaWRsJywKICAg
ICAgICAgICAgICdjc3MvUkdCQ29sb3IuaWRsJywKICAgICAgICAgICAgICdjc3MvU3R5bGVNZWRp
YS5pZGwnLApAQCAtOTA1LDYgKzkwNiw4IEBACiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvVjhO
b2RlRmlsdGVyQ29uZGl0aW9uLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L1Y4UHJveHku
Y3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9WOFByb3h5LmgnLAorICAgICAgICAgICAg
J2JpbmRpbmdzL3Y4L1Y4UXVlcnlDYWxsYmFjay5jcHAnLAorICAgICAgICAgICAgJ2JpbmRpbmdz
L3Y4L1Y4UXVlcnlDYWxsYmFjay5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9WOFNWR1BP
RFR5cGVXcmFwcGVyLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L1Y4VXRpbGl0aWVzLmNw
cCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuaCcsCmRpZmYgLS1naXQg
YS9XZWJDb3JlL1dlYkNvcmUucHJpIGIvV2ViQ29yZS9XZWJDb3JlLnByaQppbmRleCA5Yjg3M2Zl
Li44NmY0NzgzIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJpCisrKyBiL1dlYkNvcmUv
V2ViQ29yZS5wcmkKQEAgLTI0MSw2ICsyNDEsNyBAQCBJRExfQklORElOR1MgKz0gXAogICAgIGNz
cy9DU1NWYXJpYWJsZXNEZWNsYXJhdGlvbi5pZGwgXAogICAgIGNzcy9DU1NWYXJpYWJsZXNSdWxl
LmlkbCBcCiAgICAgY3NzL01lZGlhTGlzdC5pZGwgXAorIyAgICBjc3MvUXVlcnlDYWxsYmFjay5p
ZGwgXAogICAgIGNzcy9SZWN0LmlkbCBcCiAgICAgY3NzL1JHQkNvbG9yLmlkbCBcCiAgICAgY3Nz
L1N0eWxlTWVkaWEuaWRsIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJD
b3JlL1dlYkNvcmUucHJvCmluZGV4IDhkMjVjOGQuLjk0NmQ1YzUgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMzU2LDYgKzM1Niw3
IEBAIFNPVVJDRVMgKz0gXAogICAgIGJpbmRpbmdzL2pzL0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5j
cHAgXAogICAgIGJpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAgXAogICAg
IGJpbmRpbmdzL2pzL0pTUG9wU3RhdGVFdmVudEN1c3RvbS5jcHAgXAorICAgIGJpbmRpbmdzL2pz
L0pTUXVlcnlDYWxsYmFjay5jcHAgXAogICAgIGJpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVy
cm9ySGFuZGxlci5jcHAgXAogICAgIGJpbmRpbmdzL2pzL1NjcmlwdEFycmF5LmNwcCBcCiAgICAg
YmluZGluZ3MvanMvU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmNwcCBcCkBAIC0xMDY5LDYgKzEwNzAs
NyBAQCBIRUFERVJTICs9IFwKICAgICBiaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDb25kaXRpb24u
aCBcCiAgICAgYmluZGluZ3MvanMvSlNPcHRpb25Db25zdHJ1Y3Rvci5oIFwKICAgICBiaW5kaW5n
cy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuaCBcCisgICAgYmluZGluZ3MvanMvSlNRdWVy
eUNhbGxiYWNrLmggXAogICAgIGJpbmRpbmdzL2pzL0pTU2hhcmVkV29ya2VyQ29uc3RydWN0b3Iu
aCBcCiAgICAgYmluZGluZ3MvanMvSlNTdG9yYWdlQ3VzdG9tLmggXAogICAgIGJpbmRpbmdzL2pz
L0pTV2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0b3IuaCBcCkBAIC0xMTY4LDYgKzExNzAsNyBAQCBI
RUFERVJTICs9IFwKICAgICBjc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5oIFwKICAgICBjc3MvTWVk
aWFRdWVyeUV4cC5oIFwKICAgICBjc3MvTWVkaWFRdWVyeS5oIFwKKyAgICBjc3MvUXVlcnlDYWxs
YmFjay5oIFwKICAgICBjc3MvUkdCQ29sb3IuaCBcCiAgICAgY3NzL1NoYWRvd1ZhbHVlLmggXAog
ICAgIGNzcy9TdHlsZUJhc2UuaCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
UXVlcnlDYWxsYmFjay5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUXVlcnlDYWxsYmFjay5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWQ1NGVmNwotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNRdWVyeUNhbGxiYWNrLmNwcApAQCAtMCww
ICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJKU1F1ZXJ5Q2FsbGJhY2suaCIKKworI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgor
I2luY2x1ZGUgIlNjcmlwdFZhbHVlLmgiCisKKyNpbmNsdWRlIDxydW50aW1lL0FyZ0xpc3QuaD4K
KyNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgorCit1c2luZyBuYW1lc3BhY2UgSlNDOworCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2Jvb2wgSlNRdWVyeUNhbGxiYWNrOjppc0VxdWFsKFNjcmlw
dFN0YXRlKiBzdGF0ZSwgY29uc3QgUXVlcnlDYWxsYmFjayYgb3RoZXIpIGNvbnN0Cit7CisgICAg
Y29uc3QgSlNRdWVyeUNhbGxiYWNrKiBjYWxsYmFjayA9IHN0YXRpY19jYXN0PGNvbnN0IEpTUXVl
cnlDYWxsYmFjayo+KCZvdGhlcik7CisgICAgaWYgKCFjYWxsYmFjaykKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgcmV0dXJuIG1fY2FsbGJhY2suaXNFcXVhbChzdGF0ZSwgY2FsbGJhY2st
Pm1fY2FsbGJhY2spOworfQorCit2b2lkIEpTUXVlcnlDYWxsYmFjazo6aGFuZGxlRXZlbnQoU2Ny
aXB0U3RhdGUqIHN0YXRlLCBpbnQgcXVlcnlJZCwgYm9vbCBxdWVyeVJlc3VsdCkKK3sKKyAgICBK
U0xvY2sgbG9jayhTaWxlbmNlQXNzZXJ0aW9uc09ubHkpOworCisgICAgQ2FsbERhdGEgY2FsbERh
dGE7CisgICAgQ2FsbFR5cGUgY2FsbFR5cGUgPSBtX2NhbGxiYWNrLmpzVmFsdWUoKS5nZXRDYWxs
RGF0YShjYWxsRGF0YSk7CisgICAgaWYgKGNhbGxUeXBlID09IENhbGxUeXBlTm9uZSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgSlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmd1bWVudHM7Cisg
ICAgYXJndW1lbnRzLmFwcGVuZChqc051bWJlcihzdGF0ZSwgcXVlcnlJZCkpOworICAgIGFyZ3Vt
ZW50cy5hcHBlbmQoanNCb29sZWFuKHF1ZXJ5UmVzdWx0KSk7CisKKyAgICBKU0M6OmNhbGwoc3Rh
dGUsIG1fY2FsbGJhY2suanNWYWx1ZSgpLCBjYWxsVHlwZSwgY2FsbERhdGEsIG1fY2FsbGJhY2su
anNWYWx1ZSgpLCBhcmd1bWVudHMpOworCisgICAgaWYgKHN0YXRlLT5oYWRFeGNlcHRpb24oKSkK
KyAgICAgICAgcmVwb3J0RXhjZXB0aW9uKHN0YXRlLCBzdGF0ZS0+ZXhjZXB0aW9uKCkpOworCit9
CisKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNRdWVyeUNhbGxiYWNrLmgg
Yi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUXVlcnlDYWxsYmFjay5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjYwYTc4MzgKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTUXVlcnlDYWxsYmFjay5oCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBD
T01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENP
TVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBKU1F1ZXJ5Q2FsbGJhY2tfaAorI2RlZmluZSBKU1F1ZXJ5Q2Fs
bGJhY2tfaAorCisjaW5jbHVkZSAiUXVlcnlDYWxsYmFjay5oIgorI2luY2x1ZGUgIlNjcmlwdFZh
bHVlLmgiCisKKyNpbmNsdWRlIDxydW50aW1lL0pTVmFsdWUuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBKU1F1ZXJ5Q2FsbGJhY2sgOiBwdWJsaWMgUXVlcnlDYWxsYmFjayB7Citw
dWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UXVlcnlDYWxsYmFjaz4gY3JlYXRlKEpTQzo6
SlNWYWx1ZSBjYWxsYmFjaykKKyAgICB7CisgICAgICAgIEpTQzo6Q2FsbERhdGEgY2FsbERhdGE7
CisgICAgICAgIEpTQzo6Q2FsbFR5cGUgY2FsbFR5cGUgPSBjYWxsYmFjay5nZXRDYWxsRGF0YShj
YWxsRGF0YSk7CisgICAgICAgIGlmIChjYWxsVHlwZSA9PSBKU0M6OkNhbGxUeXBlTm9uZSkKKyAg
ICAgICAgICAgIHJldHVybiAwOworCisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSlNRdWVy
eUNhbGxiYWNrKGNhbGxiYWNrKSk7CisgICAgfQorCisKKyAgICB2aXJ0dWFsIGJvb2wgaXNFcXVh
bChTY3JpcHRTdGF0ZSosIGNvbnN0IFF1ZXJ5Q2FsbGJhY2smKSBjb25zdDsKKyAgICB2aXJ0dWFs
IHZvaWQgaGFuZGxlRXZlbnQoU2NyaXB0U3RhdGUqLCBpbnQsIGJvb2wpOworCitwcml2YXRlOgor
ICAgIFNjcmlwdFZhbHVlIG1fY2FsbGJhY2s7CisgICAgSlNRdWVyeUNhbGxiYWNrKEpTQzo6SlNW
YWx1ZSBjYWxsYmFjaykgOiBtX2NhbGxiYWNrKGNhbGxiYWNrKSB7fQorfTsKKworfQorCisjZW5k
aWYgLy8gSlNRdWVyeUNhbGxiYWNrX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtCmluZGV4IGJmZmQwNDYuLjIxYzE3ODAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtMjI2MCw2ICsyMjYwLDcgQEAgbXkgJW5h
dGl2ZVR5cGUgPSAoCiAgICAgIkRPTVN0cmluZyIgPT4gImNvbnN0IFN0cmluZyYiLAogICAgICJE
T01PYmplY3QiID0+ICJTY3JpcHRWYWx1ZSIsCiAgICAgIk5vZGVGaWx0ZXIiID0+ICJSZWZQdHI8
Tm9kZUZpbHRlcj4iLAorICAgICJRdWVyeUNhbGxiYWNrIiA9PiAiUmVmUHRyPFF1ZXJ5Q2FsbGJh
Y2s+IiwKICAgICAiU2VyaWFsaXplZFNjcmlwdFZhbHVlIiA9PiAiUmVmUHRyPFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZT4iLAogICAgICJTVkdBbmdsZSIgPT4gIlNWR0FuZ2xlIiwKICAgICAiU1ZHTGVu
Z3RoIiA9PiAiU1ZHTGVuZ3RoIiwKQEAgLTIzMjgsNiArMjMyOSwxMSBAQCBzdWIgSlNWYWx1ZVRv
TmF0aXZlCiAgICAgICAgIHJldHVybiAiU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUoZXhl
YywgJHZhbHVlKSI7CiAgICAgfQogCisgICAgaWYgKCR0eXBlIGVxICJRdWVyeUNhbGxiYWNrIikg
eworICAgICAgICAkaW1wbEluY2x1ZGVzeyJKU1F1ZXJ5Q2FsbGJhY2suaCJ9ID0gMTsKKyAgICAg
ICAgcmV0dXJuICJKU1F1ZXJ5Q2FsbGJhY2s6OmNyZWF0ZSgkdmFsdWUpIjsKKyAgICB9CisKICAg
ICAkaW1wbEluY2x1ZGVzeyJGbG9hdFBvaW50LmgifSA9IDEgaWYgJHR5cGUgZXEgIlNWR1BvaW50
IjsKICAgICAkaW1wbEluY2x1ZGVzeyJGbG9hdFJlY3QuaCJ9ID0gMSBpZiAkdHlwZSBlcSAiU1ZH
UmVjdCI7CiAgICAgJGltcGxJbmNsdWRlc3siSFRNTE9wdGlvbkVsZW1lbnQuaCJ9ID0gMSBpZiAk
dHlwZSBlcSAiSFRNTE9wdGlvbkVsZW1lbnQiOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbSBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9yVjgucG0KaW5kZXggYzkzYzI1YS4uMTEzNTdkMyAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQorKysgYi9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCkBAIC0yNzUxLDYgKzI3NTEsNyBAQCBz
dWIgR2V0TmF0aXZlVHlwZQogICAgICMgdGVtcG9yYXJ5IGhhY2sKICAgICByZXR1cm4gIlJlZlB0
cjxOb2RlRmlsdGVyPiIgaWYgJHR5cGUgZXEgIk5vZGVGaWx0ZXIiOwogCisgICAgcmV0dXJuICJS
ZWZQdHI8UXVlcnlDYWxsYmFjaz4iIGlmICR0eXBlIGVxICJRdWVyeUNhbGxiYWNrIjsKICAgICBy
ZXR1cm4gIlJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IiBpZiAkdHlwZSBlcSAiU2VyaWFs
aXplZFNjcmlwdFZhbHVlIjsKIAogICAgICMgbmVjZXNzYXJ5IGFzIHJlc29sdmVycyBjb3VsZCBi
ZSBjb25zdHJ1Y3RlZCBvbiBmbHkuCkBAIC0yODM5LDYgKzI4NDAsMTEgQEAgc3ViIEpTVmFsdWVU
b05hdGl2ZQogICAgICAgICByZXR1cm4gIlNjcmlwdFZhbHVlKCR2YWx1ZSkiOwogICAgIH0KIAor
ICAgIGlmICgkdHlwZSBlcSAiUXVlcnlDYWxsYmFjayIpIHsKKyAgICAgICAgJGltcGxJbmNsdWRl
c3siVjhRdWVyeUNhbGxiYWNrLmgifSA9IDE7CisgICAgICAgIHJldHVybiAiVjhRdWVyeUNhbGxi
YWNrOjpjcmVhdGUoJHZhbHVlKSI7CisgICAgfQorCiAgICAgaWYgKCR0eXBlIGVxICJOb2RlRmls
dGVyIikgewogICAgICAgICByZXR1cm4gIlY4RE9NV3JhcHBlcjo6d3JhcE5hdGl2ZU5vZGVGaWx0
ZXIoJHZhbHVlKSI7CiAgICAgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFF1
ZXJ5Q2FsbGJhY2suY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFF1ZXJ5Q2FsbGJhY2suY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI5YzI2MzEKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UXVlcnlDYWxsYmFjay5jcHAKQEAgLTAsMCAr
MSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQv
b3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiVjhRdWVyeUNhbGxiYWNrLmgiCisKKyNpbmNsdWRlICJOb2RlLmgiCisjaW5jbHVkZSAi
Tm9kZUZpbHRlci5oIgorI2luY2x1ZGUgIlNjcmlwdFN0YXRlLmgiCisjaW5jbHVkZSAiVjhQcm94
eS5oIgorCisjaW5jbHVkZSA8d3RmL093bkFycmF5UHRyLmg+CisKK2Jvb2wgVjhRdWVyeUNhbGxi
YWNrOjppc0VxdWFsKFNjcmlwdFN0YXRlKiBzdGF0ZSwgY29uc3QgUXVlcnlDYWxsYmFjayYgb3Ro
ZXIpIGNvbnN0Cit7CisgICAgY29uc3QgVjhRdWVyeUNhbGxiYWNrKiBjYWxsYmFjayA9IHN0YXRp
Y19jYXN0PGNvbnN0IFY4UXVlcnlDYWxsYmFjayo+KCZvdGhlcik7CisgICAgaWYgKCFjYWxsYmFj
aykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIG1fY2FsbGJhY2suaXNFcXVh
bChzdGF0ZSwgY2FsbGJhY2stPm1fY2FsbGJhY2spOworfQorCit2b2lkIFY4UXVlcnlDYWxsYmFj
azo6aGFuZGxlRXZlbnQoU2NyaXB0U3RhdGUqIHN0YXRlLCBpbnQgaWQsIGJvb2wgcXVlcnlSZXN1
bHQpCit7CisgICAgQVNTRVJUKHY4OjpDb250ZXh0OjpJbkNvbnRleHQoKSk7CisKKyAgICBpZiAo
IW1fY2FsbGJhY2stPnY4VmFsdWUoKS0+SXNGdW5jdGlvbigpKQorICAgICAgICByZXR1cm47CisK
KyAgICB2ODo6VHJ5Q2F0Y2ggZXhjZXB0aW9uQ2F0Y2hlcjsKKworICAgIHY4OjpIYW5kbGU8djg6
Ok9iamVjdD4gb2JqZWN0ID0gdjg6OkNvbnRleHQ6OkdldEN1cnJlbnQoKS0+R2xvYmFsKCk7Cisg
ICAgdjg6OkxvY2FsPHY4OjpGdW5jdGlvbj4gZnVuY3Rpb24odjg6OkZ1bmN0aW9uOjpDYXN0KCpt
X2NhbGxiYWNrLT52OFZhbHVlKCkpKTsKKworICAgIE93bkFycmF5UHRyPHY4OjpIYW5kbGU8djg6
OlZhbHVlPiA+IGFyZ3MobmV3IHY4OjpIYW5kbGU8djg6OlZhbHVlPlsyXSk7CisgICAgYXJnc1sw
XSA9IHY4OjpOdW1iZXI6Ok5ldyhhcmd1bWVudCk7CisgICAgYXJnc1sxXSA9IHY4Qm9vbGVhbihx
dWVyeVJlc3VsdCk7CisKKyAgICBWOFByb3h5OjpjYWxsRnVuY3Rpb25XaXRob3V0RnJhbWUoZnVu
Y3Rpb24sIG9iamVjdCwgMiwgYXJncy5nZXQoKSk7CisKKyAgICBpZiAoZXhjZXB0aW9uQ2F0Y2hl
ci5IYXNDYXVnaHQoKSkKKyAgICAgICAgc3RhdGUtPnNldEV4Y2VwdGlvbihleGNlcHRpb25DYXRj
aGVyLkV4Y2VwdGlvbigpKTsKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhR
dWVyeUNhbGxiYWNrLmggYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UXVlcnlDYWxsYmFjay5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI0ZGNmMWYKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UXVlcnlDYWxsYmFjay5oCkBAIC0wLDAgKzEsNTYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBWOFF1ZXJ5Q2FsbGJhY2tfaAorI2Rl
ZmluZSBWOFF1ZXJ5Q2FsbGJhY2tfaAorCisjaW5jbHVkZSAiUXVlcnlDYWxsYmFjay5oIgorI2lu
Y2x1ZGUgIlNjcmlwdFZhbHVlLmgiCisKKyNpbmNsdWRlIDx2OC5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIFY4UXVlcnlDYWxsYmFjayA6IHB1YmxpYyBRdWVyeUNhbGxiYWNrIHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxRdWVyeUNhbGxiYWNrPiBjcmVhdGUodjg6
OkhhbmRsZTx2ODo6VmFsdWU+IGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgaWYgKCFjYWxsYmFj
ay0+SXNGdW5jdGlvbigpKQorICAgICAgICAgICAgcmV0dXJuIDA7CisKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBWOFF1ZXJ5Q2FsbGJhY2soY2FsbGJhY2spKTsKKyAgICB9CisKKyAgICBi
b29sIGlzRXF1YWwoU2NyaXB0U3RhdGUqIHN0YXRlLCBjb25zdCBRdWVyeUNhbGxiYWNrJiBvdGhl
cikgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KFNjcmlwdFN0YXRlKiwgaW50
LCBib29sKTsKKworcHJpdmF0ZToKKyAgICBTY3JpcHRWYWx1ZSBtX2NhbGxiYWNrOworICAgIFY4
UXVlcnlDYWxsYmFjayh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY2FsbGJhY2spIDogbV9jYWxsYmFj
ayhjYWxsYmFjaykge30KK307CisKK30KKworI2VuZGlmIC8vIFY4UXVlcnlDYWxsYmFja19oCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9RdWVyeUNhbGxiYWNrLmggYi9XZWJDb3JlL2Nzcy9RdWVy
eUNhbGxiYWNrLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWU5MGNkZAot
LS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvY3NzL1F1ZXJ5Q2FsbGJhY2suaApAQCAtMCwwICsx
LDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorKgorKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisqIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorKiB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
CisqCisqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAorKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorKiBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyoKKyogWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKiBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bworKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
KyoKKyovCisjaWZuZGVmIFF1ZXJ5Q2FsbGJhY2tfaAorI2RlZmluZSBRdWVyeUNhbGxiYWNrX2gK
KworI2luY2x1ZGUgIlNjcmlwdFN0YXRlLmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBRdWVyeUNhbGxiYWNrIDogcHVibGljIFJl
ZkNvdW50ZWQ8UXVlcnlDYWxsYmFjaz4geworcHVibGljOgorICAgIHZpcnR1YWwgflF1ZXJ5Q2Fs
bGJhY2soKSB7IH0KKworICAgIHZpcnR1YWwgYm9vbCBpc0VxdWFsKFNjcmlwdFN0YXRlKiwgY29u
c3QgUXVlcnlDYWxsYmFjayYpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZl
bnQoU2NyaXB0U3RhdGUqLCBpbnQsIGJvb2wpID0gMDsKK307CisKK30KKworI2VuZGlmIC8vIFF1
ZXJ5Q2FsbGJhY2tfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvUXVlcnlDYWxsYmFjay5pZGwg
Yi9XZWJDb3JlL2Nzcy9RdWVyeUNhbGxiYWNrLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi4wZTYxOTg4Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9jc3MvUXVlcnlD
YWxsYmFjay5pZGwKQEAgLTAsMCArMSwzMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1
bGUgdmlldyB7CisgICAgUXVlcnlDYWxsYmFjayB7CisgICAgICAgIHZvaWQgaGFuZGxlRXZlbnQo
aW4gbG9uZyBpZCwgaW4gYm9vbGVhbiBxdWVyeVJlc3VsdCk7CisgICAgfTsKK30KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvY3NzL1N0eWxlTWVkaWEuY3BwIGIvV2ViQ29yZS9jc3MvU3R5bGVNZWRpYS5j
cHAKaW5kZXggNmNiNjYyZi4uNDMwZjY5MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvU3R5bGVN
ZWRpYS5jcHAKKysrIGIvV2ViQ29yZS9jc3MvU3R5bGVNZWRpYS5jcHAKQEAgLTEsNSArMSw2IEBA
CiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1
YnNpZGlhcnkoLWllcykKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzAsMTIg
KzMxLDU3IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNp
bmNsdWRlICJNZWRpYUxpc3QuaCIKKyNpbmNsdWRlICJNZWRpYVF1ZXJ5LmgiCiAjaW5jbHVkZSAi
TWVkaWFRdWVyeUV2YWx1YXRvci5oIgorI2luY2x1ZGUgIlN0cmluZ0J1aWxkZXIuaCIKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCitzdGF0aWMgaW50IGxpc3RlbmVySWRzID0gMDsKKworLy8gU3R5
bGVNZWRpYTo6UXVlcnkKKworU3R5bGVNZWRpYTo6UXVlcnk6OlF1ZXJ5KFBhc3NSZWZQdHI8TWVk
aWFMaXN0PiBtZWRpYSwgUGFzc093blB0cjxNZWRpYVF1ZXJ5RXZhbHVhdG9yPiBldmFsdWF0b3Is
IGludCYgcm91bmQsIGNvbnN0IFN0cmluZyYga2V5KQorICAgIDogbV9tZWRpYShtZWRpYSkKKyAg
ICAsIG1fY3VycmVudFZhbHVlKGV2YWx1YXRvciAmJiBldmFsdWF0b3ItPmV2YWwobV9tZWRpYS5n
ZXQoKSkpCisgICAgLCBtX2N1cnJlbnRSb3VuZChyb3VuZCkKKyAgICAsIG1fY2hhbmdlUm91bmQo
bV9jdXJyZW50Um91bmQgLSAxKQorICAgICwgbV9rZXkoa2V5KQoreworfQorCitTdHlsZU1lZGlh
OjpRdWVyeTo6flF1ZXJ5KCkKK3sKK30KKwordm9pZCBTdHlsZU1lZGlhOjpRdWVyeTo6ZXZhbHVh
dGUoTWVkaWFRdWVyeUV2YWx1YXRvciogZXZhbHVhdG9yKQoreworICAgIGJvb2wgbmV3VmFsdWUg
PSBldmFsdWF0b3IgJiYgZXZhbHVhdG9yLT5ldmFsKG1fbWVkaWEuZ2V0KCkpOworICAgIGlmIChu
ZXdWYWx1ZSAhPSBtX2N1cnJlbnRWYWx1ZSkgeworICAgICAgICBtX2N1cnJlbnRWYWx1ZSA9IG5l
d1ZhbHVlOworICAgICAgICBtX2NoYW5nZVJvdW5kID0gbV9jdXJyZW50Um91bmQ7CisgICAgfQor
fQorCisvLyBTdHlsZU1lZGlhOjpMaXN0ZW5lcgorCitTdHlsZU1lZGlhOjpMaXN0ZW5lcjo6TGlz
dGVuZXIoUGFzc1JlZlB0cjxRdWVyeT4gcXVlcnksIFBhc3NSZWZQdHI8UXVlcnlDYWxsYmFjaz4g
Y2FsbGJhY2spCisgICAgOiBtX3F1ZXJ5KHF1ZXJ5KQorICAgICwgbV9jYWxsYmFjayhjYWxsYmFj
aykKKyAgICAsIG1faWQoKytsaXN0ZW5lcklkcykKK3t9CisKK3ZvaWQgU3R5bGVNZWRpYTo6TGlz
dGVuZXI6OmhhbmRsZUV2ZW50KFNjcmlwdFN0YXRlKiBleGVjKQoreworICAgIGlmIChtX3F1ZXJ5
LT5jaGFuZ2VkKCkpCisgICAgICAgIG1fY2FsbGJhY2stPmhhbmRsZUV2ZW50KGV4ZWMsIG1faWQs
IG1fcXVlcnktPnZhbHVlKCkpOworfQorCisvLyBTdHlsZU1lZGlhCisKIFN0eWxlTWVkaWE6OlN0
eWxlTWVkaWEoRnJhbWUqIGZyYW1lKQogICAgIDogbV9mcmFtZShmcmFtZSkKKyAgICAsIG1fY3Vy
cmVudFJvdW5kKDApCiB7CiB9CiAKQEAgLTQ4LDMwICs5NCwxNjYgQEAgU3RyaW5nIFN0eWxlTWVk
aWE6OnR5cGUoKSBjb25zdAogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAotYm9vbCBTdHlsZU1l
ZGlhOjptYXRjaE1lZGl1bShjb25zdCBTdHJpbmcmIHF1ZXJ5KSBjb25zdAorc3RhdGljIFBhc3NS
ZWZQdHI8TWVkaWFMaXN0PiBwYXJzZShjb25zdCBTdHJpbmcmIHF1ZXJ5KQoreworICAgIFJlZlB0
cjxNZWRpYUxpc3Q+IG1lZGlhID0gTWVkaWFMaXN0OjpjcmVhdGUoKTsKKyAgICBFeGNlcHRpb25D
b2RlIGVjID0gMDsKKyAgICBtZWRpYS0+c2V0TWVkaWFUZXh0KHF1ZXJ5LCBlYyk7CisgICAgaWYg
KGVjKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbWVkaWE7Cit9CisKK3N0YXRpYyBi
b29sIHN0cmluZ0NvbXBhcmUoY29uc3QgU3RyaW5nJiBhLCBjb25zdCBTdHJpbmcmIGIpCit7Cisg
ICAgcmV0dXJuIGNvZGVQb2ludENvbXBhcmUoYSwgYikgPCAwOworfQorCitzdGF0aWMgU3RyaW5n
IHdyaXRlTWVkaWFMaXN0S2V5KE1lZGlhTGlzdCogbWVkaWEpCit7CisgICAgVmVjdG9yPFN0cmlu
Zz4gbGlzdDsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1lZGlhLT5tZWRpYVF1ZXJpZXMo
KS5zaXplKCk7ICsraSkKKyAgICAgICAgbGlzdC5hcHBlbmQobWVkaWEtPm1lZGlhUXVlcmllcygp
W2ldLT5jc3NUZXh0KCkpOworCisgICAgaWYgKGxpc3QuaXNFbXB0eSgpKQorICAgICAgICByZXR1
cm4gU3RyaW5nKCk7CisKKyAgICBzdGQ6OnNvcnQobGlzdC5iZWdpbigpLCBsaXN0LmVuZCgpLCBz
dHJpbmdDb21wYXJlKTsKKyAgICBTdHJpbmdCdWlsZGVyIHJlc3VsdDsKKyAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IGxpc3Quc2l6ZSgpOyArK2kpCisgICAgICAgIHJlc3VsdC5hcHBlbmQobGlz
dFtpXSk7CisgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworfQorCitpbnQgU3R5bGVNZWRp
YTo6YWRkUXVlcnlMaXN0ZW5lcihjb25zdCBTdHJpbmcmIG1lZGlhUXVlcnksIFBhc3NSZWZQdHI8
UXVlcnlDYWxsYmFjaz4gY2FsbGJhY2spCit7CisgICAgaWYgKCFjYWxsYmFjaykKKyAgICAgICAg
cmV0dXJuIDA7CisKKyAgICBSZWZQdHI8TWVkaWFMaXN0PiBtZWRpYSA9IHBhcnNlKG1lZGlhUXVl
cnkpOworCisgICAgU3RyaW5nIGtleSA9IHdyaXRlTWVkaWFMaXN0S2V5KG1lZGlhLmdldCgpKTsK
KyAgICBpZiAoa2V5LmlzTnVsbCgpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIC8vIGxvb2sg
Zm9yIHF1ZXJ5IGluIG1fcXVlcmllcy4KKyAgICBRdWVyeSogcXVlcnkgPSBtX3F1ZXJpZXMuZ2V0
KGtleSk7CisgICAgaWYgKCFxdWVyeSkgeworCisgICAgICAgIC8vIGlmIG5vIGVxdWl2YWxlbnQg
cXVlcnkgaXMgaW4gbV9xdWVyaWVzIGNyZWF0ZSBvbmUuCisgICAgICAgIE93blB0cjxRdWVyeT4g
dGVtcChuZXcgUXVlcnkobWVkaWEsIHByZXBhcmVFdmFsdWF0b3IoKSwgbV9jdXJyZW50Um91bmQs
IGtleSkpOworICAgICAgICBpZiAobV9xdWVyaWVzLmFkZChrZXksIHRlbXAuZ2V0KCkpLnNlY29u
ZCkKKyAgICAgICAgICAgIHF1ZXJ5ID0gdGVtcC5yZWxlYXNlKCk7IC8vIHF1ZXJ5IGNyZWF0ZWQg
YW5kIGFkZGVkIHRvIG1fcXVlcmllcworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4g
MDsKKworICAgIH0gZWxzZSB7CisKKyAgICAgICAgU2NyaXB0U3RhdGUqIGV4ZWMgPSBtYWluV29y
bGRTY3JpcHRTdGF0ZShtX2ZyYW1lKTsKKyAgICAgICAgaWYgKCFleGVjKQorICAgICAgICAgICAg
cmV0dXJuIDA7CisKKyAgICAgICAgLy8gaWYgdGhlcmUgaXMgYWxyZWFkeSBhbiBlcXVpdmFsZW50
IHF1ZXJ5IGxvb2sgZm9yIGFuIGVxdWl2YWxlbnQKKyAgICAgICAgLy8gcGFpciAocXVlcnksIGNh
bGxiYWNrKS4gcmV0dXJuIGlmIGZvdW5kLgorICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IG1fbGlzdGVuZXJzLnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBpZiAobV9saXN0ZW5lcnNb
aV0tPnF1ZXJ5KCkgPT0gcXVlcnkgJiYgbV9saXN0ZW5lcnNbaV0tPmNhbGxiYWNrKCktPmlzRXF1
YWwoZXhlYywgKmNhbGxiYWNrKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gbV9saXN0ZW5lcnNb
aV0tPmlkKCk7CisgICAgICAgIH0KKworICAgIH0KKworICAgIExpc3RlbmVyKiBsaXN0ZW5lciA9
IG5ldyBMaXN0ZW5lcihxdWVyeSwgY2FsbGJhY2spOworICAgIG1fbGlzdGVuZXJzLmFwcGVuZChs
aXN0ZW5lcik7CisgICAgcmV0dXJuIGxpc3RlbmVyLT5pZCgpOworfQorCitib29sIFN0eWxlTWVk
aWE6Omxpc3RlbmVyQ29tcGFyZShjb25zdCBMaXN0ZW5lciogbGlzdGVuZXIsIGludCBpZCkKK3sK
KyAgICByZXR1cm4gbGlzdGVuZXItPmlkKCkgLSBpZCA8IDA7Cit9CisKK3ZvaWQgU3R5bGVNZWRp
YTo6cmVtb3ZlUXVlcnlMaXN0ZW5lcihpbnQgaWQpCit7CisgICAgLy8gbG9vayBmb3IgdGhlIGxp
c3RlbmVyIGlkZW50aWZpZWQgYnkgaWQuIHJldHVybiBpZiBub3QgZm91bmQuCisgICAgVmVjdG9y
PExpc3RlbmVyKj46Oml0ZXJhdG9yIGxpc3RlbmVyID0gc3RkOjpsb3dlcl9ib3VuZChtX2xpc3Rl
bmVycy5iZWdpbigpLCBtX2xpc3RlbmVycy5lbmQoKSwgaWQsIGxpc3RlbmVyQ29tcGFyZSk7Cisg
ICAgaWYgKGxpc3RlbmVyID09IG1fbGlzdGVuZXJzLmVuZCgpKQorICAgICAgICByZXR1cm47CisK
KyAgICAvLyBkZWxldGUgdGhlIHJlbW92ZWQgbGlzdGVuZXIuIGtlZXAgYSBwb2ludGVyIHRvIHRo
ZSBxdWVyeS4KKyAgICBMaXN0ZW5lciogaXRlbSA9ICpsaXN0ZW5lcjsKKyAgICBjb25zdCBRdWVy
eSogcXVlcnkgPSBpdGVtLT5xdWVyeSgpOworICAgIG1fbGlzdGVuZXJzLnJlbW92ZShsaXN0ZW5l
ciAtIG1fbGlzdGVuZXJzLmRhdGEoKSk7CisgICAgZGVsZXRlIGl0ZW07CisKKyAgICAvLyBkZWxl
dGUgdGhlIHF1ZXJ5IGlmIGl0IGlzIG5vdCB1c2VkIGFueSBtb3JlLgorICAgIGlmIChxdWVyeS0+
aGFzT25lUmVmKCkpIHsKKyAgICAgICAgbV9xdWVyaWVzLnJlbW92ZShxdWVyeS0+a2V5KCkpOwor
ICAgICAgICBkZWxldGUgcXVlcnk7CisgICAgfQorfQorCitNZWRpYVF1ZXJ5RXZhbHVhdG9yKiBT
dHlsZU1lZGlhOjpwcmVwYXJlRXZhbHVhdG9yKCkgY29uc3QKIHsKICAgICBpZiAoIW1fZnJhbWUp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIDA7CiAKICAgICBEb2N1bWVu
dCogZG9jdW1lbnQgPSBtX2ZyYW1lLT5kb2N1bWVudCgpOwotICAgIEFTU0VSVChkb2N1bWVudCk7
CisgICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuIDA7CisKICAgICBFbGVtZW50KiBk
b2N1bWVudEVsZW1lbnQgPSBkb2N1bWVudC0+ZG9jdW1lbnRFbGVtZW50KCk7Ci0gICAgQVNTRVJU
KGRvY3VtZW50RWxlbWVudCk7CisgICAgaWYgKCFkb2N1bWVudEVsZW1lbnQpCisgICAgICAgIHJl
dHVybiAwOwogCiAgICAgQ1NTU3R5bGVTZWxlY3Rvciogc3R5bGVTZWxlY3RvciA9IGRvY3VtZW50
LT5zdHlsZVNlbGVjdG9yKCk7CiAgICAgaWYgKCFzdHlsZVNlbGVjdG9yKQotICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgIHJldHVybiAwOwogCiAgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBy
b290U3R5bGUgPSBzdHlsZVNlbGVjdG9yLT5zdHlsZUZvckVsZW1lbnQoZG9jdW1lbnRFbGVtZW50
LCAwIC8qZGVmYXVsdFBhcmVudCovLCBmYWxzZSAvKmFsbG93U2hhcmluZyovLCB0cnVlIC8qcmVz
b2x2ZUZvclJvb3REZWZhdWx0Ki8pOwotICAgIFJlZlB0cjxNZWRpYUxpc3Q+IG1lZGlhID0gTWVk
aWFMaXN0OjpjcmVhdGUoKTsKIAorICAgIHJldHVybiBuZXcgTWVkaWFRdWVyeUV2YWx1YXRvcih0
eXBlKCksIG1fZnJhbWUsIHJvb3RTdHlsZS5nZXQoKSk7Cit9CisKK2Jvb2wgU3R5bGVNZWRpYTo6
bWF0Y2hRdWVyeShjb25zdCBTdHJpbmcmIHF1ZXJ5KSBjb25zdAoreworICAgIFJlZlB0cjxNZWRp
YUxpc3Q+IG1lZGlhKE1lZGlhTGlzdDo6Y3JlYXRlKCkpOwogICAgIEV4Y2VwdGlvbkNvZGUgZWMg
PSAwOwogICAgIG1lZGlhLT5zZXRNZWRpYVRleHQocXVlcnksIGVjKTsKICAgICBpZiAoZWMpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIE1lZGlhUXVlcnlFdmFsdWF0b3Igc2NyZWVuRXZh
bCh0eXBlKCksIG1fZnJhbWUsIHJvb3RTdHlsZS5nZXQoKSk7Ci0gICAgcmV0dXJuIHNjcmVlbkV2
YWwuZXZhbChtZWRpYS5nZXQoKSk7CisgICAgT3duUHRyPE1lZGlhUXVlcnlFdmFsdWF0b3I+IGV2
YWx1YXRvcihwcmVwYXJlRXZhbHVhdG9yKCkpOworICAgIHJldHVybiBldmFsdWF0b3IgJiYgZXZh
bHVhdG9yLT5ldmFsKG1lZGlhLmdldCgpKTsKK30KKwordm9pZCBTdHlsZU1lZGlhOjpzdHlsZUNo
YW5nZWQoKQoreworICAgIE93blB0cjxNZWRpYVF1ZXJ5RXZhbHVhdG9yPiBldmFsdWF0b3IocHJl
cGFyZUV2YWx1YXRvcigpKTsKKyAgICBpZiAoIWV2YWx1YXRvcikKKyAgICAgICAgcmV0dXJuOwor
CisgICAgLy8gaW5jcmVtZW50IGV2YWx1YXRpb24gcm91bmQKKyAgICArK21fY3VycmVudFJvdW5k
OworCisgICAgLy8gZXZhbHVhdGUgZWFjaCBxdWVyeSBhbmQgY2hlY2sgaWYgYW55IG9mIHRoZW0g
Y2hhbmdlcworICAgIGJvb2wgY2hhbmdlZCA9IGZhbHNlOworICAgIEhhc2hNYXA8U3RyaW5nLCBR
dWVyeSo+OjppdGVyYXRvcjo6VmFsdWVzIGkgPSBtX3F1ZXJpZXMuYmVnaW4oKTsKKyAgICBIYXNo
TWFwPFN0cmluZywgUXVlcnkqPjo6aXRlcmF0b3I6OlZhbHVlcyBlbmQgPSBtX3F1ZXJpZXMuZW5k
KCk7CisgICAgZm9yICg7IGkgIT0gZW5kOyArK2kpIHsKKyAgICAgICAgKCppKS0+ZXZhbHVhdGUo
ZXZhbHVhdG9yLmdldCgpKTsKKyAgICAgICAgY2hhbmdlZCA9IGNoYW5nZWQgfHwgKCppKS0+Y2hh
bmdlZCgpOworICAgIH0KKworICAgIC8vIGlmIGFueSBvZiB0aGUgcXVlcmllcyBoYXMgY2hhbmdl
ZCB0cmlnZXIgdGhlIGNvcnJlc3BvbmRpbmcgY2FsbGJhY2tzIGluIG9yZGVyCisgICAgaWYgKGNo
YW5nZWQgJiYgbV9mcmFtZSkgeworCisgICAgICAgIFNjcmlwdFN0YXRlKiBleGVjID0gbWFpbldv
cmxkU2NyaXB0U3RhdGUobV9mcmFtZSk7CisgICAgICAgIGlmICghZXhlYykKKyAgICAgICAgICAg
IHJldHVybjsKKworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fbGlzdGVuZXJzLnNp
emUoKTsgKytpKQorICAgICAgICAgICAgICAgIG1fbGlzdGVuZXJzW2ldLT5oYW5kbGVFdmVudChl
eGVjKTsKKyAgICB9CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvY3NzL1N0eWxlTWVkaWEuaCBiL1dlYkNvcmUvY3NzL1N0eWxlTWVkaWEuaAppbmRleCA3
NjFlNmEzLi4xMDFiYjNiIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9TdHlsZU1lZGlhLmgKKysr
IGIvV2ViQ29yZS9jc3MvU3R5bGVNZWRpYS5oCkBAIC0yOCw2ICsyOCwxNSBAQAogI2RlZmluZSBT
dHlsZU1lZGlhX2gKIAogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgorI2luY2x1ZGUgIk1lZGlhTGlz
dC5oIgorI2luY2x1ZGUgIk1lZGlhUXVlcnlFdmFsdWF0b3IuaCIKKyNpbmNsdWRlICJRdWVyeUNh
bGxiYWNrLmgiCisKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Pd25Q
dHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtNDIsMTIgKzUxLDU3IEBAIHB1YmxpYzoKIAogICAgIFN0cmluZyB0eXBlKCkgY29u
c3Q7CiAKLSAgICBib29sIG1hdGNoTWVkaXVtKGNvbnN0IFN0cmluZyYpIGNvbnN0OworICAgIGJv
b2wgbWF0Y2hRdWVyeShjb25zdCBTdHJpbmcmKSBjb25zdDsKKworICAgIGludCBhZGRRdWVyeUxp
c3RlbmVyKGNvbnN0IFN0cmluZyYgbWVkaWFRdWVyeSwgUGFzc1JlZlB0cjxRdWVyeUNhbGxiYWNr
PiBjYWxsYmFjayk7CisgICAgdm9pZCByZW1vdmVRdWVyeUxpc3RlbmVyKGludCBpZCk7CisKKyAg
ICB2b2lkIHN0eWxlQ2hhbmdlZCgpOworCitwcml2YXRlOgorCisgICAgY2xhc3MgUXVlcnkgOiBw
dWJsaWMgUmVmQ291bnRlZDxRdWVyeT4geworICAgIHB1YmxpYzoKKyAgICAgICAgUXVlcnkoUGFz
c1JlZlB0cjxNZWRpYUxpc3Q+IG1lZGlhLCBQYXNzT3duUHRyPE1lZGlhUXVlcnlFdmFsdWF0b3I+
IGV2YWx1YXRvciwgaW50JiByb3VuZCwgY29uc3QgU3RyaW5nJiBrZXkpOworICAgICAgICB+UXVl
cnkoKTsKKyAgICAgICAgdm9pZCBldmFsdWF0ZShNZWRpYVF1ZXJ5RXZhbHVhdG9yKik7CisgICAg
ICAgIGJvb2wgdmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnRWYWx1ZTsgfQorICAgICAg
ICBib29sIGNoYW5nZWQoKSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnRSb3VuZCA9PSBtX2NoYW5n
ZVJvdW5kOyB9CisgICAgICAgIFN0cmluZyBrZXkoKSBjb25zdCB7IHJldHVybiBtX2tleTsgfQor
CisgICAgcHJpdmF0ZToKKyAgICAgICAgUmVmUHRyPE1lZGlhTGlzdD4gbV9tZWRpYTsKKyAgICAg
ICAgYm9vbCBtX2N1cnJlbnRWYWx1ZTsKKyAgICAgICAgaW50JiBtX2N1cnJlbnRSb3VuZDsKKyAg
ICAgICAgaW50IG1fY2hhbmdlUm91bmQ7CisgICAgICAgIFN0cmluZyBtX2tleTsKKyAgICB9Owor
CisgICAgY2xhc3MgTGlzdGVuZXIgeworICAgIHB1YmxpYzoKKyAgICAgICAgTGlzdGVuZXIoUGFz
c1JlZlB0cjxRdWVyeT4gcXVlcnksIFBhc3NSZWZQdHI8UXVlcnlDYWxsYmFjaz4gY2FsbGJhY2sp
OworICAgICAgICB2b2lkIGhhbmRsZUV2ZW50KFNjcmlwdFN0YXRlKik7CisgICAgICAgIGNvbnN0
IFF1ZXJ5KiBxdWVyeSgpIHsgcmV0dXJuIG1fcXVlcnkuZ2V0KCk7IH0KKyAgICAgICAgY29uc3Qg
UXVlcnlDYWxsYmFjayogY2FsbGJhY2soKSBjb25zdCB7IHJldHVybiBtX2NhbGxiYWNrLmdldCgp
OyB9CisgICAgICAgIGludCBpZCgpIGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0KKworICAgIHByaXZh
dGU6CisgICAgICAgIFJlZlB0cjxRdWVyeT4gbV9xdWVyeTsKKyAgICAgICAgUmVmUHRyPFF1ZXJ5
Q2FsbGJhY2s+IG1fY2FsbGJhY2s7CisgICAgICAgIGludCBtX2lkOworICAgIH07CiAKIHByaXZh
dGU6CiAgICAgU3R5bGVNZWRpYShGcmFtZSopOwogCiAgICAgRnJhbWUqIG1fZnJhbWU7CisgICAg
SGFzaE1hcDxTdHJpbmcsIFF1ZXJ5Kj4gbV9xdWVyaWVzOworICAgIFZlY3RvcjxMaXN0ZW5lcio+
IG1fbGlzdGVuZXJzOworICAgIGludCBtX2N1cnJlbnRSb3VuZDsKKworICAgIE1lZGlhUXVlcnlF
dmFsdWF0b3IqIHByZXBhcmVFdmFsdWF0b3IoKSBjb25zdDsKKworICAgIHN0YXRpYyBib29sIGxp
c3RlbmVyQ29tcGFyZShjb25zdCBMaXN0ZW5lciogbGlzdGVuZXIsIGludCBpZCk7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvU3R5bGVNZWRpYS5pZGwgYi9X
ZWJDb3JlL2Nzcy9TdHlsZU1lZGlhLmlkbAppbmRleCA3YmUzNWNjLi5jMGE4NTlmIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2Nzcy9TdHlsZU1lZGlhLmlkbAorKysgYi9XZWJDb3JlL2Nzcy9TdHlsZU1l
ZGlhLmlkbApAQCAtMjcsNiArMjcsOSBAQAogbW9kdWxlIHZpZXcgewogICAgIGludGVyZmFjZSBT
dHlsZU1lZGlhIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB0eXBlOwot
ICAgICAgICBib29sZWFuIG1hdGNoTWVkaXVtKGluIERPTVN0cmluZyBtZWRpYXF1ZXJ5KTsKKyAg
ICAgICAgYm9vbGVhbiBtYXRjaFF1ZXJ5KGluIERPTVN0cmluZyBtZWRpYXF1ZXJ5KTsKKworICAg
ICAgICBsb25nIGFkZFF1ZXJ5TGlzdGVuZXIoaW4gRE9NU3RyaW5nIG1lZGlhUXVlcnksIGluIFF1
ZXJ5Q2FsbGJhY2sgY2FsbGJhY2spOworICAgICAgICB2b2lkIHJlbW92ZVF1ZXJ5TGlzdGVuZXIo
aW4gbG9uZyBpZCk7CiAgICAgfTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA1ZTRjNWM2Li5kZmY2YzdlIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCkBAIC0xMTgsNiArMTE4LDcgQEAKICNpbmNsdWRlICJTZWxlY3Rpb25Db250cm9s
bGVyLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTdHJpbmdCdWZmZXIuaCIK
KyNpbmNsdWRlICJTdHlsZU1lZGlhLmgiCiAjaW5jbHVkZSAiU3R5bGVTaGVldExpc3QuaCIKICNp
bmNsdWRlICJUZXh0RXZlbnQuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKQEAgLTI2MDcs
NiArMjYwOCwxMCBAQCB2b2lkIERvY3VtZW50Ojp1cGRhdGVTdHlsZVNlbGVjdG9yKCkKICAgICAg
ICAgaWYgKHZpZXcoKSkKICAgICAgICAgICAgIHZpZXcoKS0+c2NoZWR1bGVSZWxheW91dCgpOwog
ICAgIH0KKworICAgIGlmIChkb21XaW5kb3coKSAmJiBkb21XaW5kb3coKS0+c3R5bGVNZWRpYSgp
KQorICAgICAgICBkb21XaW5kb3coKS0+c3R5bGVNZWRpYSgpLT5zdHlsZUNoYW5nZWQoKTsKKwog
fQogCiB2b2lkIERvY3VtZW50OjphZGRTdHlsZVNoZWV0Q2FuZGlkYXRlTm9kZShOb2RlKiBub2Rl
LCBib29sIGNyZWF0ZWRCeVBhcnNlcikKLS0gCjEuNi4zLjMKCg==
</data>
<flag name="review"
          id="42198"
          type_id="1"
          status="-"
          setter="darin"
    />
    <flag name="commit-queue"
          id="42199"
          type_id="3"
          status="-"
          setter="luiz"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64174</attachid>
            <date>2010-08-11 17:07:57 -0700</date>
            <delta_ts>2010-08-12 13:19:39 -0700</delta_ts>
            <desc>patch 4</desc>
            <filename>0001-Media-listeners.patch</filename>
            <type>text/plain</type>
            <size>22778</size>
            <attacher name="Luiz Agostini">luiz</attacher>
            
              <data encoding="base64">RnJvbSA5MjljMDgxNGJmZWVkODYzNTMzM2U5ZGE4ZmM2YjlhMWZiNTZlZDdjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWl6IEFnb3N0aW5pIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IFdlZCwgMTEgQXVnIDIwMTAgMTc6MjE6MDMgLTAzMDAKU3ViamVjdDogW1BB
VENIXSBNZWRpYSBsaXN0ZW5lcnMKIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zNzIwNQoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpJbXBsZW1lbnRpbmcgU3R5
bGVNZWRpYSBpbnRlcmZhY2UgYXMgc3BlY2lmaWVkIGluCmh0dHA6Ly9kZXYudzMub3JnL2Nzc3dn
L2Nzc29tLXZpZXcvI3RoZS1zdHlsZW1lZGlhLWludGVyZmFjZS4KClRoaXMgaXMgYSBmaXJzdCB2
ZXJzaW9uIG9mIHRoZSBwYXRjaC4gU3R5bGVNZWRpYSwgQm9vbGVhbkNhbGxiYWNrIGFuZApKU0Jv
b2xlYW5DYWxsYmFjayBjbGFzc2VzIGFyZSBmdWxseSBpbXBsZW1lbnRlZCBhbmQgdGVzdGVkIGlu
IFF0IHBsYXRmb3JtLgoKT3RoZXIgcGxhdGZvcm1zIHN0aWxsIG5lZWQgYWRqdXN0bWVudHMuCgpO
byBuZXcgdGVzdHMuIChPT1BTISkKCiogV2ViQ29yZS5wcm86CiogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgoqIGJpbmRpbmdzL2pzL0pTQm9vbGVhbkNhbGxiYWNrLmNwcDogQWRk
ZWQuCihXZWJDb3JlOjpKU0Jvb2xlYW5DYWxsYmFjazo6aGFuZGxlRXZlbnQpOgooV2ViQ29yZTo6
SlNCb29sZWFuQ2FsbGJhY2s6OmlzRXF1YWwpOgoqIGJpbmRpbmdzL2pzL0pTQm9vbGVhbkNhbGxi
YWNrLmg6IEFkZGVkLgooV2ViQ29yZTo6SlNCb29sZWFuQ2FsbGJhY2s6OkpTQm9vbGVhbkNhbGxi
YWNrKToKKFdlYkNvcmU6OnRvQm9vbGVhbkNhbGxiYWNrKToKKiBjc3MvQm9vbGVhbkNhbGxiYWNr
Lmg6IEFkZGVkLgooV2ViQ29yZTo6Qm9vbGVhbkNhbGxiYWNrOjp+Qm9vbGVhbkNhbGxiYWNrKToK
KiBjc3MvU3R5bGVNZWRpYS5jcHA6CihXZWJDb3JlOjpTdHlsZU1lZGlhOjpRdWVyeTo6UXVlcnkp
OgooV2ViQ29yZTo6U3R5bGVNZWRpYTo6UXVlcnk6On5RdWVyeSk6CihXZWJDb3JlOjpTdHlsZU1l
ZGlhOjpRdWVyeTo6ZXZhbHVhdGUpOgooV2ViQ29yZTo6U3R5bGVNZWRpYTo6TGlzdGVuZXI6Okxp
c3RlbmVyKToKKFdlYkNvcmU6OlN0eWxlTWVkaWE6Okxpc3RlbmVyOjp+TGlzdGVuZXIpOgooV2Vi
Q29yZTo6U3R5bGVNZWRpYTo6TGlzdGVuZXI6OmhhbmRsZUV2ZW50KToKKFdlYkNvcmU6OlN0eWxl
TWVkaWE6OlN0eWxlTWVkaWEpOgooV2ViQ29yZTo6U3R5bGVNZWRpYTo6flN0eWxlTWVkaWEpOgoo
V2ViQ29yZTo6cGFyc2UpOgooV2ViQ29yZTo6U3R5bGVNZWRpYTo6bWF0Y2hNZWRpYSk6CihXZWJD
b3JlOjpTdHlsZU1lZGlhOjpwcmVwYXJlRXZhbHVhdG9yKToKKFdlYkNvcmU6OlN0eWxlTWVkaWE6
OmFkZE1lZGlhTGlzdGVuZXIpOgooV2ViQ29yZTo6U3R5bGVNZWRpYTo6cmVtb3ZlTWVkaWFMaXN0
ZW5lcik6CihXZWJDb3JlOjpTdHlsZU1lZGlhOjpzdHlsZUNoYW5nZWQpOgoqIGNzcy9TdHlsZU1l
ZGlhLmg6CihXZWJDb3JlOjpTdHlsZU1lZGlhOjpRdWVyeTo6dmFsdWUpOgooV2ViQ29yZTo6U3R5
bGVNZWRpYTo6UXVlcnk6OmNoYW5nZWQpOgooV2ViQ29yZTo6U3R5bGVNZWRpYTo6UXVlcnk6OnJl
ZkNvdW50KToKKFdlYkNvcmU6OlN0eWxlTWVkaWE6Okxpc3RlbmVyOjpxdWVyeSk6CihXZWJDb3Jl
OjpTdHlsZU1lZGlhOjpMaXN0ZW5lcjo6Y2FsbGJhY2spOgoqIGNzcy9TdHlsZU1lZGlhLmlkbDoK
KiBkb20vRG9jdW1lbnQuY3BwOgooV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZVN0eWxlU2VsZWN0
b3IpOgotLS0KIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA1
MiArKysrKysrKwogV2ViQ29yZS9XZWJDb3JlLnBybyAgICAgICAgICAgICAgICAgICAgICAgfCAg
ICAyICsKIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIHwgICAgOCAr
CiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQm9vbGVhbkNhbGxiYWNrLmNwcCB8ICAgMzcgKysrKysr
CiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQm9vbGVhbkNhbGxiYWNrLmggICB8ICAgMzIgKysrKysK
IFdlYkNvcmUvY3NzL0Jvb2xlYW5DYWxsYmFjay5oICAgICAgICAgICAgIHwgICAyMiArKysKIFdl
YkNvcmUvY3NzL1N0eWxlTWVkaWEuY3BwICAgICAgICAgICAgICAgIHwgIDIwMCArKysrKysrKysr
KysrKysrKysrKysrKysrKystLQogV2ViQ29yZS9jc3MvU3R5bGVNZWRpYS5oICAgICAgICAgICAg
ICAgICAgfCAgIDUyICsrKysrKysrLQogV2ViQ29yZS9jc3MvU3R5bGVNZWRpYS5pZGwgICAgICAg
ICAgICAgICAgfCAgICA1ICstCiBXZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgICAgICAgICAgICAg
ICAgICB8ICAgIDQgKwogMTAgZmlsZXMgY2hhbmdlZCwgMzk5IGluc2VydGlvbnMoKyksIDE1IGRl
bGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvYmluZGluZ3MvanMvSlNCb29s
ZWFuQ2FsbGJhY2suY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0Jvb2xlYW5DYWxsYmFjay5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9jc3MvQm9vbGVh
bkNhbGxiYWNrLmgKCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IDg2NjU2NDcuLjU4OGVjMDEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTUgQEAKKzIwMTAtMDgtMTAg
IEx1aXogQWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWVkaWEgbGlzdGVuZXJzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzIwNQorCisg
ICAgICAgIEltcGxlbWVudGluZyBTdHlsZU1lZGlhIGludGVyZmFjZSBhcyBzcGVjaWZpZWQgaW4K
KyAgICAgICAgaHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3Nzb20tdmlldy8jdGhlLXN0eWxlbWVk
aWEtaW50ZXJmYWNlLgorCisgICAgICAgIFRoaXMgaXMgYSBmaXJzdCB2ZXJzaW9uIG9mIHRoZSBw
YXRjaC4gU3R5bGVNZWRpYSwgQm9vbGVhbkNhbGxiYWNrIGFuZAorICAgICAgICBKU0Jvb2xlYW5D
YWxsYmFjayBjbGFzc2VzIGFyZSBmdWxseSBpbXBsZW1lbnRlZCBhbmQgdGVzdGVkIGluIFF0IHBs
YXRmb3JtLgorCisgICAgICAgIE90aGVyIHBsYXRmb3JtcyBzdGlsbCBuZWVkIGFkanVzdG1lbnRz
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gKE9PUFMhKQorCisgICAgICAgICogV2ViQ29yZS5w
cm86CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTQm9vbGVhbkNhbGxiYWNrLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpKU0Jvb2xlYW5DYWxsYmFjazo6aGFuZGxlRXZlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6SlNCb29sZWFuQ2FsbGJhY2s6OmlzRXF1YWwpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
Qm9vbGVhbkNhbGxiYWNrLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNCb29sZWFuQ2Fs
bGJhY2s6OkpTQm9vbGVhbkNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OnRvQm9vbGVhbkNh
bGxiYWNrKToKKyAgICAgICAgKiBjc3MvQm9vbGVhbkNhbGxiYWNrLmg6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6Qm9vbGVhbkNhbGxiYWNrOjp+Qm9vbGVhbkNhbGxiYWNrKToKKyAgICAgICAg
KiBjc3MvU3R5bGVNZWRpYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZU1lZGlhOjpRdWVy
eTo6UXVlcnkpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVNZWRpYTo6UXVlcnk6On5RdWVyeSk6
CisgICAgICAgIChXZWJDb3JlOjpTdHlsZU1lZGlhOjpRdWVyeTo6ZXZhbHVhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGVNZWRpYTo6TGlzdGVuZXI6Okxpc3RlbmVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlN0eWxlTWVkaWE6Okxpc3RlbmVyOjp+TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6U3R5bGVNZWRpYTo6TGlzdGVuZXI6OmhhbmRsZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OlN0eWxlTWVkaWE6OlN0eWxlTWVkaWEpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVNZWRpYTo6
flN0eWxlTWVkaWEpOgorICAgICAgICAoV2ViQ29yZTo6cGFyc2UpOgorICAgICAgICAoV2ViQ29y
ZTo6U3R5bGVNZWRpYTo6bWF0Y2hNZWRpYSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZU1lZGlh
OjpwcmVwYXJlRXZhbHVhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlTWVkaWE6OmFkZE1l
ZGlhTGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVNZWRpYTo6cmVtb3ZlTWVkaWFM
aXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZU1lZGlhOjpzdHlsZUNoYW5nZWQpOgor
ICAgICAgICAqIGNzcy9TdHlsZU1lZGlhLmg6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZU1lZGlh
OjpRdWVyeTo6dmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVNZWRpYTo6UXVlcnk6OmNo
YW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVNZWRpYTo6UXVlcnk6OnJlZkNvdW50KToK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlTWVkaWE6Okxpc3RlbmVyOjpxdWVyeSk6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZU1lZGlhOjpMaXN0ZW5lcjo6Y2FsbGJhY2spOgorICAgICAgICAqIGNz
cy9TdHlsZU1lZGlhLmlkbDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZVN0eWxlU2VsZWN0b3IpOgorCiAyMDEwLTA4LTExICBL
ZW5uZXRoIFJ1c3NlbGwgIDxrYnJAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBE
aW1pdHJpIEdsYXprb3YuCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvV2ViQ29y
ZS9XZWJDb3JlLnBybwppbmRleCBiYzg3ZTI1Li4wOGVmOWQ5IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L1dlYkNvcmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTI4Niw2ICsyODYsNyBA
QCBTT1VSQ0VTICs9IFwKICAgICBiaW5kaW5ncy9qcy9HQ0NvbnRyb2xsZXIuY3BwIFwKICAgICBi
aW5kaW5ncy9qcy9ET01PYmplY3RIYXNoVGFibGVNYXAuY3BwIFwKICAgICBiaW5kaW5ncy9qcy9E
T01XcmFwcGVyV29ybGQuY3BwIFwKKyAgICBiaW5kaW5ncy9qcy9KU0Jvb2xlYW5DYWxsYmFjay5j
cHAgXAogICAgIGJpbmRpbmdzL2pzL0pTQ2FsbGJhY2tEYXRhLmNwcCBcCiAgICAgYmluZGluZ3Mv
anMvSlNBdHRyQ3VzdG9tLmNwcCBcCiAgICAgYmluZGluZ3MvanMvSlNDREFUQVNlY3Rpb25DdXN0
b20uY3BwIFwKQEAgLTExMDEsNiArMTEwMiw3IEBAIEhFQURFUlMgKz0gXAogICAgIGJpbmRpbmdz
L2pzL0dDQ29udHJvbGxlci5oIFwKICAgICBiaW5kaW5ncy9qcy9ET01PYmplY3RIYXNoVGFibGVN
YXAuaCBcCiAgICAgYmluZGluZ3MvanMvRE9NV3JhcHBlcldvcmxkLmggXAorICAgIGJpbmRpbmdz
L2pzL0pTQm9vbGVhbkNhbGxiYWNrLmNwcCBcCiAgICAgYmluZGluZ3MvanMvSlNDYWxsYmFja0Rh
dGEuaCBcCiAgICAgYmluZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmggXAogICAgIGJpbmRp
bmdzL2pzL0pTQ1NTU3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5oIFwKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOTBlNTNhYi4uNTJhZThmOCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTUwNjksNiArNTA2OSw4IEBA
CiAJCUQyM0NBNTZDMEFCMEVCOEQwMDUxMDhBNSAvKiBSYW5nZUV4Y2VwdGlvbi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDIzQ0E1NkIwQUIwRUI4RDAw
NTEwOEE1IC8qIFJhbmdlRXhjZXB0aW9uLmggKi87IH07CiAJCUQzOUQwMDZEMTFGOEUzMDgwMDYw
NDFGMiAvKiBQb3B1cE1lbnVNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEQzOUQwMDZDMTFGOEUzMDgwMDYwNDFGMiAvKiBQb3B1cE1lbnVNYWMuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlEMzlEMDA5
RDExRjkwN0U2MDA2MDQxRjIgLyogU2VhcmNoUG9wdXBNZW51TWFjLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMzlEMDA5QzExRjkwN0U2MDA2MDQxRjIg
LyogU2VhcmNoUG9wdXBNZW51TWFjLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJRDNBQjE5NzkxMjExREEyNTAwRjlBMTk2IC8qIEpTQm9vbGVhbkNh
bGxiYWNrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEQzQUIxOTc3MTIxMURBMjUwMEY5QTE5NiAvKiBKU0Jvb2xlYW5DYWxsYmFjay5jcHAgKi87IH07
CisJCUQzQUIxOTdBMTIxMURBMjUwMEY5QTE5NiAvKiBKU0Jvb2xlYW5DYWxsYmFjay5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNBQjE5NzgxMjExREEy
NTAwRjlBMTk2IC8qIEpTQm9vbGVhbkNhbGxiYWNrLmggKi87IH07CiAJCUQ4QjYxNTJGMTAzMjQ5
NTEwMEM4NTU0QSAvKiBDb29raWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEQ4QjYxNTJFMTAzMjQ5NTEwMEM4NTU0QSAvKiBDb29raWUuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlEQjIzQzJDQjBBNTA4
RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREIyM0MyQzkwQTUwOEQyOTAwMjQ4OUVCIC8q
IEluZGVudE91dGRlbnRDb21tYW5kLmNwcCAqLzsgfTsKIAkJREIyM0MyQ0MwQTUwOEQyOTAwMjQ4
OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBEQjIzQzJDQTBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0
ZGVudENvbW1hbmQuaCAqLzsgfTsKQEAgLTEwODM1LDYgKzEwODM3LDggQEAKIAkJRDIzQ0E1NkIw
QUIwRUI4RDAwNTEwOEE1IC8qIFJhbmdlRXhjZXB0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSYW5nZUV4Y2VwdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlEMzlEMDA2QzExRjhFMzA4MDA2MDQxRjIgLyogUG9wdXBNZW51TWFjLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBvcHVwTWVudU1hYy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlEMzlEMDA5QzExRjkwN0U2MDA2MDQxRjIgLyogU2VhcmNoUG9wdXBNZW51
TWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlYXJjaFBvcHVwTWVudU1h
Yy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEM0FCMTk3NzEyMTFEQTI1MDBGOUEx
OTYgLyogSlNCb29sZWFuQ2FsbGJhY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNCb29sZWFuQ2FsbGJhY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlEM0FCMTk3ODEyMTFEQTI1MDBGOUExOTYgLyogSlNCb29sZWFuQ2FsbGJhY2suaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNCb29sZWFuQ2FsbGJhY2suaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDhCNjE1MkUxMDMyNDk1MTAwQzg1NTRBIC8qIENvb2tp
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb29raWUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREIyM0MyQzkwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91
dGRlbnRDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJ
bmRlbnRPdXRkZW50Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURC
MjNDMkNBMEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5kZW50T3V0ZGVudENvbW1hbmQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2MzYyLDYgKzE2MzY2LDggQEAKIAkJQkNDRTU4QTcx
MDYxRTgyRjAwOEZCMzVBIC8qIENhbGxiYWNrIE9iamVjdHMgKi8gPSB7CiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUQzQUIxOTc3MTIxMURBMjUwMEY5QTE5NiAvKiBK
U0Jvb2xlYW5DYWxsYmFjay5jcHAgKi8sCisJCQkJRDNBQjE5NzgxMjExREEyNTAwRjlBMTk2IC8q
IEpTQm9vbGVhbkNhbGxiYWNrLmggKi8sCiAJCQkJMTQ0OUUyODYxMDdENERCNDAwQjU3OTNGIC8q
IEpTQ2FsbGJhY2tEYXRhLmNwcCAqLywKIAkJCQkxNDQ5RTI0QTEwN0Q0QTg0MDBCNTc5M0YgLyog
SlNDYWxsYmFja0RhdGEuaCAqLywKIAkJCQlGRTgwRDdBMjBFOUMxRUQyMDAwRDZGNzUgLyogSlND
dXN0b21Qb3NpdGlvbkNhbGxiYWNrLmNwcCAqLywKQEAgLTIwMTQyLDYgKzIwMTQ4LDcgQEAKIAkJ
CQkyRUVENTc1ODEyMTA5RUU0MDA3NjU2QkIgLyogQmxvYlJlZ2lzdHJ5LmggaW4gSGVhZGVycyAq
LywKIAkJCQkyRUVENTc1QzEyMTA5RUYzMDA3NjU2QkIgLyogQmxvYkRhdGEuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTk3OEI2RkNBMTIxMjg4MjEwMDE1OTVFRiAvKiBIVE1MVmlld1NvdXJjZVBhcnNl
ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRDNBQjE5N0ExMjExREEyNTAwRjlBMTk2IC8qIEpTQm9v
bGVhbkNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95
bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTIyNTY2LDYgKzIyNTczLDcgQEAKIAkJ
CQkyRUVENTc1NTEyMTA5RUQwMDA3NjU2QkIgLyogQmxvYlVSTC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkyRUVENTc1QjEyMTA5RUYzMDA3NjU2QkIgLyogQmxvYkRhdGEuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJOTc4QjZGQzkxMjEyODgyMTAwMTU5NUVGIC8qIEhUTUxWaWV3U291cmNlUGFyc2Vy
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUQzQUIxOTc5MTIxMURBMjUwMEY5QTE5NiAvKiBKU0Jv
b2xlYW5DYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNCb29sZWFuQ2FsbGJhY2suY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Jv
b2xlYW5DYWxsYmFjay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmY4
MWIxMgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCb29sZWFuQ2Fs
bGJhY2suY3BwCkBAIC0wLDAgKzEsMzcgQEAKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJKU0Jvb2xlYW5DYWxsYmFjay5oIgorCisjaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIEpTQm9vbGVhbkNhbGxiYWNrOjpoYW5kbGVFdmVu
dChTY3JpcHRTdGF0ZSogc3RhdGUsIGJvb2wgcXVlcnlSZXN1bHQpCit7CisgICAgdXNpbmcgbmFt
ZXNwYWNlIEpTQzsKKworICAgIEpTTG9jayBsb2NrKFNpbGVuY2VBc3NlcnRpb25zT25seSk7CisK
KyAgICBDYWxsRGF0YSBjYWxsRGF0YTsKKyAgICBDYWxsVHlwZSBjYWxsVHlwZSA9IGdldENhbGxE
YXRhKG1fY2FsbGJhY2suanNWYWx1ZSgpLCBjYWxsRGF0YSk7CisKKyAgICBBU1NFUlQoY2FsbFR5
cGUgIT0gQ2FsbFR5cGVOb25lKTsKKworICAgIEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXIgYXJn
czsKKyAgICBhcmdzLmFwcGVuZChqc0Jvb2xlYW4ocXVlcnlSZXN1bHQpKTsKKworICAgIEpTVmFs
dWUgcmVzdWx0ID0gSlNDOjpjYWxsKHN0YXRlLCBtX2NhbGxiYWNrLmpzVmFsdWUoKSwgY2FsbFR5
cGUsIGNhbGxEYXRhLCBtX2NhbGxiYWNrLmpzVmFsdWUoKSwgYXJncyk7CisKKyAgICBpZiAoc3Rh
dGUtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICByZXBvcnRFeGNlcHRpb24oc3RhdGUsIHN0YXRl
LT5leGNlcHRpb24oKSk7Cit9CisKK2Jvb2wgSlNCb29sZWFuQ2FsbGJhY2s6OmlzRXF1YWwoU2Ny
aXB0U3RhdGUqIHN0YXRlLCBjb25zdCBCb29sZWFuQ2FsbGJhY2smIG90aGVyKSBjb25zdAorewor
ICAgIGNvbnN0IEpTQm9vbGVhbkNhbGxiYWNrKiBjYWxsYmFjayA9IHN0YXRpY19jYXN0PGNvbnN0
IEpTQm9vbGVhbkNhbGxiYWNrKj4oJm90aGVyKTsKKyAgICBpZiAoIWNhbGxiYWNrKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gbV9jYWxsYmFjay5pc0VxdWFsKHN0YXRlLCBj
YWxsYmFjay0+bV9jYWxsYmFjayk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNCb29sZWFuQ2FsbGJhY2suaCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCb29sZWFu
Q2FsbGJhY2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MmQ2ZWQwCi0t
LSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Jvb2xlYW5DYWxsYmFjay5o
CkBAIC0wLDAgKzEsMzIgQEAKKyNpZm5kZWYgSlNCb29sZWFuQ2FsbGJhY2tfaAorI2RlZmluZSBK
U0Jvb2xlYW5DYWxsYmFja19oCisKKyNpbmNsdWRlICJCb29sZWFuQ2FsbGJhY2suaCIKKyNpbmNs
dWRlICJTY3JpcHRWYWx1ZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEpTQm9v
bGVhbkNhbGxiYWNrIDogcHVibGljIEJvb2xlYW5DYWxsYmFjayB7CitwdWJsaWM6CisgICAgSlNC
b29sZWFuQ2FsbGJhY2soSlNDOjpKU1ZhbHVlIGNhbGxiYWNrKSA6IG1fY2FsbGJhY2soY2FsbGJh
Y2spIHt9CisKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZlbnQoU2NyaXB0U3RhdGUqLCBib29s
KTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNFcXVhbChTY3JpcHRTdGF0ZSosIGNvbnN0IEJvb2xlYW5D
YWxsYmFjayYpIGNvbnN0OworCitwcml2YXRlOgorICAgIFNjcmlwdFZhbHVlIG1fY2FsbGJhY2s7
Cit9OworCitpbmxpbmUgQm9vbGVhbkNhbGxiYWNrKiB0b0Jvb2xlYW5DYWxsYmFjayhKU0M6OkpT
VmFsdWUgY2FsbGJhY2spCit7CisgICAgSlNDOjpDYWxsRGF0YSBjYWxsRGF0YTsKKyAgICBKU0M6
OkNhbGxUeXBlIGNhbGxUeXBlID0gZ2V0Q2FsbERhdGEoY2FsbGJhY2ssIGNhbGxEYXRhKTsKKyAg
ICBpZiAoY2FsbFR5cGUgPT0gSlNDOjpDYWxsVHlwZU5vbmUpCisgICAgICAgIHJldHVybiAwOwor
CisgICAgcmV0dXJuIG5ldyBKU0Jvb2xlYW5DYWxsYmFjayhjYWxsYmFjayk7Cit9CisKK30KKwor
I2VuZGlmIC8vIEpTQk9PTEVBTkNBTExCQUNLX0gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0Jv
b2xlYW5DYWxsYmFjay5oIGIvV2ViQ29yZS9jc3MvQm9vbGVhbkNhbGxiYWNrLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTFjNjliNQotLS0gL2Rldi9udWxsCisrKyBiL1dl
YkNvcmUvY3NzL0Jvb2xlYW5DYWxsYmFjay5oCkBAIC0wLDAgKzEsMjIgQEAKKyNpZm5kZWYgQm9v
bGVhbkNhbGxiYWNrX2gKKyNkZWZpbmUgQm9vbGVhbkNhbGxiYWNrX2gKKworCisjaW5jbHVkZSAi
UGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJTY3JpcHRTdGF0ZS5oIgorCisjaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBCb29sZWFu
Q2FsbGJhY2sgeworcHVibGljOgorICAgIHZpcnR1YWwgfkJvb2xlYW5DYWxsYmFjaygpIHt9CisK
KyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZlbnQoU2NyaXB0U3RhdGUqLCBib29sKSA9IDA7Cisg
ICAgdmlydHVhbCBib29sIGlzRXF1YWwoU2NyaXB0U3RhdGUqLCBjb25zdCBCb29sZWFuQ2FsbGJh
Y2smKSBjb25zdCA9IDA7Cit9OworCit9CisKKyNlbmRpZiAvLyBCb29sZWFuQ2FsbGJhY2tfaApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvU3R5bGVNZWRpYS5jcHAgYi9XZWJDb3JlL2Nzcy9TdHls
ZU1lZGlhLmNwcAppbmRleCA4OTcxZDM1Li44ZTVkY2E0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nz
cy9TdHlsZU1lZGlhLmNwcAorKysgYi9XZWJDb3JlL2Nzcy9TdHlsZU1lZGlhLmNwcApAQCAtMSw1
ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0yOSwxNiArMzAsNjggQEAKICNpbmNsdWRlICJDU1NTdHlsZVNlbGVjdG9yLmgiCiAjaW5jbHVk
ZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKLSNpbmNsdWRlICJNZWRpYUxpc3Qu
aCIKLSNpbmNsdWRlICJNZWRpYVF1ZXJ5RXZhbHVhdG9yLmgiCisjaW5jbHVkZSAiTWVkaWFRdWVy
eS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKy8vIFN0eWxlTWVkaWE6OlF1ZXJ5CisKK1N0
eWxlTWVkaWE6OlF1ZXJ5OjpRdWVyeShQYXNzUmVmUHRyPE1lZGlhTGlzdD4gbWVkaWEsIFBhc3NP
d25QdHI8TWVkaWFRdWVyeUV2YWx1YXRvcj4gZXZhbHVhdG9yLCBpbnQmIHJvdW5kKQorICAgIDog
bV9tZWRpYShtZWRpYSkKKyAgICAsIG1fY3VycmVudFZhbHVlKGV2YWx1YXRvciAmJiBldmFsdWF0
b3ItPmV2YWwobV9tZWRpYS5nZXQoKSkpCisgICAgLCBtX2N1cnJlbnRSb3VuZChyb3VuZCkKKyAg
ICAsIG1fY2hhbmdlUm91bmQobV9jdXJyZW50Um91bmQgLSAxKQorICAgICwgbV9yZWZDb3VudCgw
KQoreworfQorCitTdHlsZU1lZGlhOjpRdWVyeTo6flF1ZXJ5KCkKK3sKK30KKwordm9pZCBTdHls
ZU1lZGlhOjpRdWVyeTo6ZXZhbHVhdGUoTWVkaWFRdWVyeUV2YWx1YXRvciogZXZhbHVhdG9yKQor
eworICAgIGJvb2wgbmV3VmFsdWUgPSBldmFsdWF0b3IgJiYgZXZhbHVhdG9yLT5ldmFsKG1fbWVk
aWEuZ2V0KCkpOworICAgIGlmIChuZXdWYWx1ZSAhPSBtX2N1cnJlbnRWYWx1ZSkgeworICAgICAg
ICBtX2N1cnJlbnRWYWx1ZSA9IG5ld1ZhbHVlOworICAgICAgICBtX2NoYW5nZVJvdW5kID0gbV9j
dXJyZW50Um91bmQ7CisgICAgfQorfQorCisvLyBTdHlsZU1lZGlhOjpMaXN0ZW5lcgorCitTdHls
ZU1lZGlhOjpMaXN0ZW5lcjo6TGlzdGVuZXIoUXVlcnkqIHF1ZXJ5LCBQYXNzT3duUHRyPEJvb2xl
YW5DYWxsYmFjaz4gY2FsbGJhY2spCisgICAgOiBtX3F1ZXJ5KHF1ZXJ5KQorICAgICwgbV9jYWxs
YmFjayhjYWxsYmFjaykKK3sKKyAgICArK21fcXVlcnktPm1fcmVmQ291bnQ7Cit9CisKK1N0eWxl
TWVkaWE6Okxpc3RlbmVyOjp+TGlzdGVuZXIoKQoreworICAgIC0tbV9xdWVyeS0+bV9yZWZDb3Vu
dDsKK30KKwordm9pZCBTdHlsZU1lZGlhOjpMaXN0ZW5lcjo6aGFuZGxlRXZlbnQoU2NyaXB0U3Rh
dGUqIGV4ZWMpCit7CisgICAgaWYgKG1fcXVlcnktPmNoYW5nZWQoKSkKKyAgICAgICAgbV9jYWxs
YmFjay0+aGFuZGxlRXZlbnQoZXhlYywgbV9xdWVyeS0+dmFsdWUoKSk7Cit9CisKKy8vIFN0eWxl
TWVkaWEKKwogU3R5bGVNZWRpYTo6U3R5bGVNZWRpYShGcmFtZSogZnJhbWUpCiAgICAgOiBtX2Zy
YW1lKGZyYW1lKQorICAgICwgbV9jdXJyZW50Um91bmQoMCkKIHsKIH0KIAorU3R5bGVNZWRpYTo6
flN0eWxlTWVkaWEoKQoreworICAgIGRlbGV0ZUFsbFZhbHVlcyhtX2xpc3RlbmVycyk7CisgICAg
ZGVsZXRlQWxsVmFsdWVzKG1fcXVlcmllcyk7Cit9CisKIFN0cmluZyBTdHlsZU1lZGlhOjp0eXBl
KCkgY29uc3QKIHsKICAgICBGcmFtZVZpZXcqIHZpZXcgPSBtX2ZyYW1lID8gbV9mcmFtZS0+dmll
dygpIDogMDsKQEAgLTQ4LDMxICsxMDEsMTUyIEBAIFN0cmluZyBTdHlsZU1lZGlhOjp0eXBlKCkg
Y29uc3QKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLWJvb2wgU3R5bGVNZWRpYTo6bWF0Y2hN
ZWRpdW0oY29uc3QgU3RyaW5nJiBxdWVyeSkgY29uc3QKK3N0YXRpYyBQYXNzUmVmUHRyPE1lZGlh
TGlzdD4gcGFyc2UoY29uc3QgU3RyaW5nJiBxdWVyeSkKIHsKLSAgICBpZiAoIW1fZnJhbWUpCisg
ICAgUmVmUHRyPE1lZGlhTGlzdD4gbWVkaWEgPSBNZWRpYUxpc3Q6OmNyZWF0ZSgpOworICAgIEV4
Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIG1lZGlhLT5zZXRNZWRpYVRleHQocXVlcnksIGVjKTsK
KyAgICBpZiAoZWMpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBtZWRpYTsKK30KKwor
Ym9vbCBTdHlsZU1lZGlhOjptYXRjaE1lZGlhKGNvbnN0IFN0cmluZyYgcXVlcnkpIGNvbnN0Cit7
CisgICAgUmVmUHRyPE1lZGlhTGlzdD4gbWVkaWEgPSBwYXJzZShxdWVyeSk7CisgICAgaWYgKCFt
ZWRpYSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgT3duUHRyPE1lZGlhUXVlcnlFdmFs
dWF0b3I+IGV2YWx1YXRvcihwcmVwYXJlRXZhbHVhdG9yKCkpOworICAgIHJldHVybiBldmFsdWF0
b3IgJiYgZXZhbHVhdG9yLT5ldmFsKG1lZGlhLmdldCgpKTsKK30KKworUGFzc093blB0cjxNZWRp
YVF1ZXJ5RXZhbHVhdG9yPiBTdHlsZU1lZGlhOjpwcmVwYXJlRXZhbHVhdG9yKCkgY29uc3QKK3sK
KyAgICBpZiAoIW1fZnJhbWUpCisgICAgICAgIHJldHVybiAwOworCiAgICAgRG9jdW1lbnQqIGRv
Y3VtZW50ID0gbV9mcmFtZS0+ZG9jdW1lbnQoKTsKICAgICBBU1NFUlQoZG9jdW1lbnQpOworICAg
IGlmICghZG9jdW1lbnQpCisgICAgICAgIHJldHVybiAwOworCiAgICAgRWxlbWVudCogZG9jdW1l
bnRFbGVtZW50ID0gZG9jdW1lbnQtPmRvY3VtZW50RWxlbWVudCgpOworICAgIEFTU0VSVChkb2N1
bWVudEVsZW1lbnQpOwogICAgIGlmICghZG9jdW1lbnRFbGVtZW50KQotICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgIHJldHVybiAwOwogCiAgICAgQ1NTU3R5bGVTZWxlY3Rvciogc3R5bGVT
ZWxlY3RvciA9IGRvY3VtZW50LT5zdHlsZVNlbGVjdG9yKCk7CiAgICAgaWYgKCFzdHlsZVNlbGVj
dG9yKQotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiAwOwogCiAgICAgUmVm
UHRyPFJlbmRlclN0eWxlPiByb290U3R5bGUgPSBzdHlsZVNlbGVjdG9yLT5zdHlsZUZvckVsZW1l
bnQoZG9jdW1lbnRFbGVtZW50LCAwIC8qZGVmYXVsdFBhcmVudCovLCBmYWxzZSAvKmFsbG93U2hh
cmluZyovLCB0cnVlIC8qcmVzb2x2ZUZvclJvb3REZWZhdWx0Ki8pOwotICAgIFJlZlB0cjxNZWRp
YUxpc3Q+IG1lZGlhID0gTWVkaWFMaXN0OjpjcmVhdGUoKTsKIAotICAgIEV4Y2VwdGlvbkNvZGUg
ZWMgPSAwOwotICAgIG1lZGlhLT5zZXRNZWRpYVRleHQocXVlcnksIGVjKTsKLSAgICBpZiAoZWMp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gbmV3IE1lZGlhUXVlcnlFdmFsdWF0
b3IodHlwZSgpLCBtX2ZyYW1lLCByb290U3R5bGUuZ2V0KCkpOworfQorCit2b2lkIFN0eWxlTWVk
aWE6OmFkZE1lZGlhTGlzdGVuZXIoY29uc3QgU3RyaW5nJiBxdWVyeUxpc3QsIFBhc3NPd25QdHI8
Qm9vbGVhbkNhbGxiYWNrPiBjYWxsYmFjaykKK3sKKyAgICBpZiAoIWNhbGxiYWNrIHx8IHF1ZXJ5
TGlzdC5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIFJlZlB0cjxNZWRpYUxpc3Q+
IG1lZGlhID0gcGFyc2UocXVlcnlMaXN0KTsKKyAgICBpZiAoIW1lZGlhKQorICAgICAgICByZXR1
cm47CisKKyAgICBTdHJpbmcga2V5ID0gbWVkaWEtPm1lZGlhVGV4dCgpOworLy8gICAgU3RyaW5n
IGtleSA9IHdyaXRlTWVkaWFMaXN0S2V5KG1lZGlhLmdldCgpKTsKKyAgICBpZiAoa2V5LmlzRW1w
dHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gbG9vayBmb3IgcXVlcnkgaW4gbV9xdWVy
aWVzLgorICAgIFF1ZXJ5KiBxdWVyeSA9IG1fcXVlcmllcy5nZXQoa2V5KTsKKyAgICBpZiAoIXF1
ZXJ5KSB7CisgICAgICAgIC8vIGlmIG5vIGVxdWl2YWxlbnQgcXVlcnkgaXMgaW4gbV9xdWVyaWVz
IGNyZWF0ZSBvbmUuCisKKyAgICAgICAgT3duUHRyPFF1ZXJ5PiB0ZW1wKG5ldyBRdWVyeShtZWRp
YSwgcHJlcGFyZUV2YWx1YXRvcigpLCBtX2N1cnJlbnRSb3VuZCkpOworICAgICAgICBpZiAobV9x
dWVyaWVzLmFkZChrZXksIHRlbXAuZ2V0KCkpLnNlY29uZCkKKyAgICAgICAgICAgIHF1ZXJ5ID0g
dGVtcC5yZWxlYXNlKCkubGVha1B0cigpOyAvLyBxdWVyeSBjcmVhdGVkIGFuZCBhZGRlZCB0byBt
X3F1ZXJpZXMKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgfSBlbHNlIHsKKyAgICAg
ICAgLy8gaWYgdGhlcmUgaXMgYWxyZWFkeSBhbiBlcXVpdmFsZW50IHF1ZXJ5IGxvb2sgZm9yIGFu
IGVxdWl2YWxlbnQKKyAgICAgICAgLy8gcGFpciAocXVlcnksIGNhbGxiYWNrKS4gcmV0dXJuIGlm
IGZvdW5kLgorCisgICAgICAgIFNjcmlwdFN0YXRlKiBleGVjID0gbWFpbldvcmxkU2NyaXB0U3Rh
dGUobV9mcmFtZSk7CisgICAgICAgIGlmICghZXhlYykKKyAgICAgICAgICAgIHJldHVybjsKKwor
ICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fbGlzdGVuZXJzLnNpemUoKTsgKytpKSB7
CisgICAgICAgICAgICBpZiAobV9saXN0ZW5lcnNbaV0tPnF1ZXJ5KCkgPT0gcXVlcnkgJiYgbV9s
aXN0ZW5lcnNbaV0tPmNhbGxiYWNrKCktPmlzRXF1YWwoZXhlYywgKmNhbGxiYWNrLmdldCgpKSkK
KyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgIH0KKworICAgIExpc3Rl
bmVyKiBsaXN0ZW5lciA9IG5ldyBMaXN0ZW5lcihxdWVyeSwgY2FsbGJhY2spOworICAgIG1fbGlz
dGVuZXJzLmFwcGVuZChsaXN0ZW5lcik7Cit9CisKK3ZvaWQgU3R5bGVNZWRpYTo6cmVtb3ZlTWVk
aWFMaXN0ZW5lcihjb25zdCBTdHJpbmcmIHF1ZXJ5TGlzdCwgUGFzc093blB0cjxCb29sZWFuQ2Fs
bGJhY2s+IGNhbGxiYWNrKQoreworICAgIGlmICghY2FsbGJhY2sgfHwgcXVlcnlMaXN0LmlzRW1w
dHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUmVmUHRyPE1lZGlhTGlzdD4gbWVkaWEgPSBw
YXJzZShxdWVyeUxpc3QpOworICAgIGlmICghbWVkaWEpCisgICAgICAgIHJldHVybjsKKworICAg
IFN0cmluZyBrZXkgPSBtZWRpYS0+bWVkaWFUZXh0KCk7CisgICAgaWYgKGtleS5pc0VtcHR5KCkp
CisgICAgICAgIHJldHVybjsKKworICAgIFF1ZXJ5KiBxdWVyeSA9IG1fcXVlcmllcy5nZXQoa2V5
KTsKKyAgICBpZiAoIXF1ZXJ5KQorICAgICAgICByZXR1cm47CisKKyAgICBTY3JpcHRTdGF0ZSog
ZXhlYyA9IG1haW5Xb3JsZFNjcmlwdFN0YXRlKG1fZnJhbWUpOworICAgIGlmICghZXhlYykKKyAg
ICAgICAgcmV0dXJuOworCisgICAgZm9yIChpbnQgaSA9IG1fbGlzdGVuZXJzLnNpemUoKSAtIDE7
IGkgPj0gMDsgLS1pKSB7CisgICAgICAgIGlmIChtX2xpc3RlbmVyc1tpXS0+cXVlcnkoKSA9PSBx
dWVyeSAmJiBtX2xpc3RlbmVyc1tpXS0+Y2FsbGJhY2soKS0+aXNFcXVhbChleGVjLCAqY2FsbGJh
Y2suZ2V0KCkpKSB7CisgICAgICAgICAgICBkZWxldGUgbV9saXN0ZW5lcnNbaV07CisgICAgICAg
ICAgICBtX2xpc3RlbmVycy5yZW1vdmUoaSk7CisgICAgICAgICAgICBpZiAoIXF1ZXJ5LT5yZWZD
b3VudCgpKSB7CisgICAgICAgICAgICAgICAgbV9xdWVyaWVzLnJlbW92ZShrZXkpOworICAgICAg
ICAgICAgICAgIGRlbGV0ZSBxdWVyeTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0K
K30KKworCit2b2lkIFN0eWxlTWVkaWE6OnN0eWxlQ2hhbmdlZCgpCit7CisgICAgT3duUHRyPE1l
ZGlhUXVlcnlFdmFsdWF0b3I+IGV2YWx1YXRvcihwcmVwYXJlRXZhbHVhdG9yKCkpOworICAgIGlm
ICghZXZhbHVhdG9yKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBpbmNyZW1lbnQgZXZhbHVh
dGlvbiByb3VuZAorICAgICsrbV9jdXJyZW50Um91bmQ7CisKKyAgICAvLyBldmFsdWF0ZSBlYWNo
IHF1ZXJ5CisgICAgSGFzaE1hcDxTdHJpbmcsIFF1ZXJ5Kj46Oml0ZXJhdG9yOjpWYWx1ZXMgaSA9
IG1fcXVlcmllcy5iZWdpbigpOworICAgIEhhc2hNYXA8U3RyaW5nLCBRdWVyeSo+OjppdGVyYXRv
cjo6VmFsdWVzIGVuZCA9IG1fcXVlcmllcy5lbmQoKTsKKyAgICBmb3IgKDsgaSAhPSBlbmQ7ICsr
aSkKKyAgICAgICAgKCppKS0+ZXZhbHVhdGUoZXZhbHVhdG9yLmdldCgpKTsKKworICAgIFNjcmlw
dFN0YXRlKiBleGVjID0gbWFpbldvcmxkU2NyaXB0U3RhdGUobV9mcmFtZSk7CisgICAgaWYgKCFl
eGVjKQorICAgICAgICByZXR1cm47CiAKLSAgICBNZWRpYVF1ZXJ5RXZhbHVhdG9yIHNjcmVlbkV2
YWwodHlwZSgpLCBtX2ZyYW1lLCByb290U3R5bGUuZ2V0KCkpOwotICAgIHJldHVybiBzY3JlZW5F
dmFsLmV2YWwobWVkaWEuZ2V0KCkpOworICAgIC8vIHRyaWdlciBjYWxsYmFja3MgaW4gb3JkZXIK
KyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fbGlzdGVuZXJzLnNpemUoKTsgKytpKQorICAg
ICAgICBtX2xpc3RlbmVyc1tpXS0+aGFuZGxlRXZlbnQoZXhlYyk7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL1N0eWxlTWVkaWEuaCBiL1dlYkNv
cmUvY3NzL1N0eWxlTWVkaWEuaAppbmRleCA4MmM5ZWJhLi42NjE3NGZkIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2Nzcy9TdHlsZU1lZGlhLmgKKysrIGIvV2ViQ29yZS9jc3MvU3R5bGVNZWRpYS5oCkBA
IC0yNyw4ICsyNywxMyBAQAogI2lmbmRlZiBTdHlsZU1lZGlhX2gKICNkZWZpbmUgU3R5bGVNZWRp
YV9oCiAKKyNpbmNsdWRlICJCb29sZWFuQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJNZWRpYUxpc3Qu
aCIKKyNpbmNsdWRlICJNZWRpYVF1ZXJ5RXZhbHVhdG9yLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1T
dHJpbmcuaCIKIAorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgRnJhbWU7CkBAIC0zOSwxNyArNDQsNjIgQEAgcHVibGljOgogICAgIHsK
ICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTdHlsZU1lZGlhKGZyYW1lKSk7CiAgICAgfQor
ICAgIH5TdHlsZU1lZGlhKCk7CiAKICAgICB2b2lkIGRpc2Nvbm5lY3RGcmFtZSgpIHsgbV9mcmFt
ZSA9IDA7IH0KIAogICAgIFN0cmluZyB0eXBlKCkgY29uc3Q7CiAKLSAgICBib29sIG1hdGNoTWVk
aXVtKGNvbnN0IFN0cmluZyYpIGNvbnN0OworICAgIGJvb2wgbWF0Y2hNZWRpYShjb25zdCBTdHJp
bmcmKSBjb25zdDsKKworICAgIHZvaWQgYWRkTWVkaWFMaXN0ZW5lcihjb25zdCBTdHJpbmcmLCBQ
YXNzT3duUHRyPEJvb2xlYW5DYWxsYmFjaz4pOworICAgIHZvaWQgcmVtb3ZlTWVkaWFMaXN0ZW5l
cihjb25zdCBTdHJpbmcmLCBQYXNzT3duUHRyPEJvb2xlYW5DYWxsYmFjaz4pOworCisgICAgdm9p
ZCBzdHlsZUNoYW5nZWQoKTsKIAogcHJpdmF0ZToKICAgICBTdHlsZU1lZGlhKEZyYW1lKik7CiAK
KyAgICBjbGFzcyBMaXN0ZW5lcjsKKworICAgIGNsYXNzIFF1ZXJ5IHsKKyAgICBwdWJsaWM6Cisg
ICAgICAgIFF1ZXJ5KFBhc3NSZWZQdHI8TWVkaWFMaXN0PiBtZWRpYSwgUGFzc093blB0cjxNZWRp
YVF1ZXJ5RXZhbHVhdG9yPiBldmFsdWF0b3IsIGludCYgcm91bmQpOworICAgICAgIH5RdWVyeSgp
OworICAgICAgICB2b2lkIGV2YWx1YXRlKE1lZGlhUXVlcnlFdmFsdWF0b3IqKTsKKyAgICAgICAg
Ym9vbCB2YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudFZhbHVlOyB9CisgICAgICAgIGJv
b2wgY2hhbmdlZCgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudFJvdW5kID09IG1fY2hhbmdlUm91
bmQ7IH0KKyAgICAgICAgaW50IHJlZkNvdW50KCkgY29uc3QgeyByZXR1cm4gbV9yZWZDb3VudDsg
fQorCisgICAgcHJpdmF0ZToKKyAgICAgICAgUmVmUHRyPE1lZGlhTGlzdD4gbV9tZWRpYTsKKyAg
ICAgICAgYm9vbCBtX2N1cnJlbnRWYWx1ZTsKKyAgICAgICAgaW50JiBtX2N1cnJlbnRSb3VuZDsK
KyAgICAgICAgaW50IG1fY2hhbmdlUm91bmQ7CisgICAgICAgIGludCBtX3JlZkNvdW50OworCisg
ICAgICAgIGZyaWVuZCBjbGFzcyBTdHlsZU1lZGlhOjpMaXN0ZW5lcjsKKyAgICB9OworCisgICAg
Y2xhc3MgTGlzdGVuZXIgeworICAgIHB1YmxpYzoKKyAgICAgICAgTGlzdGVuZXIoUXVlcnkqIHF1
ZXJ5LCBQYXNzT3duUHRyPEJvb2xlYW5DYWxsYmFjaz4gY2FsbGJhY2spOworICAgICAgICB+TGlz
dGVuZXIoKTsKKyAgICAgICAgdm9pZCBoYW5kbGVFdmVudChTY3JpcHRTdGF0ZSopOworICAgICAg
ICBjb25zdCBRdWVyeSogcXVlcnkoKSB7IHJldHVybiBtX3F1ZXJ5OyB9CisgICAgICAgIGNvbnN0
IEJvb2xlYW5DYWxsYmFjayogY2FsbGJhY2soKSBjb25zdCB7IHJldHVybiBtX2NhbGxiYWNrLmdl
dCgpOyB9CisKKyAgICBwcml2YXRlOgorICAgICAgICBRdWVyeSogbV9xdWVyeTsKKyAgICAgICAg
T3duUHRyPEJvb2xlYW5DYWxsYmFjaz4gbV9jYWxsYmFjazsKKyAgICB9OworCisgICAgUGFzc093
blB0cjxNZWRpYVF1ZXJ5RXZhbHVhdG9yPiBwcmVwYXJlRXZhbHVhdG9yKCkgY29uc3Q7CisKICAg
ICBGcmFtZSogbV9mcmFtZTsKKyAgICBIYXNoTWFwPFN0cmluZywgUXVlcnkqPiBtX3F1ZXJpZXM7
CisgICAgVmVjdG9yPExpc3RlbmVyKj4gbV9saXN0ZW5lcnM7CisgICAgaW50IG1fY3VycmVudFJv
dW5kOwogfTsKIAogfSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL1N0eWxl
TWVkaWEuaWRsIGIvV2ViQ29yZS9jc3MvU3R5bGVNZWRpYS5pZGwKaW5kZXggN2JlMzVjYy4uNzll
OTZiZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvU3R5bGVNZWRpYS5pZGwKKysrIGIvV2ViQ29y
ZS9jc3MvU3R5bGVNZWRpYS5pZGwKQEAgLTI3LDYgKzI3LDkgQEAKIG1vZHVsZSB2aWV3IHsKICAg
ICBpbnRlcmZhY2UgU3R5bGVNZWRpYSB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01T
dHJpbmcgdHlwZTsKLSAgICAgICAgYm9vbGVhbiBtYXRjaE1lZGl1bShpbiBET01TdHJpbmcgbWVk
aWFxdWVyeSk7CisgICAgICAgIGJvb2xlYW4gbWF0Y2hNZWRpYShpbiBET01TdHJpbmcgbXFMaXN0
KTsKKworICAgICAgICB2b2lkIGFkZE1lZGlhTGlzdGVuZXIoaW4gRE9NU3RyaW5nIG1xTGlzdCwg
aW4gQm9vbGVhbkNhbGxiYWNrIG1xQ2FsbGJhY2spOworICAgICAgICB2b2lkIHJlbW92ZU1lZGlh
TGlzdGVuZXIoaW4gRE9NU3RyaW5nIG1xTGlzdCwgaW4gQm9vbGVhbkNhbGxiYWNrIG1xQ2FsbGJh
Y2spOwogICAgIH07CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggNTliN2Q2ZC4uMTE2ZmM3ZiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cApAQCAtMTIxLDYgKzEyMSw3IEBACiAjaW5jbHVkZSAiU2VsZWN0aW9uQ29udHJvbGxlci5oIgog
I2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU3RhdGljSGFzaFNldE5vZGVMaXN0Lmgi
CisjaW5jbHVkZSAiU3R5bGVNZWRpYS5oIgogI2luY2x1ZGUgIlN0eWxlU2hlZXRMaXN0LmgiCiAj
aW5jbHVkZSAiVGV4dEV2ZW50LmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCkBAIC0yNzI4
LDYgKzI3MjksOSBAQCB2b2lkIERvY3VtZW50Ojp1cGRhdGVTdHlsZVNlbGVjdG9yKCkKICAgICAg
ICAgaWYgKHZpZXcoKSkKICAgICAgICAgICAgIHZpZXcoKS0+c2NoZWR1bGVSZWxheW91dCgpOwog
ICAgIH0KKworICAgIGlmIChkb21XaW5kb3coKSAmJiBkb21XaW5kb3coKS0+c3R5bGVNZWRpYSgp
KQorICAgICAgICBkb21XaW5kb3coKS0+c3R5bGVNZWRpYSgpLT5zdHlsZUNoYW5nZWQoKTsKIH0K
IAogdm9pZCBEb2N1bWVudDo6YWRkU3R5bGVTaGVldENhbmRpZGF0ZU5vZGUoTm9kZSogbm9kZSwg
Ym9vbCBjcmVhdGVkQnlQYXJzZXIpCi0tIAoxLjYuMy4zCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64251</attachid>
            <date>2010-08-12 13:19:39 -0700</date>
            <delta_ts>2010-08-17 14:30:02 -0700</delta_ts>
            <desc>patch 5</desc>
            <filename>0001-Media-listeners.patch</filename>
            <type>text/plain</type>
            <size>34849</size>
            <attacher name="Luiz Agostini">luiz</attacher>
            
              <data encoding="base64">RnJvbSA4Yjk4NmJiM2U5OTJjMjJiZjdiNDE2OTg1NGFlYzNlNDYyNjMyYWI4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWl6IEFnb3N0aW5pIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IFRodSwgMTIgQXVnIDIwMTAgMTY6NTE6MzMgLTAzMDAKU3ViamVjdDogW1BB
VENIXSBNZWRpYSBsaXN0ZW5lcnMKIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zNzIwNQoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpJbXBsZW1lbnRpbmcgU3R5
bGVNZWRpYSBpbnRlcmZhY2UgYXMgc3BlY2lmaWVkIGluCmh0dHA6Ly9kZXYudzMub3JnL2Nzc3dn
L2Nzc29tLXZpZXcvI3RoZS1zdHlsZW1lZGlhLWludGVyZmFjZS4KClRoaXMgaXMgYSBmaXJzdCB2
ZXJzaW9uIG9mIHRoZSBwYXRjaC4gU3R5bGVNZWRpYSwgQm9vbGVhbkNhbGxiYWNrIGFuZApKU0Jv
b2xlYW5DYWxsYmFjayBjbGFzc2VzIGFyZSBmdWxseSBpbXBsZW1lbnRlZCBhbmQgdGVzdGVkIGlu
IFF0IHBsYXRmb3JtLgoKT3RoZXIgcGxhdGZvcm1zIHN0aWxsIG5lZWQgYWRqdXN0bWVudHMuCgpO
byBuZXcgdGVzdHMuIChPT1BTISkKCiogV2ViQ29yZS5neXBpOgoqIFdlYkNvcmUucHJvOgoqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKiBiaW5kaW5ncy9qcy9KU0JpbmRpbmdz
QWxsSW5PbmUuY3BwOgoqIGJpbmRpbmdzL2pzL0pTQm9vbGVhbkNhbGxiYWNrLmNwcDogQWRkZWQu
CihXZWJDb3JlOjpKU0Jvb2xlYW5DYWxsYmFjazo6aGFuZGxlRXZlbnQpOgooV2ViQ29yZTo6SlNC
b29sZWFuQ2FsbGJhY2s6OmlzRXF1YWwpOgoqIGJpbmRpbmdzL2pzL0pTQm9vbGVhbkNhbGxiYWNr
Lmg6IEFkZGVkLgooV2ViQ29yZTo6SlNCb29sZWFuQ2FsbGJhY2s6OkpTQm9vbGVhbkNhbGxiYWNr
KToKKFdlYkNvcmU6OnRvQm9vbGVhbkNhbGxiYWNrKToKKiBiaW5kaW5ncy92OC9WOEJvb2xlYW5D
YWxsYmFjay5jcHA6IEFkZGVkLgooV2ViQ29yZTo6VjhCb29sZWFuQ2FsbGJhY2s6OmlzRXF1YWwp
OgooV2ViQ29yZTo6VjhCb29sZWFuQ2FsbGJhY2s6OmhhbmRsZUV2ZW50KToKKiBiaW5kaW5ncy92
OC9WOEJvb2xlYW5DYWxsYmFjay5oOiBBZGRlZC4KKFdlYkNvcmU6OlY4Qm9vbGVhbkNhbGxiYWNr
OjpWOEJvb2xlYW5DYWxsYmFjayk6CihXZWJDb3JlOjp0b0Jvb2xlYW5DYWxsYmFjayk6CiogY3Nz
L0Jvb2xlYW5DYWxsYmFjay5oOiBBZGRlZC4KKFdlYkNvcmU6OkJvb2xlYW5DYWxsYmFjazo6fkJv
b2xlYW5DYWxsYmFjayk6CiogY3NzL1N0eWxlTWVkaWEuY3BwOgooV2ViQ29yZTo6U3R5bGVNZWRp
YTo6UXVlcnk6OlF1ZXJ5KToKKFdlYkNvcmU6OlN0eWxlTWVkaWE6OlF1ZXJ5Ojp+UXVlcnkpOgoo
V2ViQ29yZTo6U3R5bGVNZWRpYTo6UXVlcnk6OmV2YWx1YXRlKToKKFdlYkNvcmU6OlN0eWxlTWVk
aWE6Okxpc3RlbmVyOjpMaXN0ZW5lcik6CihXZWJDb3JlOjpTdHlsZU1lZGlhOjpMaXN0ZW5lcjo6
fkxpc3RlbmVyKToKKFdlYkNvcmU6OlN0eWxlTWVkaWE6Okxpc3RlbmVyOjpoYW5kbGVFdmVudCk6
CihXZWJDb3JlOjpTdHlsZU1lZGlhOjpTdHlsZU1lZGlhKToKKFdlYkNvcmU6OlN0eWxlTWVkaWE6
On5TdHlsZU1lZGlhKToKKFdlYkNvcmU6OnBhcnNlKToKKFdlYkNvcmU6OlN0eWxlTWVkaWE6Om1h
dGNoTWVkaWEpOgooV2ViQ29yZTo6U3R5bGVNZWRpYTo6cHJlcGFyZUV2YWx1YXRvcik6CihXZWJD
b3JlOjpTdHlsZU1lZGlhOjphZGRNZWRpYUxpc3RlbmVyKToKKFdlYkNvcmU6OlN0eWxlTWVkaWE6
OnJlbW92ZU1lZGlhTGlzdGVuZXIpOgooV2ViQ29yZTo6U3R5bGVNZWRpYTo6c3R5bGVDaGFuZ2Vk
KToKKiBjc3MvU3R5bGVNZWRpYS5oOgooV2ViQ29yZTo6U3R5bGVNZWRpYTo6UXVlcnk6OnZhbHVl
KToKKFdlYkNvcmU6OlN0eWxlTWVkaWE6OlF1ZXJ5OjpjaGFuZ2VkKToKKFdlYkNvcmU6OlN0eWxl
TWVkaWE6OlF1ZXJ5OjpyZWZDb3VudCk6CihXZWJDb3JlOjpTdHlsZU1lZGlhOjpMaXN0ZW5lcjo6
cXVlcnkpOgooV2ViQ29yZTo6U3R5bGVNZWRpYTo6TGlzdGVuZXI6OmNhbGxiYWNrKToKKiBjc3Mv
U3R5bGVNZWRpYS5pZGw6CiogZG9tL0RvY3VtZW50LmNwcDoKKFdlYkNvcmU6OkRvY3VtZW50Ojp1
cGRhdGVTdHlsZVNlbGVjdG9yKToKLS0tCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgIDYwICsrKysrKysrKwogV2ViQ29yZS9XZWJDb3JlLmd5cGkgICAgICAg
ICAgICAgICAgICAgICAgIHwgICAgNSArCiBXZWJDb3JlL1dlYkNvcmUucHJvICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgICAyICsKIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qICB8ICAgIDggKwogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUu
Y3BwIHwgICAgMSArCiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQm9vbGVhbkNhbGxiYWNrLmNwcCAg
fCAgIDYyICsrKysrKysrKwogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Jvb2xlYW5DYWxsYmFjay5o
ICAgIHwgICA1NyArKysrKysrKwogV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJvb2xlYW5DYWxsYmFj
ay5jcHAgIHwgICA1OSArKysrKysrKwogV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJvb2xlYW5DYWxs
YmFjay5oICAgIHwgICA1NyArKysrKysrKwogV2ViQ29yZS9jc3MvQm9vbGVhbkNhbGxiYWNrLmgg
ICAgICAgICAgICAgIHwgICA0NyArKysrKysrCiBXZWJDb3JlL2Nzcy9TdHlsZU1lZGlhLmNwcCAg
ICAgICAgICAgICAgICAgfCAgMjAwICsrKysrKysrKysrKysrKysrKysrKysrKysrLS0KIFdlYkNv
cmUvY3NzL1N0eWxlTWVkaWEuaCAgICAgICAgICAgICAgICAgICB8ICAgNTIgKysrKysrKy0KIFdl
YkNvcmUvY3NzL1N0eWxlTWVkaWEuaWRsICAgICAgICAgICAgICAgICB8ICAgIDUgKy0KIFdlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcCAgICAgICAgICAgICAgICAgICB8ICAgIDQgKwogMTQgZmlsZXMg
Y2hhbmdlZCwgNjA0IGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUg
MTAwNjQ0IFdlYkNvcmUvYmluZGluZ3MvanMvSlNCb29sZWFuQ2FsbGJhY2suY3BwCiBjcmVhdGUg
bW9kZSAxMDA2NDQgV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Jvb2xlYW5DYWxsYmFjay5oCiBjcmVh
dGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJvb2xlYW5DYWxsYmFjay5jcHAK
IGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Qm9vbGVhbkNhbGxiYWNr
LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL2Nzcy9Cb29sZWFuQ2FsbGJhY2suaAoKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDcz
YThlZS4uYzEzYWQzNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MyBAQAorMjAxMC0wOC0xMiAgTHVpeiBBZ29zdGluaSAg
PGx1aXouYWdvc3RpbmlAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBNZWRpYSBsaXN0ZW5lcnMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3MjA1CisKKyAgICAgICAgSW1wbGVtZW50
aW5nIFN0eWxlTWVkaWEgaW50ZXJmYWNlIGFzIHNwZWNpZmllZCBpbgorICAgICAgICBodHRwOi8v
ZGV2LnczLm9yZy9jc3N3Zy9jc3NvbS12aWV3LyN0aGUtc3R5bGVtZWRpYS1pbnRlcmZhY2UuCisK
KyAgICAgICAgVGhpcyBpcyBhIGZpcnN0IHZlcnNpb24gb2YgdGhlIHBhdGNoLiBTdHlsZU1lZGlh
LCBCb29sZWFuQ2FsbGJhY2sgYW5kCisgICAgICAgIEpTQm9vbGVhbkNhbGxiYWNrIGNsYXNzZXMg
YXJlIGZ1bGx5IGltcGxlbWVudGVkIGFuZCB0ZXN0ZWQgaW4gUXQgcGxhdGZvcm0uCisKKyAgICAg
ICAgT3RoZXIgcGxhdGZvcm1zIHN0aWxsIG5lZWQgYWRqdXN0bWVudHMuCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICog
V2ViQ29yZS5wcm86CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHA6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNCb29sZWFuQ2FsbGJhY2suY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkpTQm9vbGVhbkNhbGxiYWNrOjpoYW5kbGVFdmVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpKU0Jvb2xlYW5DYWxsYmFjazo6aXNFcXVhbCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNC
b29sZWFuQ2FsbGJhY2suaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpKU0Jvb2xlYW5DYWxs
YmFjazo6SlNCb29sZWFuQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6dG9Cb29sZWFuQ2Fs
bGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4Qm9vbGVhbkNhbGxiYWNrLmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpWOEJvb2xlYW5DYWxsYmFjazo6aXNFcXVhbCk6CisgICAg
ICAgIChXZWJDb3JlOjpWOEJvb2xlYW5DYWxsYmFjazo6aGFuZGxlRXZlbnQpOgorICAgICAgICAq
IGJpbmRpbmdzL3Y4L1Y4Qm9vbGVhbkNhbGxiYWNrLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6VjhCb29sZWFuQ2FsbGJhY2s6OlY4Qm9vbGVhbkNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNv
cmU6OnRvQm9vbGVhbkNhbGxiYWNrKToKKyAgICAgICAgKiBjc3MvQm9vbGVhbkNhbGxiYWNrLmg6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Qm9vbGVhbkNhbGxiYWNrOjp+Qm9vbGVhbkNhbGxi
YWNrKToKKyAgICAgICAgKiBjc3MvU3R5bGVNZWRpYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZU1lZGlhOjpRdWVyeTo6UXVlcnkpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVNZWRpYTo6
UXVlcnk6On5RdWVyeSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZU1lZGlhOjpRdWVyeTo6ZXZh
bHVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVNZWRpYTo6TGlzdGVuZXI6Okxpc3RlbmVy
KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlTWVkaWE6Okxpc3RlbmVyOjp+TGlzdGVuZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGVNZWRpYTo6TGlzdGVuZXI6OmhhbmRsZUV2ZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlTWVkaWE6OlN0eWxlTWVkaWEpOgorICAgICAgICAoV2ViQ29y
ZTo6U3R5bGVNZWRpYTo6flN0eWxlTWVkaWEpOgorICAgICAgICAoV2ViQ29yZTo6cGFyc2UpOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGVNZWRpYTo6bWF0Y2hNZWRpYSk6CisgICAgICAgIChXZWJD
b3JlOjpTdHlsZU1lZGlhOjpwcmVwYXJlRXZhbHVhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlTWVkaWE6OmFkZE1lZGlhTGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVNZWRp
YTo6cmVtb3ZlTWVkaWFMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZU1lZGlhOjpz
dHlsZUNoYW5nZWQpOgorICAgICAgICAqIGNzcy9TdHlsZU1lZGlhLmg6CisgICAgICAgIChXZWJD
b3JlOjpTdHlsZU1lZGlhOjpRdWVyeTo6dmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVN
ZWRpYTo6UXVlcnk6OmNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVNZWRpYTo6UXVl
cnk6OnJlZkNvdW50KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlTWVkaWE6Okxpc3RlbmVyOjpx
dWVyeSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZU1lZGlhOjpMaXN0ZW5lcjo6Y2FsbGJhY2sp
OgorICAgICAgICAqIGNzcy9TdHlsZU1lZGlhLmlkbDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZVN0eWxlU2VsZWN0b3IpOgor
CiAyMDEwLTA4LTEyICBEaXJrIFNjaHVsemUgIDxrcml0QHdlYmtpdC5vcmc+CiAKICAgICAgICAg
VW5yZXZpZXdlZCBzb3J0IG9mIFhDb2RlIHByb2plY3QgZmlsZS4KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNGJmNjJkMy4uNDBl
MTFjZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKQEAgLTUxMCw2ICs1MTAsOCBAQAogICAgICAgICAgICAgJ2JpbmRpbmdzL2dlbmVy
aWMvR2VuZXJpY0JpbmRpbmcuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvZ2VuZXJpYy9SdW50
aW1lRW5hYmxlZEZlYXR1cmVzLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvZ2VuZXJpYy9S
dW50aW1lRW5hYmxlZEZlYXR1cmVzLmgnLAorICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTQm9v
bGVhbkNhbGxiYWNrLmNwcCcsCisgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNCb29sZWFuQ2Fs
bGJhY2suaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0U291cmNlUHJv
dmlkZXIuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvRE9NT2JqZWN0V2l0aFNWR0NvbnRl
eHQuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvRE9NT2JqZWN0SGFzaFRhYmxlTWFwLmNw
cCcsCkBAIC04MTIsNiArODE0LDggQEAKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20v
VjhYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3Mv
djgvY3VzdG9tL1Y4WE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5k
aW5ncy92OC9jdXN0b20vVjhYU0xUUHJvY2Vzc29yQ3VzdG9tLmNwcCcsCisgICAgICAgICAgICAn
YmluZGluZ3MvanMvVjhCb29sZWFuQ2FsbGJhY2suY3BwJywKKyAgICAgICAgICAgICdiaW5kaW5n
cy9qcy9WOEJvb2xlYW5DYWxsYmFjay5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9EYXRl
RXh0ZW5zaW9uLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvRGF0ZUV4dGVuc2lvbi5o
JywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9ET01EYXRhLmNwcCcsCkBAIC05MzIsNiArOTM2
LDcgQEAKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9ucHJ1bnRpbWVfaW1wbC5oJywKICAgICAg
ICAgICAgICdiaW5kaW5ncy92OC9ucHJ1bnRpbWVfaW50ZXJuYWwuaCcsCiAgICAgICAgICAgICAn
YmluZGluZ3MvdjgvbnBydW50aW1lX3ByaXYuaCcsCisgICAgICAgICAgICAnY3NzL0Jvb2xlYW5D
YWxsYmFjay5oJywKICAgICAgICAgICAgICdjc3MvQ1NTQm9yZGVySW1hZ2VWYWx1ZS5jcHAnLAog
ICAgICAgICAgICAgJ2Nzcy9DU1NCb3JkZXJJbWFnZVZhbHVlLmgnLAogICAgICAgICAgICAgJ2Nz
cy9DU1NDYW52YXNWYWx1ZS5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBi
L1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggMzhhMTlkOC4uODA5Y2NlOSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0yODYsNiAr
Mjg2LDcgQEAgU09VUkNFUyArPSBcCiAgICAgYmluZGluZ3MvanMvR0NDb250cm9sbGVyLmNwcCBc
CiAgICAgYmluZGluZ3MvanMvRE9NT2JqZWN0SGFzaFRhYmxlTWFwLmNwcCBcCiAgICAgYmluZGlu
Z3MvanMvRE9NV3JhcHBlcldvcmxkLmNwcCBcCisgICAgYmluZGluZ3MvanMvSlNCb29sZWFuQ2Fs
bGJhY2suY3BwIFwKICAgICBiaW5kaW5ncy9qcy9KU0NhbGxiYWNrRGF0YS5jcHAgXAogICAgIGJp
bmRpbmdzL2pzL0pTQXR0ckN1c3RvbS5jcHAgXAogICAgIGJpbmRpbmdzL2pzL0pTQ0RBVEFTZWN0
aW9uQ3VzdG9tLmNwcCBcCkBAIC0xMTAxLDYgKzExMDIsNyBAQCBIRUFERVJTICs9IFwKICAgICBi
aW5kaW5ncy9qcy9HQ0NvbnRyb2xsZXIuaCBcCiAgICAgYmluZGluZ3MvanMvRE9NT2JqZWN0SGFz
aFRhYmxlTWFwLmggXAogICAgIGJpbmRpbmdzL2pzL0RPTVdyYXBwZXJXb3JsZC5oIFwKKyAgICBi
aW5kaW5ncy9qcy9KU0Jvb2xlYW5DYWxsYmFjay5jcHAgXAogICAgIGJpbmRpbmdzL2pzL0pTQ2Fs
bGJhY2tEYXRhLmggXAogICAgIGJpbmRpbmdzL2pzL0pTQXVkaW9Db25zdHJ1Y3Rvci5oIFwKICAg
ICBiaW5kaW5ncy9qcy9KU0NTU1N0eWxlRGVjbGFyYXRpb25DdXN0b20uaCBcCmRpZmYgLS1naXQg
YS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGFlNTFjOTguLmQ0MTgzZTYgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01MDcxLDYgKzUw
NzEsOCBAQAogCQlEMjNDQTU2QzBBQjBFQjhEMDA1MTA4QTUgLyogUmFuZ2VFeGNlcHRpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQyM0NBNTZCMEFC
MEVCOEQwMDUxMDhBNSAvKiBSYW5nZUV4Y2VwdGlvbi5oICovOyB9OwogCQlEMzlEMDA2RDExRjhF
MzA4MDA2MDQxRjIgLyogUG9wdXBNZW51TWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBEMzlEMDA2QzExRjhFMzA4MDA2MDQxRjIgLyogUG9wdXBNZW51
TWFjLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
RDM5RDAwOUQxMUY5MDdFNjAwNjA0MUYyIC8qIFNlYXJjaFBvcHVwTWVudU1hYy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDM5RDAwOUMxMUY5MDdFNjAw
NjA0MUYyIC8qIFNlYXJjaFBvcHVwTWVudU1hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCUQzQUIxOTc5MTIxMURBMjUwMEY5QTE5NiAvKiBKU0Jv
b2xlYW5DYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBEM0FCMTk3NzEyMTFEQTI1MDBGOUExOTYgLyogSlNCb29sZWFuQ2FsbGJhY2suY3Bw
ICovOyB9OworCQlEM0FCMTk3QTEyMTFEQTI1MDBGOUExOTYgLyogSlNCb29sZWFuQ2FsbGJhY2su
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQUIxOTc4
MTIxMURBMjUwMEY5QTE5NiAvKiBKU0Jvb2xlYW5DYWxsYmFjay5oICovOyB9OwogCQlEOEI2MTUy
RjEwMzI0OTUxMDBDODU1NEEgLyogQ29va2llLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBEOEI2MTUyRTEwMzI0OTUxMDBDODU1NEEgLyogQ29va2llLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJREIyM0My
Q0IwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERCMjNDMkM5MEE1MDhEMjkwMDI0
ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAgKi87IH07CiAJCURCMjNDMkNDMEE1MDhE
MjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREIyM0MyQ0EwQTUwOEQyOTAwMjQ4OUVCIC8qIElu
ZGVudE91dGRlbnRDb21tYW5kLmggKi87IH07CkBAIC0xMDgzOSw2ICsxMDg0MSw4IEBACiAJCUQy
M0NBNTZCMEFCMEVCOEQwMDUxMDhBNSAvKiBSYW5nZUV4Y2VwdGlvbi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUmFuZ2VFeGNlcHRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRDM5RDAwNkMxMUY4RTMwODAwNjA0MUYyIC8qIFBvcHVwTWVudU1hYy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQb3B1cE1lbnVNYWMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDM5RDAwOUMxMUY5MDdFNjAwNjA0MUYyIC8qIFNlYXJjaFBv
cHVwTWVudU1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZWFyY2hQb3B1
cE1lbnVNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDNBQjE5NzcxMjExREEy
NTAwRjlBMTk2IC8qIEpTQm9vbGVhbkNhbGxiYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTQm9vbGVhbkNhbGxiYWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRDNBQjE5NzgxMjExREEyNTAwRjlBMTk2IC8qIEpTQm9vbGVhbkNhbGxiYWNr
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQm9vbGVhbkNhbGxiYWNrLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQ4QjYxNTJFMTAzMjQ5NTEwMEM4NTU0QSAv
KiBDb29raWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29va2llLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURCMjNDMkM5MEE1MDhEMjkwMDI0ODlFQiAvKiBJ
bmRlbnRPdXRkZW50Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSW5kZW50T3V0ZGVudENvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlEQjIzQzJDQTBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluZGVudE91dGRlbnRDb21tYW5kLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjM2Niw2ICsxNjM3MCw4IEBACiAJCUJD
Q0U1OEE3MTA2MUU4MkYwMDhGQjM1QSAvKiBDYWxsYmFjayBPYmplY3RzICovID0gewogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlEM0FCMTk3NzEyMTFEQTI1MDBGOUEx
OTYgLyogSlNCb29sZWFuQ2FsbGJhY2suY3BwICovLAorCQkJCUQzQUIxOTc4MTIxMURBMjUwMEY5
QTE5NiAvKiBKU0Jvb2xlYW5DYWxsYmFjay5oICovLAogCQkJCTE0NDlFMjg2MTA3RDREQjQwMEI1
NzkzRiAvKiBKU0NhbGxiYWNrRGF0YS5jcHAgKi8sCiAJCQkJMTQ0OUUyNEExMDdENEE4NDAwQjU3
OTNGIC8qIEpTQ2FsbGJhY2tEYXRhLmggKi8sCiAJCQkJRkU4MEQ3QTIwRTlDMUVEMjAwMEQ2Rjc1
IC8qIEpTQ3VzdG9tUG9zaXRpb25DYWxsYmFjay5jcHAgKi8sCkBAIC0yMDE0OSw2ICsyMDE1NSw3
IEBACiAJCQkJRTFCRTUxMkUwQ0Y2QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTdERDREODcwRkRGNEQ2RTAwRUNGOUE0IC8qIFhTU0F1ZGl0b3Iu
aCBpbiBIZWFkZXJzICovLAogCQkJCUNFMTcyRTAxMTEzNkU4Q0UwMDYyQTUzMyAvKiBab29tTW9k
ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRDNBQjE5N0ExMjExREEyNTAwRjlBMTk2IC8qIEpTQm9v
bGVhbkNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95
bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTIyNTc0LDYgKzIyNTgxLDcgQEAKIAkJ
CQk5M0YxOUIwNTA4MjQ1RTU5MDAxRTlBQkMgLyogWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJRTFCRTUxMkQwQ0Y2QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmljb2Rl
U29ydC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5N0RENEQ4NjBGREY0RDZFMDBFQ0Y5QTQgLyog
WFNTQXVkaXRvci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlEM0FCMTk3OTEyMTFEQTI1MDBGOUEx
OTYgLyogSlNCb29sZWFuQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVu
T25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAgYi9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKaW5kZXggOTIyZTQ0OS4uODViNmZlYSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCisrKyBi
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcApAQCAtMzAsNiArMzAs
NyBAQAogI2luY2x1ZGUgIkdDQ29udHJvbGxlci5jcHAiCiAjaW5jbHVkZSAiSlNBdHRyQ3VzdG9t
LmNwcCIKICNpbmNsdWRlICJKU0F1ZGlvQ29uc3RydWN0b3IuY3BwIgorI2luY2x1ZGUgIkpTQm9v
bGVhbkNhbGxiYWNrLmNwcCIKICNpbmNsdWRlICJKU0NEQVRBU2VjdGlvbkN1c3RvbS5jcHAiCiAj
aW5jbHVkZSAiSlNDU1NSdWxlQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0NTU1J1bGVMaXN0Q3Vz
dG9tLmNwcCIKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCb29sZWFuQ2FsbGJh
Y2suY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Jvb2xlYW5DYWxsYmFjay5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWJmZTQwZQotLS0gL2Rldi9udWxsCisrKyBi
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNCb29sZWFuQ2FsbGJhY2suY3BwCkBAIC0wLDAgKzEsNjIg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkpTQm9vbGVhbkNhbGxiYWNrLmgiCisKKyNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgSlNCb29sZWFuQ2FsbGJhY2s6OmhhbmRsZUV2ZW50
KFNjcmlwdFN0YXRlKiBzdGF0ZSwgYm9vbCBxdWVyeVJlc3VsdCkgY29uc3QKK3sKKyAgICB1c2lu
ZyBuYW1lc3BhY2UgSlNDOworCisgICAgSlNMb2NrIGxvY2soU2lsZW5jZUFzc2VydGlvbnNPbmx5
KTsKKworICAgIENhbGxEYXRhIGNhbGxEYXRhOworICAgIENhbGxUeXBlIGNhbGxUeXBlID0gZ2V0
Q2FsbERhdGEobV9jYWxsYmFjay5qc1ZhbHVlKCksIGNhbGxEYXRhKTsKKworICAgIEFTU0VSVChj
YWxsVHlwZSAhPSBDYWxsVHlwZU5vbmUpOworCisgICAgSlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZl
ciBhcmdzOworICAgIGFyZ3MuYXBwZW5kKGpzQm9vbGVhbihxdWVyeVJlc3VsdCkpOworCisgICAg
SlNWYWx1ZSByZXN1bHQgPSBKU0M6OmNhbGwoc3RhdGUsIG1fY2FsbGJhY2suanNWYWx1ZSgpLCBj
YWxsVHlwZSwgY2FsbERhdGEsIG1fY2FsbGJhY2suanNWYWx1ZSgpLCBhcmdzKTsKKworICAgIGlm
IChzdGF0ZS0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgIHJlcG9ydEV4Y2VwdGlvbihzdGF0ZSwg
c3RhdGUtPmV4Y2VwdGlvbigpKTsKK30KKworYm9vbCBKU0Jvb2xlYW5DYWxsYmFjazo6aXNFcXVh
bChTY3JpcHRTdGF0ZSogc3RhdGUsIGNvbnN0IEJvb2xlYW5DYWxsYmFjayYgb3RoZXIpIGNvbnN0
Cit7CisgICAgY29uc3QgSlNCb29sZWFuQ2FsbGJhY2sqIGNhbGxiYWNrID0gc3RhdGljX2Nhc3Q8
Y29uc3QgSlNCb29sZWFuQ2FsbGJhY2sqPigmb3RoZXIpOworICAgIGlmICghY2FsbGJhY2spCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiBtX2NhbGxiYWNrLmlzRXF1YWwoc3Rh
dGUsIGNhbGxiYWNrLT5tX2NhbGxiYWNrKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0Jvb2xlYW5DYWxsYmFjay5oIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Jv
b2xlYW5DYWxsYmFjay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNhNDA2
MzgKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQm9vbGVhbkNhbGxi
YWNrLmgKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBD
b3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEpT
Qm9vbGVhbkNhbGxiYWNrX2gKKyNkZWZpbmUgSlNCb29sZWFuQ2FsbGJhY2tfaAorCisjaW5jbHVk
ZSAiQm9vbGVhbkNhbGxiYWNrLmgiCisjaW5jbHVkZSAiU2NyaXB0VmFsdWUuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBKU0Jvb2xlYW5DYWxsYmFjayA6IHB1YmxpYyBCb29sZWFu
Q2FsbGJhY2sgeworcHVibGljOgorICAgIGV4cGxpY2l0IEpTQm9vbGVhbkNhbGxiYWNrKEpTQzo6
SlNWYWx1ZSBjYWxsYmFjaykgOiBtX2NhbGxiYWNrKGNhbGxiYWNrKSB7fQorCisgICAgdmlydHVh
bCB2b2lkIGhhbmRsZUV2ZW50KFNjcmlwdFN0YXRlKiwgYm9vbCkgY29uc3Q7CisgICAgdmlydHVh
bCBib29sIGlzRXF1YWwoU2NyaXB0U3RhdGUqLCBjb25zdCBCb29sZWFuQ2FsbGJhY2smKSBjb25z
dDsKKworcHJpdmF0ZToKKyAgICBTY3JpcHRWYWx1ZSBtX2NhbGxiYWNrOworfTsKKworaW5saW5l
IEJvb2xlYW5DYWxsYmFjayogdG9Cb29sZWFuQ2FsbGJhY2soSlNDOjpKU1ZhbHVlIGNhbGxiYWNr
KQoreworICAgIEpTQzo6Q2FsbERhdGEgY2FsbERhdGE7CisgICAgSlNDOjpDYWxsVHlwZSBjYWxs
VHlwZSA9IGdldENhbGxEYXRhKGNhbGxiYWNrLCBjYWxsRGF0YSk7CisgICAgaWYgKGNhbGxUeXBl
ID09IEpTQzo6Q2FsbFR5cGVOb25lKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBu
ZXcgSlNCb29sZWFuQ2FsbGJhY2soY2FsbGJhY2spOworfQorCit9CisKKyNlbmRpZiAvLyBKU0JP
T0xFQU5DQUxMQkFDS19ICmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Qm9vbGVh
bkNhbGxiYWNrLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCb29sZWFuQ2FsbGJhY2suY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFmN2UxYmIKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Qm9vbGVhbkNhbGxiYWNrLmNwcApAQCAtMCww
ICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJWOEJvb2xlYW5DYWxs
YmFjay5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Jvb2wgVjhCb29sZWFuQ2FsbGJhY2s6
OmlzRXF1YWwoU2NyaXB0U3RhdGUqIHN0YXRlLCBjb25zdCBCb29sZWFuQ2FsbGJhY2smIG90aGVy
KSBjb25zdAoreworICAgIGNvbnN0IFY4Qm9vbGVhbkNhbGxiYWNrKiBjYWxsYmFjayA9IHN0YXRp
Y19jYXN0PGNvbnN0IFY4Qm9vbGVhbkNhbGxiYWNrKj4oJm90aGVyKTsKKyAgICBpZiAoIWNhbGxi
YWNrKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gbV9jYWxsYmFjay5pc0Vx
dWFsKHN0YXRlLCBjYWxsYmFjay0+bV9jYWxsYmFjayk7Cit9CisKK3ZvaWQgVjhCb29sZWFuQ2Fs
bGJhY2s6OmhhbmRsZUV2ZW50KFNjcmlwdFN0YXRlKiBzdGF0ZSwgYm9vbCB2YWx1ZSkgY29uc3QK
K3sKKyAgICBBU1NFUlQodjg6OkNvbnRleHQ6OkluQ29udGV4dCgpKTsKKworICAgIGlmICghbV9j
YWxsYmFjay0+djhWYWx1ZSgpLT5Jc0Z1bmN0aW9uKCkpCisgICAgICAgIHJldHVybjsKKworICAg
IHY4OjpUcnlDYXRjaCBleGNlcHRpb25DYXRjaGVyOworCisgICAgdjg6OkhhbmRsZTx2ODo6T2Jq
ZWN0PiBvYmplY3QgPSB2ODo6Q29udGV4dDo6R2V0Q3VycmVudCgpLT5HbG9iYWwoKTsKKyAgICB2
ODo6SGFuZGxlPHY4OjpGdW5jdGlvbj4gY2FsbGJhY2sgPSB2ODo6SGFuZGxlPHY4OjpGdW5jdGlv
bj46OkNhc3QobV9jYWxsYmFjay0+djhWYWx1ZSgpKTsKKyAgICBPd25BcnJheVB0cjx2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gPiBhcmdzKG5ldyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT5bMV0pOworICAg
IGFyZ3NbMF0gPSB0b1Y4KHZhbHVlKTsKKworICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiByZXN1
bHQgPSBWOFByb3h5OjpjYWxsRnVuY3Rpb25XaXRob3V0RnJhbWUoY2FsbGJhY2ssIG9iamVjdCwg
MSwgYXJncy5nZXQoKSk7CisKKyAgICBpZiAoZXhjZXB0aW9uQ2F0Y2hlci5IYXNDYXVnaHQoKSkK
KyAgICAgICAgc3RhdGUtPnNldEV4Y2VwdGlvbihleGNlcHRpb25DYXRjaGVyLkV4Y2VwdGlvbigp
KTsKK30KKworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJvb2xlYW5DYWxs
YmFjay5oIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJvb2xlYW5DYWxsYmFjay5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYwNWYwMjkKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Qm9vbGVhbkNhbGxiYWNrLmgKQEAgLTAsMCArMSw1NyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1
YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFY4Qm9vbGVhbkNhbGxiYWNrX2gKKyNkZWZp
bmUgVjhCb29sZWFuQ2FsbGJhY2tfaAorCisjaW5jbHVkZSAiQm9vbGVhbkNhbGxiYWNrLmgiCisj
aW5jbHVkZSAiU2NyaXB0VmFsdWUuaCIKKworI2luY2x1ZGUgPHY4Lmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgVjhCb29sZWFuQ2FsbGJhY2sgOiBwdWJsaWMgQm9vbGVhbkNhbGxi
YWNrIHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBWOEJvb2xlYW5DYWxsYmFjayh2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gY2FsbGJhY2spIDogbV9jYWxsYmFjayhjYWxsYmFjaykge30KKworICAgIHZp
cnR1YWwgdm9pZCBoYW5kbGVFdmVudChTY3JpcHRTdGF0ZSosIGJvb2wpIGNvbnN0OworICAgIHZp
cnR1YWwgYm9vbCBpc0VxdWFsKFNjcmlwdFN0YXRlKiwgY29uc3QgQm9vbGVhbkNhbGxiYWNrJikg
Y29uc3Q7CisKK3ByaXZhdGU6CisgICAgU2NyaXB0VmFsdWUgbV9jYWxsYmFjazsKK307CisKK2lu
bGluZSBCb29sZWFuQ2FsbGJhY2sqIHRvQm9vbGVhbkNhbGxiYWNrKHY4OjpIYW5kbGU8djg6OlZh
bHVlPiBjYWxsYmFjaykKK3sKKyAgICBpZiAoIWNhbGxiYWNrLT5Jc0Z1bmN0aW9uKCkpCisgICAg
ICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIG5ldyBWOEJvb2xlYW5DYWxsYmFjayhjYWxsYmFj
ayk7Cit9CisKK30KKworI2VuZGlmIC8vIFY4Qm9vbGVhbkNhbGxiYWNrX2gKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvY3NzL0Jvb2xlYW5DYWxsYmFjay5oIGIvV2ViQ29yZS9jc3MvQm9vbGVhbkNhbGxi
YWNrLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2ExZTgzNgotLS0gL2Rl
di9udWxsCisrKyBiL1dlYkNvcmUvY3NzL0Jvb2xlYW5DYWxsYmFjay5oCkBAIC0wLDAgKzEsNDcg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBCb29sZWFuQ2FsbGJhY2tfaAorI2Rl
ZmluZSBCb29sZWFuQ2FsbGJhY2tfaAorCisKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgor
I2luY2x1ZGUgIlNjcmlwdFN0YXRlLmgiCisKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEJvb2xlYW5DYWxsYmFjayB7CitwdWJsaWM6
CisgICAgdmlydHVhbCB+Qm9vbGVhbkNhbGxiYWNrKCkge30KKworICAgIHZpcnR1YWwgdm9pZCBo
YW5kbGVFdmVudChTY3JpcHRTdGF0ZSosIGJvb2wpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGJv
b2wgaXNFcXVhbChTY3JpcHRTdGF0ZSosIGNvbnN0IEJvb2xlYW5DYWxsYmFjayYpIGNvbnN0ID0g
MDsKK307CisKK30KKworI2VuZGlmIC8vIEJvb2xlYW5DYWxsYmFja19oCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2Nzcy9TdHlsZU1lZGlhLmNwcCBiL1dlYkNvcmUvY3NzL1N0eWxlTWVkaWEuY3BwCmlu
ZGV4IDg5NzFkMzUuLjhlNWRjYTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL1N0eWxlTWVkaWEu
Y3BwCisrKyBiL1dlYkNvcmUvY3NzL1N0eWxlTWVkaWEuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoK
ICAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRp
YXJ5KC1pZXMpCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI5LDE2ICszMCw2
OCBAQAogI2luY2x1ZGUgIkNTU1N0eWxlU2VsZWN0b3IuaCIKICNpbmNsdWRlICJGcmFtZS5oIgog
I2luY2x1ZGUgIkZyYW1lVmlldy5oIgotI2luY2x1ZGUgIk1lZGlhTGlzdC5oIgotI2luY2x1ZGUg
Ik1lZGlhUXVlcnlFdmFsdWF0b3IuaCIKKyNpbmNsdWRlICJNZWRpYVF1ZXJ5LmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAorLy8gU3R5bGVNZWRpYTo6UXVlcnkKKworU3R5bGVNZWRpYTo6UXVl
cnk6OlF1ZXJ5KFBhc3NSZWZQdHI8TWVkaWFMaXN0PiBtZWRpYSwgUGFzc093blB0cjxNZWRpYVF1
ZXJ5RXZhbHVhdG9yPiBldmFsdWF0b3IsIGludCYgcm91bmQpCisgICAgOiBtX21lZGlhKG1lZGlh
KQorICAgICwgbV9jdXJyZW50VmFsdWUoZXZhbHVhdG9yICYmIGV2YWx1YXRvci0+ZXZhbChtX21l
ZGlhLmdldCgpKSkKKyAgICAsIG1fY3VycmVudFJvdW5kKHJvdW5kKQorICAgICwgbV9jaGFuZ2VS
b3VuZChtX2N1cnJlbnRSb3VuZCAtIDEpCisgICAgLCBtX3JlZkNvdW50KDApCit7Cit9CisKK1N0
eWxlTWVkaWE6OlF1ZXJ5Ojp+UXVlcnkoKQoreworfQorCit2b2lkIFN0eWxlTWVkaWE6OlF1ZXJ5
OjpldmFsdWF0ZShNZWRpYVF1ZXJ5RXZhbHVhdG9yKiBldmFsdWF0b3IpCit7CisgICAgYm9vbCBu
ZXdWYWx1ZSA9IGV2YWx1YXRvciAmJiBldmFsdWF0b3ItPmV2YWwobV9tZWRpYS5nZXQoKSk7Cisg
ICAgaWYgKG5ld1ZhbHVlICE9IG1fY3VycmVudFZhbHVlKSB7CisgICAgICAgIG1fY3VycmVudFZh
bHVlID0gbmV3VmFsdWU7CisgICAgICAgIG1fY2hhbmdlUm91bmQgPSBtX2N1cnJlbnRSb3VuZDsK
KyAgICB9Cit9CisKKy8vIFN0eWxlTWVkaWE6Okxpc3RlbmVyCisKK1N0eWxlTWVkaWE6Okxpc3Rl
bmVyOjpMaXN0ZW5lcihRdWVyeSogcXVlcnksIFBhc3NPd25QdHI8Qm9vbGVhbkNhbGxiYWNrPiBj
YWxsYmFjaykKKyAgICA6IG1fcXVlcnkocXVlcnkpCisgICAgLCBtX2NhbGxiYWNrKGNhbGxiYWNr
KQoreworICAgICsrbV9xdWVyeS0+bV9yZWZDb3VudDsKK30KKworU3R5bGVNZWRpYTo6TGlzdGVu
ZXI6On5MaXN0ZW5lcigpCit7CisgICAgLS1tX3F1ZXJ5LT5tX3JlZkNvdW50OworfQorCit2b2lk
IFN0eWxlTWVkaWE6Okxpc3RlbmVyOjpoYW5kbGVFdmVudChTY3JpcHRTdGF0ZSogZXhlYykKK3sK
KyAgICBpZiAobV9xdWVyeS0+Y2hhbmdlZCgpKQorICAgICAgICBtX2NhbGxiYWNrLT5oYW5kbGVF
dmVudChleGVjLCBtX3F1ZXJ5LT52YWx1ZSgpKTsKK30KKworLy8gU3R5bGVNZWRpYQorCiBTdHls
ZU1lZGlhOjpTdHlsZU1lZGlhKEZyYW1lKiBmcmFtZSkKICAgICA6IG1fZnJhbWUoZnJhbWUpCisg
ICAgLCBtX2N1cnJlbnRSb3VuZCgwKQogewogfQogCitTdHlsZU1lZGlhOjp+U3R5bGVNZWRpYSgp
Cit7CisgICAgZGVsZXRlQWxsVmFsdWVzKG1fbGlzdGVuZXJzKTsKKyAgICBkZWxldGVBbGxWYWx1
ZXMobV9xdWVyaWVzKTsKK30KKwogU3RyaW5nIFN0eWxlTWVkaWE6OnR5cGUoKSBjb25zdAogewog
ICAgIEZyYW1lVmlldyogdmlldyA9IG1fZnJhbWUgPyBtX2ZyYW1lLT52aWV3KCkgOiAwOwpAQCAt
NDgsMzEgKzEwMSwxNTIgQEAgU3RyaW5nIFN0eWxlTWVkaWE6OnR5cGUoKSBjb25zdAogICAgIHJl
dHVybiBTdHJpbmcoKTsKIH0KIAotYm9vbCBTdHlsZU1lZGlhOjptYXRjaE1lZGl1bShjb25zdCBT
dHJpbmcmIHF1ZXJ5KSBjb25zdAorc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFMaXN0PiBwYXJzZShj
b25zdCBTdHJpbmcmIHF1ZXJ5KQogewotICAgIGlmICghbV9mcmFtZSkKKyAgICBSZWZQdHI8TWVk
aWFMaXN0PiBtZWRpYSA9IE1lZGlhTGlzdDo6Y3JlYXRlKCk7CisgICAgRXhjZXB0aW9uQ29kZSBl
YyA9IDA7CisgICAgbWVkaWEtPnNldE1lZGlhVGV4dChxdWVyeSwgZWMpOworICAgIGlmIChlYykK
KyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG1lZGlhOworfQorCitib29sIFN0eWxlTWVk
aWE6Om1hdGNoTWVkaWEoY29uc3QgU3RyaW5nJiBxdWVyeSkgY29uc3QKK3sKKyAgICBSZWZQdHI8
TWVkaWFMaXN0PiBtZWRpYSA9IHBhcnNlKHF1ZXJ5KTsKKyAgICBpZiAoIW1lZGlhKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKKyAgICBPd25QdHI8TWVkaWFRdWVyeUV2YWx1YXRvcj4gZXZhbHVh
dG9yKHByZXBhcmVFdmFsdWF0b3IoKSk7CisgICAgcmV0dXJuIGV2YWx1YXRvciAmJiBldmFsdWF0
b3ItPmV2YWwobWVkaWEuZ2V0KCkpOworfQorCitQYXNzT3duUHRyPE1lZGlhUXVlcnlFdmFsdWF0
b3I+IFN0eWxlTWVkaWE6OnByZXBhcmVFdmFsdWF0b3IoKSBjb25zdAoreworICAgIGlmICghbV9m
cmFtZSkKKyAgICAgICAgcmV0dXJuIDA7CisKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBtX2Zy
YW1lLT5kb2N1bWVudCgpOwogICAgIEFTU0VSVChkb2N1bWVudCk7CisgICAgaWYgKCFkb2N1bWVu
dCkKKyAgICAgICAgcmV0dXJuIDA7CisKICAgICBFbGVtZW50KiBkb2N1bWVudEVsZW1lbnQgPSBk
b2N1bWVudC0+ZG9jdW1lbnRFbGVtZW50KCk7CisgICAgQVNTRVJUKGRvY3VtZW50RWxlbWVudCk7
CiAgICAgaWYgKCFkb2N1bWVudEVsZW1lbnQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg
ICAgcmV0dXJuIDA7CiAKICAgICBDU1NTdHlsZVNlbGVjdG9yKiBzdHlsZVNlbGVjdG9yID0gZG9j
dW1lbnQtPnN0eWxlU2VsZWN0b3IoKTsKICAgICBpZiAoIXN0eWxlU2VsZWN0b3IpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIDA7CiAKICAgICBSZWZQdHI8UmVuZGVyU3R5
bGU+IHJvb3RTdHlsZSA9IHN0eWxlU2VsZWN0b3ItPnN0eWxlRm9yRWxlbWVudChkb2N1bWVudEVs
ZW1lbnQsIDAgLypkZWZhdWx0UGFyZW50Ki8sIGZhbHNlIC8qYWxsb3dTaGFyaW5nKi8sIHRydWUg
LypyZXNvbHZlRm9yUm9vdERlZmF1bHQqLyk7Ci0gICAgUmVmUHRyPE1lZGlhTGlzdD4gbWVkaWEg
PSBNZWRpYUxpc3Q6OmNyZWF0ZSgpOwogCi0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAg
bWVkaWEtPnNldE1lZGlhVGV4dChxdWVyeSwgZWMpOwotICAgIGlmIChlYykKLSAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIHJldHVybiBuZXcgTWVkaWFRdWVyeUV2YWx1YXRvcih0eXBlKCksIG1f
ZnJhbWUsIHJvb3RTdHlsZS5nZXQoKSk7Cit9CisKK3ZvaWQgU3R5bGVNZWRpYTo6YWRkTWVkaWFM
aXN0ZW5lcihjb25zdCBTdHJpbmcmIHF1ZXJ5TGlzdCwgUGFzc093blB0cjxCb29sZWFuQ2FsbGJh
Y2s+IGNhbGxiYWNrKQoreworICAgIGlmICghY2FsbGJhY2sgfHwgcXVlcnlMaXN0LmlzRW1wdHko
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUmVmUHRyPE1lZGlhTGlzdD4gbWVkaWEgPSBwYXJz
ZShxdWVyeUxpc3QpOworICAgIGlmICghbWVkaWEpCisgICAgICAgIHJldHVybjsKKworICAgIFN0
cmluZyBrZXkgPSBtZWRpYS0+bWVkaWFUZXh0KCk7CisvLyAgICBTdHJpbmcga2V5ID0gd3JpdGVN
ZWRpYUxpc3RLZXkobWVkaWEuZ2V0KCkpOworICAgIGlmIChrZXkuaXNFbXB0eSgpKQorICAgICAg
ICByZXR1cm47CisKKyAgICAvLyBsb29rIGZvciBxdWVyeSBpbiBtX3F1ZXJpZXMuCisgICAgUXVl
cnkqIHF1ZXJ5ID0gbV9xdWVyaWVzLmdldChrZXkpOworICAgIGlmICghcXVlcnkpIHsKKyAgICAg
ICAgLy8gaWYgbm8gZXF1aXZhbGVudCBxdWVyeSBpcyBpbiBtX3F1ZXJpZXMgY3JlYXRlIG9uZS4K
KworICAgICAgICBPd25QdHI8UXVlcnk+IHRlbXAobmV3IFF1ZXJ5KG1lZGlhLCBwcmVwYXJlRXZh
bHVhdG9yKCksIG1fY3VycmVudFJvdW5kKSk7CisgICAgICAgIGlmIChtX3F1ZXJpZXMuYWRkKGtl
eSwgdGVtcC5nZXQoKSkuc2Vjb25kKQorICAgICAgICAgICAgcXVlcnkgPSB0ZW1wLnJlbGVhc2Uo
KS5sZWFrUHRyKCk7IC8vIHF1ZXJ5IGNyZWF0ZWQgYW5kIGFkZGVkIHRvIG1fcXVlcmllcworICAg
ICAgICBlbHNlIHsKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICB9IGVsc2UgeworICAgICAgICAvLyBpZiB0aGVy
ZSBpcyBhbHJlYWR5IGFuIGVxdWl2YWxlbnQgcXVlcnkgbG9vayBmb3IgYW4gZXF1aXZhbGVudAor
ICAgICAgICAvLyBwYWlyIChxdWVyeSwgY2FsbGJhY2spLiByZXR1cm4gaWYgZm91bmQuCisKKyAg
ICAgICAgU2NyaXB0U3RhdGUqIGV4ZWMgPSBtYWluV29ybGRTY3JpcHRTdGF0ZShtX2ZyYW1lKTsK
KyAgICAgICAgaWYgKCFleGVjKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgbV9saXN0ZW5lcnMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAg
IGlmIChtX2xpc3RlbmVyc1tpXS0+cXVlcnkoKSA9PSBxdWVyeSAmJiBtX2xpc3RlbmVyc1tpXS0+
Y2FsbGJhY2soKS0+aXNFcXVhbChleGVjLCAqY2FsbGJhY2suZ2V0KCkpKQorICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgfQorCisgICAgTGlzdGVuZXIqIGxpc3RlbmVy
ID0gbmV3IExpc3RlbmVyKHF1ZXJ5LCBjYWxsYmFjayk7CisgICAgbV9saXN0ZW5lcnMuYXBwZW5k
KGxpc3RlbmVyKTsKK30KKwordm9pZCBTdHlsZU1lZGlhOjpyZW1vdmVNZWRpYUxpc3RlbmVyKGNv
bnN0IFN0cmluZyYgcXVlcnlMaXN0LCBQYXNzT3duUHRyPEJvb2xlYW5DYWxsYmFjaz4gY2FsbGJh
Y2spCit7CisgICAgaWYgKCFjYWxsYmFjayB8fCBxdWVyeUxpc3QuaXNFbXB0eSgpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBSZWZQdHI8TWVkaWFMaXN0PiBtZWRpYSA9IHBhcnNlKHF1ZXJ5TGlz
dCk7CisgICAgaWYgKCFtZWRpYSkKKyAgICAgICAgcmV0dXJuOworCisgICAgU3RyaW5nIGtleSA9
IG1lZGlhLT5tZWRpYVRleHQoKTsKKyAgICBpZiAoa2V5LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgUXVlcnkqIHF1ZXJ5ID0gbV9xdWVyaWVzLmdldChrZXkpOworICAgIGlmICgh
cXVlcnkpCisgICAgICAgIHJldHVybjsKKworICAgIFNjcmlwdFN0YXRlKiBleGVjID0gbWFpbldv
cmxkU2NyaXB0U3RhdGUobV9mcmFtZSk7CisgICAgaWYgKCFleGVjKQorICAgICAgICByZXR1cm47
CisKKyAgICBmb3IgKGludCBpID0gbV9saXN0ZW5lcnMuc2l6ZSgpIC0gMTsgaSA+PSAwOyAtLWkp
IHsKKyAgICAgICAgaWYgKG1fbGlzdGVuZXJzW2ldLT5xdWVyeSgpID09IHF1ZXJ5ICYmIG1fbGlz
dGVuZXJzW2ldLT5jYWxsYmFjaygpLT5pc0VxdWFsKGV4ZWMsICpjYWxsYmFjay5nZXQoKSkpIHsK
KyAgICAgICAgICAgIGRlbGV0ZSBtX2xpc3RlbmVyc1tpXTsKKyAgICAgICAgICAgIG1fbGlzdGVu
ZXJzLnJlbW92ZShpKTsKKyAgICAgICAgICAgIGlmICghcXVlcnktPnJlZkNvdW50KCkpIHsKKyAg
ICAgICAgICAgICAgICBtX3F1ZXJpZXMucmVtb3ZlKGtleSk7CisgICAgICAgICAgICAgICAgZGVs
ZXRlIHF1ZXJ5OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQorCisKK3ZvaWQg
U3R5bGVNZWRpYTo6c3R5bGVDaGFuZ2VkKCkKK3sKKyAgICBPd25QdHI8TWVkaWFRdWVyeUV2YWx1
YXRvcj4gZXZhbHVhdG9yKHByZXBhcmVFdmFsdWF0b3IoKSk7CisgICAgaWYgKCFldmFsdWF0b3Ip
CisgICAgICAgIHJldHVybjsKKworICAgIC8vIGluY3JlbWVudCBldmFsdWF0aW9uIHJvdW5kCisg
ICAgKyttX2N1cnJlbnRSb3VuZDsKKworICAgIC8vIGV2YWx1YXRlIGVhY2ggcXVlcnkKKyAgICBI
YXNoTWFwPFN0cmluZywgUXVlcnkqPjo6aXRlcmF0b3I6OlZhbHVlcyBpID0gbV9xdWVyaWVzLmJl
Z2luKCk7CisgICAgSGFzaE1hcDxTdHJpbmcsIFF1ZXJ5Kj46Oml0ZXJhdG9yOjpWYWx1ZXMgZW5k
ID0gbV9xdWVyaWVzLmVuZCgpOworICAgIGZvciAoOyBpICE9IGVuZDsgKytpKQorICAgICAgICAo
KmkpLT5ldmFsdWF0ZShldmFsdWF0b3IuZ2V0KCkpOworCisgICAgU2NyaXB0U3RhdGUqIGV4ZWMg
PSBtYWluV29ybGRTY3JpcHRTdGF0ZShtX2ZyYW1lKTsKKyAgICBpZiAoIWV4ZWMpCisgICAgICAg
IHJldHVybjsKIAotICAgIE1lZGlhUXVlcnlFdmFsdWF0b3Igc2NyZWVuRXZhbCh0eXBlKCksIG1f
ZnJhbWUsIHJvb3RTdHlsZS5nZXQoKSk7Ci0gICAgcmV0dXJuIHNjcmVlbkV2YWwuZXZhbChtZWRp
YS5nZXQoKSk7CisgICAgLy8gdHJpZ2VyIGNhbGxiYWNrcyBpbiBvcmRlcgorICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgbV9saXN0ZW5lcnMuc2l6ZSgpOyArK2kpCisgICAgICAgIG1fbGlzdGVu
ZXJzW2ldLT5oYW5kbGVFdmVudChleGVjKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvU3R5bGVNZWRpYS5oIGIvV2ViQ29yZS9jc3MvU3R5bGVN
ZWRpYS5oCmluZGV4IDgyYzllYmEuLjY2MTc0ZmQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL1N0
eWxlTWVkaWEuaAorKysgYi9XZWJDb3JlL2Nzcy9TdHlsZU1lZGlhLmgKQEAgLTI3LDggKzI3LDEz
IEBACiAjaWZuZGVmIFN0eWxlTWVkaWFfaAogI2RlZmluZSBTdHlsZU1lZGlhX2gKIAorI2luY2x1
ZGUgIkJvb2xlYW5DYWxsYmFjay5oIgorI2luY2x1ZGUgIk1lZGlhTGlzdC5oIgorI2luY2x1ZGUg
Ik1lZGlhUXVlcnlFdmFsdWF0b3IuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogCisj
aW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBGcmFtZTsKQEAgLTM5LDE3ICs0NCw2MiBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFN0eWxlTWVkaWEoZnJhbWUpKTsKICAgICB9CisgICAgflN0eWxlTWVk
aWEoKTsKIAogICAgIHZvaWQgZGlzY29ubmVjdEZyYW1lKCkgeyBtX2ZyYW1lID0gMDsgfQogCiAg
ICAgU3RyaW5nIHR5cGUoKSBjb25zdDsKIAotICAgIGJvb2wgbWF0Y2hNZWRpdW0oY29uc3QgU3Ry
aW5nJikgY29uc3Q7CisgICAgYm9vbCBtYXRjaE1lZGlhKGNvbnN0IFN0cmluZyYpIGNvbnN0Owor
CisgICAgdm9pZCBhZGRNZWRpYUxpc3RlbmVyKGNvbnN0IFN0cmluZyYsIFBhc3NPd25QdHI8Qm9v
bGVhbkNhbGxiYWNrPik7CisgICAgdm9pZCByZW1vdmVNZWRpYUxpc3RlbmVyKGNvbnN0IFN0cmlu
ZyYsIFBhc3NPd25QdHI8Qm9vbGVhbkNhbGxiYWNrPik7CisKKyAgICB2b2lkIHN0eWxlQ2hhbmdl
ZCgpOwogCiBwcml2YXRlOgogICAgIFN0eWxlTWVkaWEoRnJhbWUqKTsKIAorICAgIGNsYXNzIExp
c3RlbmVyOworCisgICAgY2xhc3MgUXVlcnkgeworICAgIHB1YmxpYzoKKyAgICAgICAgUXVlcnko
UGFzc1JlZlB0cjxNZWRpYUxpc3Q+IG1lZGlhLCBQYXNzT3duUHRyPE1lZGlhUXVlcnlFdmFsdWF0
b3I+IGV2YWx1YXRvciwgaW50JiByb3VuZCk7CisgICAgICAgflF1ZXJ5KCk7CisgICAgICAgIHZv
aWQgZXZhbHVhdGUoTWVkaWFRdWVyeUV2YWx1YXRvciopOworICAgICAgICBib29sIHZhbHVlKCkg
Y29uc3QgeyByZXR1cm4gbV9jdXJyZW50VmFsdWU7IH0KKyAgICAgICAgYm9vbCBjaGFuZ2VkKCkg
Y29uc3QgeyByZXR1cm4gbV9jdXJyZW50Um91bmQgPT0gbV9jaGFuZ2VSb3VuZDsgfQorICAgICAg
ICBpbnQgcmVmQ291bnQoKSBjb25zdCB7IHJldHVybiBtX3JlZkNvdW50OyB9CisKKyAgICBwcml2
YXRlOgorICAgICAgICBSZWZQdHI8TWVkaWFMaXN0PiBtX21lZGlhOworICAgICAgICBib29sIG1f
Y3VycmVudFZhbHVlOworICAgICAgICBpbnQmIG1fY3VycmVudFJvdW5kOworICAgICAgICBpbnQg
bV9jaGFuZ2VSb3VuZDsKKyAgICAgICAgaW50IG1fcmVmQ291bnQ7CisKKyAgICAgICAgZnJpZW5k
IGNsYXNzIFN0eWxlTWVkaWE6Okxpc3RlbmVyOworICAgIH07CisKKyAgICBjbGFzcyBMaXN0ZW5l
ciB7CisgICAgcHVibGljOgorICAgICAgICBMaXN0ZW5lcihRdWVyeSogcXVlcnksIFBhc3NPd25Q
dHI8Qm9vbGVhbkNhbGxiYWNrPiBjYWxsYmFjayk7CisgICAgICAgIH5MaXN0ZW5lcigpOworICAg
ICAgICB2b2lkIGhhbmRsZUV2ZW50KFNjcmlwdFN0YXRlKik7CisgICAgICAgIGNvbnN0IFF1ZXJ5
KiBxdWVyeSgpIHsgcmV0dXJuIG1fcXVlcnk7IH0KKyAgICAgICAgY29uc3QgQm9vbGVhbkNhbGxi
YWNrKiBjYWxsYmFjaygpIGNvbnN0IHsgcmV0dXJuIG1fY2FsbGJhY2suZ2V0KCk7IH0KKworICAg
IHByaXZhdGU6CisgICAgICAgIFF1ZXJ5KiBtX3F1ZXJ5OworICAgICAgICBPd25QdHI8Qm9vbGVh
bkNhbGxiYWNrPiBtX2NhbGxiYWNrOworICAgIH07CisKKyAgICBQYXNzT3duUHRyPE1lZGlhUXVl
cnlFdmFsdWF0b3I+IHByZXBhcmVFdmFsdWF0b3IoKSBjb25zdDsKKwogICAgIEZyYW1lKiBtX2Zy
YW1lOworICAgIEhhc2hNYXA8U3RyaW5nLCBRdWVyeSo+IG1fcXVlcmllczsKKyAgICBWZWN0b3I8
TGlzdGVuZXIqPiBtX2xpc3RlbmVyczsKKyAgICBpbnQgbV9jdXJyZW50Um91bmQ7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvU3R5bGVNZWRpYS5pZGwgYi9X
ZWJDb3JlL2Nzcy9TdHlsZU1lZGlhLmlkbAppbmRleCA3YmUzNWNjLi43OWU5NmJlIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2Nzcy9TdHlsZU1lZGlhLmlkbAorKysgYi9XZWJDb3JlL2Nzcy9TdHlsZU1l
ZGlhLmlkbApAQCAtMjcsNiArMjcsOSBAQAogbW9kdWxlIHZpZXcgewogICAgIGludGVyZmFjZSBT
dHlsZU1lZGlhIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB0eXBlOwot
ICAgICAgICBib29sZWFuIG1hdGNoTWVkaXVtKGluIERPTVN0cmluZyBtZWRpYXF1ZXJ5KTsKKyAg
ICAgICAgYm9vbGVhbiBtYXRjaE1lZGlhKGluIERPTVN0cmluZyBtcUxpc3QpOworCisgICAgICAg
IHZvaWQgYWRkTWVkaWFMaXN0ZW5lcihpbiBET01TdHJpbmcgbXFMaXN0LCBpbiBCb29sZWFuQ2Fs
bGJhY2sgbXFDYWxsYmFjayk7CisgICAgICAgIHZvaWQgcmVtb3ZlTWVkaWFMaXN0ZW5lcihpbiBE
T01TdHJpbmcgbXFMaXN0LCBpbiBCb29sZWFuQ2FsbGJhY2sgbXFDYWxsYmFjayk7CiAgICAgfTsK
IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAppbmRleCBkMDhlNzFiLi42MjhjMzg1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKKysrIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xMjEsNiAr
MTIxLDcgQEAKICNpbmNsdWRlICJTZWxlY3Rpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2V0
dGluZ3MuaCIKICNpbmNsdWRlICJTdGF0aWNIYXNoU2V0Tm9kZUxpc3QuaCIKKyNpbmNsdWRlICJT
dHlsZU1lZGlhLmgiCiAjaW5jbHVkZSAiU3R5bGVTaGVldExpc3QuaCIKICNpbmNsdWRlICJUZXh0
RXZlbnQuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKQEAgLTI3MjgsNiArMjcyOSw5IEBA
IHZvaWQgRG9jdW1lbnQ6OnVwZGF0ZVN0eWxlU2VsZWN0b3IoKQogICAgICAgICBpZiAodmlldygp
KQogICAgICAgICAgICAgdmlldygpLT5zY2hlZHVsZVJlbGF5b3V0KCk7CiAgICAgfQorCisgICAg
aWYgKGRvbVdpbmRvdygpICYmIGRvbVdpbmRvdygpLT5zdHlsZU1lZGlhKCkpCisgICAgICAgIGRv
bVdpbmRvdygpLT5zdHlsZU1lZGlhKCktPnN0eWxlQ2hhbmdlZCgpOwogfQogCiB2b2lkIERvY3Vt
ZW50OjphZGRTdHlsZVNoZWV0Q2FuZGlkYXRlTm9kZShOb2RlKiBub2RlLCBib29sIGNyZWF0ZWRC
eVBhcnNlcikKLS0gCjEuNi4zLjMKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64631</attachid>
            <date>2010-08-17 14:30:02 -0700</date>
            <delta_ts>2010-08-20 01:31:50 -0700</delta_ts>
            <desc>patch 6</desc>
            <filename>0001-Media-listeners.patch</filename>
            <type>text/plain</type>
            <size>39034</size>
            <attacher name="Luiz Agostini">luiz</attacher>
            
              <data encoding="base64">RnJvbSBkZWU5ZWU2MjQyNDNiODFkYjE2ZjBhYTA5ZTdhNzZhZmNiOWI4OTNmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWl6IEFnb3N0aW5pIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IFR1ZSwgMTcgQXVnIDIwMTAgMTc6NTQ6MDYgLTAzMDAKU3ViamVjdDogW1BB
VENIXSBNZWRpYSBsaXN0ZW5lcnMKIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zNzIwNQoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpJbXBsZW1lbnRpbmcgU3R5
bGVNZWRpYSBpbnRlcmZhY2UgYXMgc3BlY2lmaWVkIGluCmh0dHA6Ly9kZXYudzMub3JnL2Nzc3dn
L2Nzc29tLXZpZXcvI3RoZS1zdHlsZW1lZGlhLWludGVyZmFjZS4KCkNhbGxiYWNrIGNvbXBhcmlz
b24gYW5kIGxheW91dCB0ZXN0cyBzdGlsbCBtaXNzaW5nLgoKTm8gbmV3IHRlc3RzLiAoT09QUyEp
CgoqIERlcml2ZWRTb3VyY2VzLm1ha2U6CiogR05VbWFrZWZpbGUuYW06CiogV2ViQ29yZS5neXBp
OgoqIFdlYkNvcmUucHJpOgoqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKiBi
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKiBiaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JWOC5wbToKKiBjc3MvQm9vbGVhbkNhbGxiYWNrLmg6IEFkZGVkLgooV2ViQ29y
ZTo6Qm9vbGVhbkNhbGxiYWNrOjp+Qm9vbGVhbkNhbGxiYWNrKToKKiBjc3MvQm9vbGVhbkNhbGxi
YWNrLmlkbDogQWRkZWQuCiogY3NzL1N0eWxlTWVkaWEuY3BwOgooV2ViQ29yZTo6U3R5bGVNZWRp
YTo6UXVlcnk6OlF1ZXJ5KToKKFdlYkNvcmU6OlN0eWxlTWVkaWE6OlF1ZXJ5Ojp+UXVlcnkpOgoo
V2ViQ29yZTo6U3R5bGVNZWRpYTo6UXVlcnk6OmV2YWx1YXRlKToKKFdlYkNvcmU6OlN0eWxlTWVk
aWE6Okxpc3RlbmVyOjpMaXN0ZW5lcik6CihXZWJDb3JlOjpTdHlsZU1lZGlhOjpMaXN0ZW5lcjo6
fkxpc3RlbmVyKToKKFdlYkNvcmU6OlN0eWxlTWVkaWE6Okxpc3RlbmVyOjpoYW5kbGVFdmVudCk6
CihXZWJDb3JlOjpTdHlsZU1lZGlhOjpTdHlsZU1lZGlhKToKKFdlYkNvcmU6OlN0eWxlTWVkaWE6
On5TdHlsZU1lZGlhKToKKFdlYkNvcmU6OnBhcnNlKToKKFdlYkNvcmU6OlN0eWxlTWVkaWE6Om1h
dGNoTWVkaWEpOgooV2ViQ29yZTo6U3R5bGVNZWRpYTo6cHJlcGFyZUV2YWx1YXRvcik6CihXZWJD
b3JlOjpTdHlsZU1lZGlhOjphZGRNZWRpYUxpc3RlbmVyKToKKFdlYkNvcmU6OlN0eWxlTWVkaWE6
OnJlbW92ZU1lZGlhTGlzdGVuZXIpOgooV2ViQ29yZTo6U3R5bGVNZWRpYTo6c3R5bGVDaGFuZ2Vk
KToKKiBjc3MvU3R5bGVNZWRpYS5oOgooV2ViQ29yZTo6U3R5bGVNZWRpYTo6UXVlcnk6OnZhbHVl
KToKKFdlYkNvcmU6OlN0eWxlTWVkaWE6OlF1ZXJ5OjpjaGFuZ2VkKToKKFdlYkNvcmU6OlN0eWxl
TWVkaWE6OlF1ZXJ5OjpyZWZDb3VudCk6CihXZWJDb3JlOjpTdHlsZU1lZGlhOjpMaXN0ZW5lcjo6
cXVlcnkpOgooV2ViQ29yZTo6U3R5bGVNZWRpYTo6TGlzdGVuZXI6OmNhbGxiYWNrKToKKiBjc3Mv
U3R5bGVNZWRpYS5pZGw6CiogZG9tL0RvY3VtZW50LmNwcDoKKFdlYkNvcmU6OkRvY3VtZW50Ojp1
cGRhdGVTdHlsZVNlbGVjdG9yKToKLS0tCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgICA0OSArKysrKysrCiBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2Ug
ICAgICAgICAgICAgICAgIHwgICAgMSArCiBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtICAgICAgICAg
ICAgICAgICAgICAgIHwgICAgMyArCiBXZWJDb3JlL1dlYkNvcmUuZ3lwaSAgICAgICAgICAgICAg
ICAgICAgICAgIHwgICAgMSArCiBXZWJDb3JlL1dlYkNvcmUucHJpICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAgMSArCiBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiAgIHwgICAyNiArKysrCiBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtIHwgICA0NyArKysrKy0tCiBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
clY4LnBtIHwgICA1MCArKysrKystLQogV2ViQ29yZS9jc3MvQm9vbGVhbkNhbGxiYWNrLmggICAg
ICAgICAgICAgICB8ICAgNDcgKysrKysrKwogV2ViQ29yZS9jc3MvQm9vbGVhbkNhbGxiYWNrLmlk
bCAgICAgICAgICAgICB8ICAgMzAgKysrKwogV2ViQ29yZS9jc3MvU3R5bGVNZWRpYS5jcHAgICAg
ICAgICAgICAgICAgICB8ICAxOTAgKysrKysrKysrKysrKysrKysrKysrKysrKy0tCiBXZWJDb3Jl
L2Nzcy9TdHlsZU1lZGlhLmggICAgICAgICAgICAgICAgICAgIHwgICA1NCArKysrKysrKy0KIFdl
YkNvcmUvY3NzL1N0eWxlTWVkaWEuaWRsICAgICAgICAgICAgICAgICAgfCAgICA1ICstCiBXZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAgICAgICAgICAgICAgICAgICAgIHwgICAgNCArCiAxNCBmaWxl
cyBjaGFuZ2VkLCA0NzAgaW5zZXJ0aW9ucygrKSwgMzggZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgV2ViQ29yZS9jc3MvQm9vbGVhbkNhbGxiYWNrLmgKIGNyZWF0ZSBtb2RlIDEwMDY0
NCBXZWJDb3JlL2Nzcy9Cb29sZWFuQ2FsbGJhY2suaWRsCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlMDc1NzE3Li43NTU4ZjZiIDEwMDY0
NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDUyIEBACisyMDEwLTA4LTE3ICBMdWl6IEFnb3N0aW5pICA8bHVpei5hZ29zdGluaUBvcGVu
Ym9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE1lZGlhIGxpc3RlbmVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MzcyMDUKKworICAgICAgICBJbXBsZW1lbnRpbmcgU3R5bGVNZWRpYSBpbnRl
cmZhY2UgYXMgc3BlY2lmaWVkIGluCisgICAgICAgIGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nz
c29tLXZpZXcvI3RoZS1zdHlsZW1lZGlhLWludGVyZmFjZS4KKworICAgICAgICBDYWxsYmFjayBj
b21wYXJpc29uIGFuZCBsYXlvdXQgdGVzdHMgc3RpbGwgbWlzc2luZy4KKworICAgICAgICBObyBu
ZXcgdGVzdHMuIChPT1BTISkKKworICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAg
ICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAq
IFdlYkNvcmUucHJpOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbToKKyAgICAgICAgKiBjc3Mv
Qm9vbGVhbkNhbGxiYWNrLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Qm9vbGVhbkNhbGxi
YWNrOjp+Qm9vbGVhbkNhbGxiYWNrKToKKyAgICAgICAgKiBjc3MvQm9vbGVhbkNhbGxiYWNrLmlk
bDogQWRkZWQuCisgICAgICAgICogY3NzL1N0eWxlTWVkaWEuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U3R5bGVNZWRpYTo6UXVlcnk6OlF1ZXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlTWVk
aWE6OlF1ZXJ5Ojp+UXVlcnkpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVNZWRpYTo6UXVlcnk6
OmV2YWx1YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlTWVkaWE6Okxpc3RlbmVyOjpMaXN0
ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZU1lZGlhOjpMaXN0ZW5lcjo6fkxpc3RlbmVy
KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlTWVkaWE6Okxpc3RlbmVyOjpoYW5kbGVFdmVudCk6
CisgICAgICAgIChXZWJDb3JlOjpTdHlsZU1lZGlhOjpTdHlsZU1lZGlhKToKKyAgICAgICAgKFdl
YkNvcmU6OlN0eWxlTWVkaWE6On5TdHlsZU1lZGlhKToKKyAgICAgICAgKFdlYkNvcmU6OnBhcnNl
KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlTWVkaWE6Om1hdGNoTWVkaWEpOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGVNZWRpYTo6cHJlcGFyZUV2YWx1YXRvcik6CisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZU1lZGlhOjphZGRNZWRpYUxpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxl
TWVkaWE6OnJlbW92ZU1lZGlhTGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVNZWRp
YTo6c3R5bGVDaGFuZ2VkKToKKyAgICAgICAgKiBjc3MvU3R5bGVNZWRpYS5oOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGVNZWRpYTo6UXVlcnk6OnZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlTWVkaWE6OlF1ZXJ5OjpjaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlTWVkaWE6
OlF1ZXJ5OjpyZWZDb3VudCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZU1lZGlhOjpMaXN0ZW5l
cjo6cXVlcnkpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVNZWRpYTo6TGlzdGVuZXI6OmNhbGxi
YWNrKToKKyAgICAgICAgKiBjc3MvU3R5bGVNZWRpYS5pZGw6CisgICAgICAgICogZG9tL0RvY3Vt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1cGRhdGVTdHlsZVNlbGVjdG9y
KToKKwogMjAxMC0wOC0xNyAgQWJoaXNoZWsgQXJ5YSAgPGluZmVybm9AY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IERhdmUgSHlhdHQuCmRpZmYgLS1naXQgYS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLm1ha2UgYi9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggODg2
YzFmMy4uNWU3MmI0NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisr
KyBiL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNTcsNiArNTcsNyBAQCBET01fQ0xB
U1NFUyA9IFwKICAgICBCZWZvcmVQcm9jZXNzRXZlbnQgXAogICAgIEJsb2IgXAogICAgIEJsb2JC
dWlsZGVyIFwKKyAgICBCb29sZWFuQ2FsbGJhY2sgXAogICAgIENEQVRBU2VjdGlvbiBcCiAgICAg
Q1NTQ2hhcnNldFJ1bGUgXAogICAgIENTU0ZvbnRGYWNlUnVsZSBcCmRpZmYgLS1naXQgYS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCA4MGEzY2Jj
Li5mYTczMmI4IDEwMDY0NAotLS0gYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1dlYkNv
cmUvR05VbWFrZWZpbGUuYW0KQEAgLTExNiw2ICsxMTYsOCBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJj
ZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNCbG9iQnVpbGRlci5oIFwKIAlEZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTQmxvYi5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNCbG9iLmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNCb29sZWFuQ2FsbGJhY2suY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQm9vbGVhbkNhbGxiYWNrLmggXAogCURlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNDYW52YXNHcmFkaWVudC5jcHAgXAogCURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNDYW52YXNHcmFkaWVudC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
Q2FudmFzUGF0dGVybi5jcHAgXApAQCAtODM2LDYgKzgzOCw3IEBAIHdlYmNvcmVfc291cmNlcyAr
PSBcCiAJV2ViQ29yZS9icmlkZ2UvcnVudGltZV9yb290LmNwcCBcCiAJV2ViQ29yZS9icmlkZ2Uv
cnVudGltZV9yb290LmggXAogCVdlYkNvcmUvY29uZmlnLmggXAorCVdlYkNvcmUvY3NzL0Jvb2xl
YW5DYWxsYmFjay5jcHAgXAogCVdlYkNvcmUvY3NzL0NTU0JvcmRlckltYWdlVmFsdWUuY3BwIFwK
IAlXZWJDb3JlL2Nzcy9DU1NCb3JkZXJJbWFnZVZhbHVlLmggXAogCVdlYkNvcmUvY3NzL0NTU0Nh
bnZhc1ZhbHVlLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNv
cmUvV2ViQ29yZS5neXBpCmluZGV4IDIwZmQ0YTUuLjkwNWJiYzkgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0xLDYgKzEsNyBA
QAogewogICAgICd2YXJpYWJsZXMnOiB7CiAgICAgICAgICd3ZWJjb3JlX2JpbmRpbmdzX2lkbF9m
aWxlcyc6IFsKKyAgICAgICAgICAgICdjc3MvQm9vbGVhbkNhbGxiYWNrLmlkbCcsCiAgICAgICAg
ICAgICAnY3NzL0NTU0NoYXJzZXRSdWxlLmlkbCcsCiAgICAgICAgICAgICAnY3NzL0NTU0ZvbnRG
YWNlUnVsZS5pZGwnLAogICAgICAgICAgICAgJ2Nzcy9DU1NJbXBvcnRSdWxlLmlkbCcsCmRpZmYg
LS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJpIGIvV2ViQ29yZS9XZWJDb3JlLnByaQppbmRleCA3
ZGFhNzZhLi41ZmVhNTNhIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJpCisrKyBiL1dl
YkNvcmUvV2ViQ29yZS5wcmkKQEAgLTY0LDYgKzY0LDcgQEAgU1RZTEVTSEVFVFNfRU1CRUQgPSBc
CiAgICAgJCRQV0QvY3NzL3RoZW1lUXRNYWVtbzUuY3NzCiAKIElETF9CSU5ESU5HUyArPSBcCisg
ICAgY3NzL0Jvb2xlYW5DYWxsYmFjay5pZGwgXAogICAgIGNzcy9Db3VudGVyLmlkbCBcCiAgICAg
Y3NzL0NTU0NoYXJzZXRSdWxlLmlkbCBcCiAgICAgY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGwgXApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlYWJkZWVlLi5j
MjMxNTJiIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
NTEyMyw2ICs1MTIzLDEyIEBACiAJCUQyM0NBNTZDMEFCMEVCOEQwMDUxMDhBNSAvKiBSYW5nZUV4
Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RDIzQ0E1NkIwQUIwRUI4RDAwNTEwOEE1IC8qIFJhbmdlRXhjZXB0aW9uLmggKi87IH07CiAJCUQz
OUQwMDZEMTFGOEUzMDgwMDYwNDFGMiAvKiBQb3B1cE1lbnVNYWMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzOUQwMDZDMTFGOEUzMDgwMDYwNDFGMiAv
KiBQb3B1cE1lbnVNYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlEMzlEMDA5RDExRjkwN0U2MDA2MDQxRjIgLyogU2VhcmNoUG9wdXBNZW51TWFj
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMzlEMDA5
QzExRjkwN0U2MDA2MDQxRjIgLyogU2VhcmNoUG9wdXBNZW51TWFjLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRDNBMjQwREMxMjFBNEFFODAwNUYz
MTdCIC8qIEJvb2xlYW5DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRDNBMjQwREExMjFBNEFFNzAwNUYzMTdCIC8qIEJvb2xlYW5DYWxsYmFj
ay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUQz
QTI0MjU5MTIxQjEwM0EwMDVGMzE3QiAvKiBET01Cb29sZWFuQ2FsbGJhY2suaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQTI0MjU3MTIxQjEwM0EwMDVG
MzE3QiAvKiBET01Cb29sZWFuQ2FsbGJhY2suaCAqLzsgfTsKKwkJRDNBMjQyNUExMjFCMTAzQTAw
NUYzMTdCIC8qIERPTUJvb2xlYW5DYWxsYmFjay5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQTI0MjU4MTIxQjEwM0EwMDVGMzE3QiAvKiBET01Cb29s
ZWFuQ2FsbGJhY2subW0gKi87IH07CisJCUQzQTI0NEFDMTIxQjEzRjYwMDVGMzE3QiAvKiBET01C
b29sZWFuQ2FsbGJhY2tJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRDNBMjQ0QUIxMjFCMTNGNjAwNUYzMTdCIC8qIERPTUJvb2xlYW5DYWxs
YmFja0ludGVybmFsLmggKi87IH07CisJCUQzQTI0NkYyMTIxQjE1REYwMDVGMzE3QiAvKiBKU0Jv
b2xlYW5DYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBEM0EyNDZGMDEyMUIxNURGMDA1RjMxN0IgLyogSlNCb29sZWFuQ2FsbGJhY2suY3Bw
ICovOyB9OworCQlEM0EyNDZGMzEyMUIxNURGMDA1RjMxN0IgLyogSlNCb29sZWFuQ2FsbGJhY2su
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQTI0NkYx
MTIxQjE1REYwMDVGMzE3QiAvKiBKU0Jvb2xlYW5DYWxsYmFjay5oICovOyB9OwogCQlEOEI2MTUy
RjEwMzI0OTUxMDBDODU1NEEgLyogQ29va2llLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBEOEI2MTUyRTEwMzI0OTUxMDBDODU1NEEgLyogQ29va2llLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJREIyM0My
Q0IwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERCMjNDMkM5MEE1MDhEMjkwMDI0
ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAgKi87IH07CiAJCURCMjNDMkNDMEE1MDhE
MjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREIyM0MyQ0EwQTUwOEQyOTAwMjQ4OUVCIC8qIElu
ZGVudE91dGRlbnRDb21tYW5kLmggKi87IH07CkBAIC0xMDkzMCw2ICsxMDkzNiwxMyBAQAogCQlE
MjNDQTU2QjBBQjBFQjhEMDA1MTA4QTUgLyogUmFuZ2VFeGNlcHRpb24uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJhbmdlRXhjZXB0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUQzOUQwMDZDMTFGOEUzMDgwMDYwNDFGMiAvKiBQb3B1cE1lbnVNYWMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUG9wdXBNZW51TWFjLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQzOUQwMDlDMTFGOTA3RTYwMDYwNDFGMiAvKiBTZWFyY2hQ
b3B1cE1lbnVNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VhcmNoUG9w
dXBNZW51TWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQzQTI0MERBMTIxQTRB
RTcwMDVGMzE3QiAvKiBCb29sZWFuQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQm9vbGVhbkNhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUQzQTI0MERCMTIxQTRBRTcwMDVGMzE3QiAvKiBCb29sZWFuQ2FsbGJhY2suaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IEJvb2xlYW5DYWxsYmFjay5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUQzQTI0MjU3MTIxQjEwM0EwMDVGMzE3QiAvKiBET01Cb29sZWFuQ2FsbGJhY2su
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NQm9vbGVhbkNhbGxiYWNrLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQzQTI0MjU4MTIxQjEwM0EwMDVGMzE3QiAv
KiBET01Cb29sZWFuQ2FsbGJhY2subW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBET01Cb29sZWFuQ2FsbGJhY2subW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUQzQTI0NEFCMTIxQjEzRjYwMDVGMzE3QiAvKiBET01Cb29sZWFuQ2FsbGJhY2tJbnRlcm5h
bC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01Cb29sZWFuQ2FsbGJhY2tJ
bnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEM0EyNDZGMDEyMUIxNURG
MDA1RjMxN0IgLyogSlNCb29sZWFuQ2FsbGJhY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNCb29sZWFuQ2FsbGJhY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlEM0EyNDZGMTEyMUIxNURGMDA1RjMxN0IgLyogSlNCb29sZWFuQ2FsbGJhY2su
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNCb29sZWFuQ2FsbGJhY2suaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDhCNjE1MkUxMDMyNDk1MTAwQzg1NTRBIC8q
IENvb2tpZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb29raWUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREIyM0MyQzkwQTUwOEQyOTAwMjQ4OUVCIC8qIElu
ZGVudE91dGRlbnRDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBJbmRlbnRPdXRkZW50Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCURCMjNDMkNBMEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5kZW50T3V0ZGVudENvbW1hbmQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEyNzE5LDYgKzEyNzMyLDggQEAKIAkJODUw
NjU3MDQwQUFCNDc2QzAwMkQxNUMwIC8qIFN0eWxlU2hlZXRzICovID0gewogCQkJaXNhID0gUEJY
R3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlEM0EyNDI1NzEyMUIxMDNBMDA1RjMxN0IgLyog
RE9NQm9vbGVhbkNhbGxiYWNrLmggKi8sCisJCQkJRDNBMjQyNTgxMjFCMTAzQTAwNUYzMTdCIC8q
IERPTUJvb2xlYW5DYWxsYmFjay5tbSAqLywKIAkJCQk4NTA2NTZGODBBQUI0NzYzMDAyRDE1QzAg
LyogRE9NTWVkaWFMaXN0LmggKi8sCiAJCQkJODUwNjU2RjkwQUFCNDc2MzAwMkQxNUMwIC8qIERP
TU1lZGlhTGlzdC5tbSAqLywKIAkJCQkwRkY1MDI1OTEwMkJBOTAxMDA2NkYzOUEgLyogRE9NU3R5
bGVNZWRpYS5oICovLApAQCAtMTM1NTYsNiArMTM1NzEsNyBAQAogCQkJCTg1MzhGMDE4MEFENzE4
RDgwMDZBODFEMSAvKiBET01BYnN0cmFjdFZpZXdJbnRlcm5hbC5oICovLAogCQkJCTg1RTcxMTNF
MEFDNUQ1MzQwMDUzMjcwRiAvKiBET01BdHRySW50ZXJuYWwuaCAqLywKIAkJCQkyRTJEOTlFOTEw
RTJCQzM4MDA0OTYzMzcgLyogRE9NQmxvYkludGVybmFsLmggKi8sCisJCQkJRDNBMjQ0QUIxMjFC
MTNGNjAwNUYzMTdCIC8qIERPTUJvb2xlYW5DYWxsYmFja0ludGVybmFsLmggKi8sCiAJCQkJODVF
NzExM0YwQUM1RDUzNDAwNTMyNzBGIC8qIERPTUNEQVRBU2VjdGlvbkludGVybmFsLmggKi8sCiAJ
CQkJODVFNzExNDAwQUM1RDUzNDAwNTMyNzBGIC8qIERPTUNoYXJhY3RlckRhdGFJbnRlcm5hbC5o
ICovLAogCQkJCTg1RTcxMTQxMEFDNUQ1MzQwMDUzMjcwRiAvKiBET01Db21tZW50SW50ZXJuYWwu
aCAqLywKQEAgLTE0ODgxLDYgKzE0ODk3LDggQEAKIAkJQTgzQjc5MEUwQ0NBRkY5NzAwMEIwODI1
IC8qIENTUyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJ
RDNBMjQ2RjAxMjFCMTVERjAwNUYzMTdCIC8qIEpTQm9vbGVhbkNhbGxiYWNrLmNwcCAqLywKKwkJ
CQlEM0EyNDZGMTEyMUIxNURGMDA1RjMxN0IgLyogSlNCb29sZWFuQ2FsbGJhY2suaCAqLywKIAkJ
CQlCQ0MwNjU4MzBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0LmNwcCAqLywKIAkJCQlC
Q0MwNjU4NDBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0LmggKi8sCiAJCQkJQkNDMDY1
ODUwRjNDRTJBNzAwQ0QyRDg3IC8qIEpTQ2xpZW50UmVjdExpc3QuY3BwICovLApAQCAtMTY3OTYs
NiArMTY4MTQsOCBAQAogCQlGNTIzRDE4NDAyREU0MkU4MDE4NjM1Q0EgLyogY3NzICovID0gewog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlEM0EyNDBEQTEyMUE0QUU3
MDA1RjMxN0IgLyogQm9vbGVhbkNhbGxiYWNrLmggKi8sCisJCQkJRDNBMjQwREIxMjFBNEFFNzAw
NUYzMTdCIC8qIEJvb2xlYW5DYWxsYmFjay5pZGwgKi8sCiAJCQkJOTNDQTRDOUMwOURGOTNGQTAw
REY4Njc3IC8qIG1ha2V0b2tlbml6ZXIgKi8sCiAJCQkJQTgwRTZDREEwQTE5ODlDQTAwN0ZCOEM1
IC8qIENvdW50ZXIuaCAqLywKIAkJCQk5MzA3MDVDNzA5RTBDOTVGMDBCMTdGRTQgLyogQ291bnRl
ci5pZGwgKi8sCkBAIC0yMDMwNSw2ICsyMDMyNSwxMCBAQAogCQkJCTJFREVGMUY1MTIxQjBFRkMw
MDcyNkRCMiAvKiBCbG9iUmVnaXN0cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTJFREVGMUY3MTIx
QjBFRkMwMDcyNkRCMiAvKiBCbG9iUmVnaXN0cnlJbXBsLmggaW4gSGVhZGVycyAqLywKIAkJCQky
RURFRjFGODEyMUIwRUZDMDA3MjZEQjIgLyogQmxvYlN0b3JhZ2VEYXRhLmggaW4gSGVhZGVycyAq
LywKKwkJCQlEM0EyNDBEQzEyMUE0QUU4MDA1RjMxN0IgLyogQm9vbGVhbkNhbGxiYWNrLmggaW4g
SGVhZGVycyAqLywKKwkJCQlEM0EyNDI1OTEyMUIxMDNBMDA1RjMxN0IgLyogRE9NQm9vbGVhbkNh
bGxiYWNrLmggaW4gSGVhZGVycyAqLywKKwkJCQlEM0EyNDRBQzEyMUIxM0Y2MDA1RjMxN0IgLyog
RE9NQm9vbGVhbkNhbGxiYWNrSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAorCQkJCUQzQTI0NkYz
MTIxQjE1REYwMDVGMzE3QiAvKiBKU0Jvb2xlYW5DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBA
IC0yMjc1NCw2ICsyMjc3OCw4IEBACiAJCQkJQzU3RkVERTExMjEyRUU5QzAwOTdCRTY1IC8qIEZp
bGVTeXN0ZW0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkVERUYxRjMxMjFCMEVGQzAwNzI2REIy
IC8qIEJsb2JEYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJFREVGMUY2MTIxQjBFRkMwMDcy
NkRCMiAvKiBCbG9iUmVnaXN0cnlJbXBsLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUQzQTI0MjVB
MTIxQjEwM0EwMDVGMzE3QiAvKiBET01Cb29sZWFuQ2FsbGJhY2subW0gaW4gU291cmNlcyAqLywK
KwkJCQlEM0EyNDZGMjEyMUIxNURGMDA1RjMxN0IgLyogSlNCb29sZWFuQ2FsbGJhY2suY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2lu
ZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bQppbmRleCBmNDgxNTliLi4yMTRmYWM2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG0KQEAgLTYsNiArNiw3IEBACiAjIENvcHlyaWdodCAoQykgMjAwNiwg
MjAwNywgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAj
IENvcHlyaWdodCAoQykgMjAwOSBDYW1lcm9uIE1jQ29ybWFjayA8Y2FtQG1jYy5pZC5hdT4KICMg
Q29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDEwLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAjCiAjIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIwOTgsNiArMjA5OSwx
NCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgIHB1c2goQGltcGxDb250ZW50LCAi
XG4jZW5kaWYgLy8gJHtjb25kaXRpb25hbFN0cmluZ31cbiIpIGlmICRjb25kaXRpb25hbFN0cmlu
ZzsKIH0KIAorc3ViIEdldE5hdGl2ZVR5cGVGb3JDYWxsYmFja3MKK3sKKyAgICBteSAkdHlwZSA9
IHNoaWZ0OworICAgIG15ICRpc1BhcmFtZXRlciA9IHNoaWZ0OworICAgIHJldHVybiAidm9pZCIg
aWYgKCR0eXBlIGVxICJ2b2lkIikgYW5kICEkaXNQYXJhbWV0ZXI7CisgICAgcmV0dXJuIEdldE5h
dGl2ZVR5cGUoJHR5cGUpOworfQorCiBzdWIgR2VuZXJhdGVDYWxsYmFja0hlYWRlcgogewogICAg
IG15ICRvYmplY3QgPSBzaGlmdDsKQEAgLTIxMzMsMTIgKzIxNDIsMTQgQEAgc3ViIEdlbmVyYXRl
Q2FsbGJhY2tIZWFkZXIKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIlxuICAgIC8vIEZ1
bmN0aW9uc1xuIik7CiAgICAgICAgIGZvcmVhY2ggbXkgJGZ1bmN0aW9uIChAeyRkYXRhTm9kZS0+
ZnVuY3Rpb25zfSkgewogICAgICAgICAgICAgbXkgQHBhcmFtcyA9IEB7JGZ1bmN0aW9uLT5wYXJh
bWV0ZXJzfTsKKwogICAgICAgICAgICAgaWYgKCEkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkN1c3RvbSJ9ICYmCi0gICAgICAgICAgICAgICAgIShHZXROYXRpdmVU
eXBlKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlKSBlcSAiYm9vbCIpKSB7CisgICAgICAgICAg
ICAgICAgISgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSBlcSAiYm9vbGVhbiIpICYmCisgICAg
ICAgICAgICAgICAgISgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSBlcSAidm9pZCIpKSB7CiAg
ICAgICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBDT01QSUxFX0FTU0VSVChm
YWxzZSkiKTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIiAgICB2aXJ0dWFsICIgLiBHZXROYXRpdmVUeXBlKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50
eXBlKSAuICIgIiAuICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lIC4gIigiKTsKKyAgICAgICAg
ICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCAiIC4gR2V0TmF0aXZlVHlwZUZv
ckNhbGxiYWNrcygkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSwgMCkgLiAiICIgLiAkZnVuY3Rp
b24tPnNpZ25hdHVyZS0+bmFtZSAuICIoIik7CiAKICAgICAgICAgICAgIG15IEBhcmdzID0gKCk7
CiAgICAgICAgICAgICBmb3JlYWNoIG15ICRwYXJhbSAoQHBhcmFtcykgewpAQCAtMjIxMywxMiAr
MjIyNCwxMiBAQCBzdWIgR2VuZXJhdGVDYWxsYmFja0ltcGxlbWVudGF0aW9uCiAgICAgICAgIGZv
cmVhY2ggbXkgJGZ1bmN0aW9uIChAeyRkYXRhTm9kZS0+ZnVuY3Rpb25zfSkgewogICAgICAgICAg
ICAgbXkgQHBhcmFtcyA9IEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfTsKICAgICAgICAgICAgIGlm
ICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbSJ9IHx8
Ci0gICAgICAgICAgICAgICAgIShHZXROYXRpdmVUeXBlKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50
eXBlKSBlcSAiYm9vbCIpKSB7CisgICAgICAgICAgICAgICAgKCEoJGZ1bmN0aW9uLT5zaWduYXR1
cmUtPnR5cGUgZXEgImJvb2xlYW4iKSAmJiAhKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlIGVx
ICJ2b2lkIikpKSB7CiAgICAgICAgICAgICAgICAgbmV4dDsKICAgICAgICAgICAgIH0KIAogICAg
ICAgICAgICAgQWRkSW5jbHVkZXNGb3JUeXBlKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlKTsK
LSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiXG4iIC4gR2V0TmF0aXZlVHlwZSgkZnVu
Y3Rpb24tPnNpZ25hdHVyZS0+dHlwZSkgLiAiICR7Y2xhc3NOYW1lfTo6IiAuICRmdW5jdGlvbi0+
c2lnbmF0dXJlLT5uYW1lIC4gIigiKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
XG4iIC4gR2V0TmF0aXZlVHlwZUZvckNhbGxiYWNrcygkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlw
ZSwgMCkgLiAiICR7Y2xhc3NOYW1lfTo6IiAuICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lIC4g
IigiKTsKIAogICAgICAgICAgICAgbXkgQGFyZ3MgPSAoKTsKICAgICAgICAgICAgIGZvcmVhY2gg
bXkgJHBhcmFtIChAcGFyYW1zKSB7CkBAIC0yMjMwLDI0ICsyMjQxLDQwIEBAIHN1YiBHZW5lcmF0
ZUNhbGxiYWNrSW1wbGVtZW50YXRpb24KIAogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICJ7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICghY2FuSW52
b2tlQ2FsbGJhY2soKSlcbiIpOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
ICAgIHJldHVybiB0cnVlO1xuXG4iKTsKKyAgICAgICAgICAgIGlmIChHZXROYXRpdmVUeXBlKCRm
dW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlKSBlcSAiYm9vbCIpIHsKKyAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuIHRydWU7XG5cbiIpOworICAgICAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAg
cmV0dXJuO1xuXG4iKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgIFJlZlB0cjwkY2xhc3NOYW1lPiBwcm90ZWN0KHRoaXMpO1xuXG4iKTsKICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEpTTG9jayBsb2NrKFNpbGVuY2VBc3NlcnRp
b25zT25seSk7XG5cbiIpOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgRXhl
Y1N0YXRlKiBleGVjID0gbV9kYXRhLT5nbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpO1xuIik7
CisgICAgICAgICAgICBmb3JlYWNoIG15ICRwYXJhbSAoQHBhcmFtcykgeworICAgICAgICAgICAg
ICAgIGlmICghKCRwYXJhbS0+dHlwZSBlcSAiYm9vbGVhbiIpKSB7CisgICAgICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEV4ZWNTdGF0ZSogZXhlYyA9IG1fZGF0YS0+Z2xv
YmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKTtcbiIpOworICAgICAgICAgICAgICAgICAgICBsYXN0
OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGFyZ3M7XG4iKTsKIAorCiAgICAg
ICAgICAgICBmb3JlYWNoIG15ICRwYXJhbSAoQHBhcmFtcykgewogICAgICAgICAgICAgICAgIG15
ICRwYXJhbU5hbWUgPSAkcGFyYW0tPm5hbWU7Ci0gICAgICAgICAgICAgICAgaWYgKCRwYXJhbS0+
dHlwZSBlcSAiRE9NU3RyaW5nIikgewotICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICBhcmdzLmFwcGVuZChqc1N0cmluZyhleGVjLCAke3BhcmFtTmFtZX0pKTtcbiIp
OworICAgICAgICAgICAgICAgIGlmICgkcGFyYW0tPnR5cGUgZXEgImJvb2xlYW4iKSB7CisgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGFyZ3MuYXBwZW5kKGpzQm9v
bGVhbigke3BhcmFtTmFtZX0pKTtcbiIpOwogICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGFyZ3MuYXBwZW5kKHRvSlMo
ZXhlYywgJHtwYXJhbU5hbWV9KSk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCRwYXJh
bS0+dHlwZSBlcSAiRE9NU3RyaW5nIikgeworICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgYXJncy5hcHBlbmQoanNTdHJpbmcoZXhlYywgJHtwYXJhbU5hbWV9
KSk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGFyZ3MuYXBwZW5kKHRvSlMoZXhlYywgJHtw
YXJhbU5hbWV9KSk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbiAg
ICBib29sIHJhaXNlZEV4Y2VwdGlvbiA9IGZhbHNlO1xuIik7CiAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICBtX2RhdGEtPmludm9rZUNhbGxiYWNrKGFyZ3MsICZyYWlzZWRFeGNl
cHRpb24pO1xuIik7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4g
IXJhaXNlZEV4Y2VwdGlvbjtcbiIpOworICAgICAgICAgICAgaWYgKEdldE5hdGl2ZVR5cGUoJGZ1
bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUpIGVxICJib29sIikgeworICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiAhcmFpc2VkRXhjZXB0aW9uO1xuIik7CisgICAg
ICAgICAgICB9CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cbiIpOwogICAgICAg
ICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JWOC5wbSBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0K
aW5kZXggZWJiY2Y4Yi4uNWVhMGY5NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JWOC5wbQorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvclY4LnBtCkBAIC02LDYgKzYsNyBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMDYgQXBw
bGUgQ29tcHV0ZXIsIEluYy4KICMgQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAyMDA5IEdvb2ds
ZSBJbmMuCiAjIENvcHlyaWdodCAoQykgMjAwOSBDYW1lcm9uIE1jQ29ybWFjayA8Y2FtQG1jYy5p
ZC5hdT4KKyMgQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMg
c3Vic2lkaWFyeSgtaWVzKQogIwogIyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAjIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMTkwLDE2ICsyMTkxLDE5IEBA
IEVORAogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIC8vIEZ1bmN0aW9uc1xuIik7
CiAgICAgICAgIGZvcmVhY2ggbXkgJGZ1bmN0aW9uIChAeyRkYXRhTm9kZS0+ZnVuY3Rpb25zfSkg
ewogICAgICAgICAgICAgbXkgQHBhcmFtcyA9IEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfTsKKwor
CiAgICAgICAgICAgICBpZiAoISRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiQ3VzdG9tIn0gJiYKLSAgICAgICAgICAgICAgICAhKEdldE5hdGl2ZVR5cGUoJGZ1bmN0
aW9uLT5zaWduYXR1cmUtPnR5cGUpIGVxICJib29sIikpIHsKLSAgICAgICAgICAgICAgICAgICAg
cHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBDT01QSUxFX0FTU0VSVChmYWxzZSkiKTsKKyAgICAg
ICAgICAgICAgICAhKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlIGVxICJib29sZWFuIikgJiYK
KyAgICAgICAgICAgICAgICAhKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlIGVxICJ2b2lkIikp
IHsKKyAgICAgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIENPTVBJTEVfQVNT
RVJUKGZhbHNlKSIpOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBwdXNoKEBoZWFkZXJD
b250ZW50LCAiICAgIHZpcnR1YWwgIiAuIEdldE5hdGl2ZVR5cGVGb3JDYWxsYmFja3MoJGZ1bmN0
aW9uLT5zaWduYXR1cmUtPnR5cGUpIC4gIiAiIC4gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWUg
LiAiKCIpOworICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2aXJ0dWFsICIg
LiBHZXROYXRpdmVUeXBlRm9yQ2FsbGJhY2tzKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlLCAw
KSAuICIgIiAuICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lIC4gIigiKTsKIAogICAgICAgICAg
ICAgbXkgQGFyZ3MgPSAoKTsKICAgICAgICAgICAgIGZvcmVhY2ggbXkgJHBhcmFtIChAcGFyYW1z
KSB7Ci0gICAgICAgICAgICAgICAgcHVzaChAYXJncywgR2V0TmF0aXZlVHlwZUZvckNhbGxiYWNr
cygkcGFyYW0tPnR5cGUpIC4gIiAiIC4gJHBhcmFtLT5uYW1lKTsKKyAgICAgICAgICAgICAgICBw
dXNoKEBhcmdzLCBHZXROYXRpdmVUeXBlRm9yQ2FsbGJhY2tzKCRwYXJhbS0+dHlwZSwgMSkgLiAi
ICIgLiAkcGFyYW0tPm5hbWUpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgcHVzaChAaGVh
ZGVyQ29udGVudCwgam9pbigiLCAiLCBAYXJncykpOwogICAgICAgICAgICAgcHVzaChAaGVhZGVy
Q29udGVudCwgIik7XG4iKTsKQEAgLTIyNjIsMzcgKzIyNjYsNTMgQEAgRU5ECiAgICAgICAgIGZv
cmVhY2ggbXkgJGZ1bmN0aW9uIChAeyRkYXRhTm9kZS0+ZnVuY3Rpb25zfSkgewogICAgICAgICAg
ICAgbXkgQHBhcmFtcyA9IEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfTsKICAgICAgICAgICAgIGlm
ICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbSJ9IHx8
Ci0gICAgICAgICAgICAgICAgIShHZXROYXRpdmVUeXBlRm9yQ2FsbGJhY2tzKCRmdW5jdGlvbi0+
c2lnbmF0dXJlLT50eXBlKSBlcSAiYm9vbCIpKSB7CisgICAgICAgICAgICAgICAgKCEoJGZ1bmN0
aW9uLT5zaWduYXR1cmUtPnR5cGUgZXEgImJvb2xlYW4iKSAmJiAhKCRmdW5jdGlvbi0+c2lnbmF0
dXJlLT50eXBlIGVxICJ2b2lkIikpKSB7CiAgICAgICAgICAgICAgICAgbmV4dDsKICAgICAgICAg
ICAgIH0KIAogICAgICAgICAgICAgQWRkSW5jbHVkZXNGb3JUeXBlKCRmdW5jdGlvbi0+c2lnbmF0
dXJlLT50eXBlKTsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiXG4iIC4gR2V0TmF0
aXZlVHlwZUZvckNhbGxiYWNrcygkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSkgLiAiICR7Y2xh
c3NOYW1lfTo6IiAuICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lIC4gIigiKTsKKyAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiXG4iIC4gR2V0TmF0aXZlVHlwZUZvckNhbGxiYWNrcygk
ZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSwgMCkgLiAiICR7Y2xhc3NOYW1lfTo6IiAuICRmdW5j
dGlvbi0+c2lnbmF0dXJlLT5uYW1lIC4gIigiKTsKIAogICAgICAgICAgICAgbXkgQGFyZ3MgPSAo
KTsKICAgICAgICAgICAgIGZvcmVhY2ggbXkgJHBhcmFtIChAcGFyYW1zKSB7CiAgICAgICAgICAg
ICAgICAgQWRkSW5jbHVkZXNGb3JUeXBlKCRwYXJhbS0+dHlwZSk7Ci0gICAgICAgICAgICAgICAg
cHVzaChAYXJncywgR2V0TmF0aXZlVHlwZUZvckNhbGxiYWNrcygkcGFyYW0tPnR5cGUpIC4gIiAi
IC4gJHBhcmFtLT5uYW1lKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBhcmdzLCBHZXROYXRpdmVU
eXBlRm9yQ2FsbGJhY2tzKCRwYXJhbS0+dHlwZSwgMSkgLiAiICIgLiAkcGFyYW0tPm5hbWUpOwog
ICAgICAgICAgICAgfQogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIGpvaW4oIiwgIiwg
QGFyZ3MpKTsKIAogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIpXG4iKTsKICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICBpZiAoIWNhbkludm9rZUNhbGxiYWNrKCkpXG4iKTsKLSAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4gdHJ1ZTtcblxuIik7CisgICAgICAg
ICAgICBpZiAoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUgZXEgImJvb2xlYW4iKSB7CisgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiB0cnVlO1xuXG4i
KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgICAgIHJldHVybjtcblxuIik7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICB2ODo6SGFuZGxlU2NvcGUgaGFuZGxlU2NvcGU7XG5cbiIp
OwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgdjg6OkhhbmRsZTx2ODo6Q29u
dGV4dD4gdjhDb250ZXh0ID0gdG9WOENvbnRleHQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBt
X3dvcmxkQ29udGV4dCk7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IGlmICh2OENvbnRleHQuSXNFbXB0eSgpKVxuIik7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICAgICAgcmV0dXJuIHRydWU7XG5cbiIpOworICAgICAgICAgICAgaWYgKCRmdW5j
dGlvbi0+c2lnbmF0dXJlLT50eXBlIGVxICJib29sZWFuIikgeworICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4gdHJ1ZTtcblxuIik7CisgICAgICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBy
ZXR1cm47XG5cbiIpOworICAgICAgICAgICAgfQogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgdjg6OkNvbnRleHQ6OlNjb3BlIHNjb3BlKHY4Q29udGV4dCk7XG5cbiIpOwogCiAg
ICAgICAgICAgICBAYXJncyA9ICgpOwogICAgICAgICAgICAgZm9yZWFjaCBteSAkcGFyYW0gKEBw
YXJhbXMpIHsKICAgICAgICAgICAgICAgICBteSAkcGFyYW1OYW1lID0gJHBhcmFtLT5uYW1lOwot
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHY4OjpIYW5kbGU8djg6OlZh
bHVlPiAke3BhcmFtTmFtZX1IYW5kbGUgPSB0b1Y4KCR7cGFyYW1OYW1lfSk7XG4iKTsKKyAgICAg
ICAgICAgICAgICBpZiAoJHBhcmFtLT50eXBlIGVxICJib29sZWFuIikgeworICAgICAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gJHtw
YXJhbU5hbWV9SGFuZGxlID0gdjhCb29sZWFuKCR7cGFyYW1OYW1lfSk7XG4iKTsKKyAgICAgICAg
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gJHtwYXJhbU5hbWV9SGFuZGxlID0gdG9WOCgke3Bh
cmFtTmFtZX0pO1xuIik7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgIGlmICgke3BhcmFtTmFtZX1IYW5kbGUuSXNFbXB0eSgpKSB7XG4i
KTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgQ1JBU0goKTtc
biIpOwotICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4g
dHJ1ZTtcbiIpOworICAgICAgICAgICAgICAgIGlmICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlw
ZSBlcSAiYm9vbGVhbiIpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgICAgIHJldHVybiB0cnVlO1xuXG4iKTsKKyAgICAgICAgICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuO1xu
XG4iKTsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgfVxuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAYXJncywgIiAgICAgICAgJHtw
YXJhbU5hbWV9SGFuZGxlIik7CiAgICAgICAgICAgICB9CkBAIC0yMzAxLDcgKzIzMjEsMTEgQEAg
RU5ECiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgam9pbigiLFxuIiwgQGFyZ3MpKTsK
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiXG4gICAgfTtcblxuIik7CiAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBib29sIGNhbGxiYWNrUmV0dXJuVmFsdWUgPSBm
YWxzZTtcbiIpOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuICFp
bnZva2VDYWxsYmFjayhtX2NhbGxiYWNrLCAiIC4gc2NhbGFyKEBwYXJhbXMpIC4gIiwgYXJndiwg
Y2FsbGJhY2tSZXR1cm5WYWx1ZSwgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTtcbiIpOworICAg
ICAgICAgICAgaWYgKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlIGVxICJib29sZWFuIikgewor
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiAhaW52b2tlQ2Fs
bGJhY2sobV9jYWxsYmFjaywgIiAuIHNjYWxhcihAcGFyYW1zKSAuICIsIGFyZ3YsIGNhbGxiYWNr
UmV0dXJuVmFsdWUsIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7XG4iKTsKKyAgICAgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaW52b2tl
Q2FsbGJhY2sobV9jYWxsYmFjaywgIiAuIHNjYWxhcihAcGFyYW1zKSAuICIsIGFyZ3YsIGNhbGxi
YWNrUmV0dXJuVmFsdWUsIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7XG4iKTsKKyAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuIik7CiAgICAgICAgIH0K
ICAgICB9CkBAIC0yODAyLDcgKzI4MjYsOSBAQCBzdWIgR2V0TmF0aXZlVHlwZQogc3ViIEdldE5h
dGl2ZVR5cGVGb3JDYWxsYmFja3MKIHsKICAgICBteSAkdHlwZSA9IHNoaWZ0OworICAgIG15ICRp
c1BhcmFtZXRlciA9IHNoaWZ0OwogICAgIHJldHVybiAiY29uc3QgU3RyaW5nJiIgaWYgJHR5cGUg
ZXEgIkRPTVN0cmluZyI7CisgICAgcmV0dXJuICJ2b2lkIiBpZiAoJHR5cGUgZXEgInZvaWQiKSBh
bmQgISRpc1BhcmFtZXRlcjsKIAogICAgICMgQ2FsbGJhY2tzIHVzZSByYXcgcG9pbnRlcnMsIHNv
IHBhc3MgaXNQYXJhbWV0ZXIgPSAxCiAgICAgcmV0dXJuIEdldE5hdGl2ZVR5cGUoJHR5cGUsIDEp
OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQm9vbGVhbkNhbGxiYWNrLmggYi9XZWJDb3JlL2Nz
cy9Cb29sZWFuQ2FsbGJhY2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4w
Nzc2MzhiCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9jc3MvQm9vbGVhbkNhbGxiYWNrLmgK
QEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3Jh
dGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEJvb2xlYW5D
YWxsYmFja19oCisjZGVmaW5lIEJvb2xlYW5DYWxsYmFja19oCisKKworI2luY2x1ZGUgIlBsYXRm
b3JtU3RyaW5nLmgiCisjaW5jbHVkZSAiU2NyaXB0U3RhdGUuaCIKKworI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQm9vbGVhbkNhbGxi
YWNrIDogcHVibGljIFJlZkNvdW50ZWQ8Qm9vbGVhbkNhbGxiYWNrPiB7CitwdWJsaWM6CisgICAg
dmlydHVhbCB+Qm9vbGVhbkNhbGxiYWNrKCkge30KKworICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVF
dmVudChib29sKSA9IDA7CisvLyAgICB2aXJ0dWFsIGJvb2wgaXNFcXVhbChCb29sZWFuQ2FsbGJh
Y2sqKSA9IDA7Cit9OworCit9CisKKyNlbmRpZiAvLyBCb29sZWFuQ2FsbGJhY2tfaApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9jc3MvQm9vbGVhbkNhbGxiYWNrLmlkbCBiL1dlYkNvcmUvY3NzL0Jvb2xl
YW5DYWxsYmFjay5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjgxNjk0
OAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvY3NzL0Jvb2xlYW5DYWxsYmFjay5pZGwKQEAg
LTAsMCArMSwzMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlv
biBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgdmlldyB7CisgICAg
aW50ZXJmYWNlIFtDYWxsYmFja10gQm9vbGVhbkNhbGxiYWNrIHsKKyAgICAgICAgdm9pZCBoYW5k
bGVFdmVudChpbiBib29sZWFuIHF1ZXJ5UmVzdWx0KTsKKyAgICB9OworfQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9jc3MvU3R5bGVNZWRpYS5jcHAgYi9XZWJDb3JlL2Nzcy9TdHlsZU1lZGlhLmNwcApp
bmRleCA4OTcxZDM1Li42YjBhNDgyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9TdHlsZU1lZGlh
LmNwcAorKysgYi9XZWJDb3JlL2Nzcy9TdHlsZU1lZGlhLmNwcApAQCAtMSw1ICsxLDYgQEAKIC8q
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lk
aWFyeSgtaWVzKQogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSwxNiArMzAs
NjggQEAKICNpbmNsdWRlICJDU1NTdHlsZVNlbGVjdG9yLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIK
ICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKLSNpbmNsdWRlICJNZWRpYUxpc3QuaCIKLSNpbmNsdWRl
ICJNZWRpYVF1ZXJ5RXZhbHVhdG9yLmgiCisjaW5jbHVkZSAiTWVkaWFRdWVyeS5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKKy8vIFN0eWxlTWVkaWE6OlF1ZXJ5CisKK1N0eWxlTWVkaWE6OlF1
ZXJ5OjpRdWVyeShQYXNzUmVmUHRyPE1lZGlhTGlzdD4gbWVkaWEsIFBhc3NPd25QdHI8TWVkaWFR
dWVyeUV2YWx1YXRvcj4gZXZhbHVhdG9yLCBpbnQmIHJvdW5kKQorICAgIDogbV9tZWRpYShtZWRp
YSkKKyAgICAsIG1fY3VycmVudFZhbHVlKGV2YWx1YXRvciAmJiBldmFsdWF0b3ItPmV2YWwobV9t
ZWRpYS5nZXQoKSkpCisgICAgLCBtX2N1cnJlbnRSb3VuZChyb3VuZCkKKyAgICAsIG1fY2hhbmdl
Um91bmQobV9jdXJyZW50Um91bmQgLSAxKQorICAgICwgbV9yZWZDb3VudCgwKQoreworfQorCitT
dHlsZU1lZGlhOjpRdWVyeTo6flF1ZXJ5KCkKK3sKK30KKwordm9pZCBTdHlsZU1lZGlhOjpRdWVy
eTo6ZXZhbHVhdGUoTWVkaWFRdWVyeUV2YWx1YXRvciogZXZhbHVhdG9yKQoreworICAgIGJvb2wg
bmV3VmFsdWUgPSBldmFsdWF0b3IgJiYgZXZhbHVhdG9yLT5ldmFsKG1fbWVkaWEuZ2V0KCkpOwor
ICAgIGlmIChuZXdWYWx1ZSAhPSBtX2N1cnJlbnRWYWx1ZSkgeworICAgICAgICBtX2N1cnJlbnRW
YWx1ZSA9IG5ld1ZhbHVlOworICAgICAgICBtX2NoYW5nZVJvdW5kID0gbV9jdXJyZW50Um91bmQ7
CisgICAgfQorfQorCisvLyBTdHlsZU1lZGlhOjpMaXN0ZW5lcgorCitTdHlsZU1lZGlhOjpMaXN0
ZW5lcjo6TGlzdGVuZXIoUXVlcnkqIHF1ZXJ5LCBQYXNzUmVmUHRyPEJvb2xlYW5DYWxsYmFjaz4g
Y2FsbGJhY2spCisgICAgOiBtX3F1ZXJ5KHF1ZXJ5KQorICAgICwgbV9jYWxsYmFjayhjYWxsYmFj
aykKK3sKKyAgICArK21fcXVlcnktPm1fcmVmQ291bnQ7Cit9CisKK1N0eWxlTWVkaWE6Okxpc3Rl
bmVyOjp+TGlzdGVuZXIoKQoreworICAgIC0tbV9xdWVyeS0+bV9yZWZDb3VudDsKK30KKwordm9p
ZCBTdHlsZU1lZGlhOjpMaXN0ZW5lcjo6aGFuZGxlRXZlbnQoKQoreworICAgIGlmIChtX3F1ZXJ5
LT5jaGFuZ2VkKCkpCisgICAgICAgIG1fY2FsbGJhY2stPmhhbmRsZUV2ZW50KG1fcXVlcnktPnZh
bHVlKCkpOworfQorCisvLyBTdHlsZU1lZGlhCisKIFN0eWxlTWVkaWE6OlN0eWxlTWVkaWEoRnJh
bWUqIGZyYW1lKQogICAgIDogbV9mcmFtZShmcmFtZSkKKyAgICAsIG1fY3VycmVudFJvdW5kKDAp
CiB7CiB9CiAKK1N0eWxlTWVkaWE6On5TdHlsZU1lZGlhKCkKK3sKKyAgICBkZWxldGVBbGxWYWx1
ZXMobV9saXN0ZW5lcnMpOworICAgIGRlbGV0ZUFsbFZhbHVlcyhtX3F1ZXJpZXMpOworfQorCiBT
dHJpbmcgU3R5bGVNZWRpYTo6dHlwZSgpIGNvbnN0CiB7CiAgICAgRnJhbWVWaWV3KiB2aWV3ID0g
bV9mcmFtZSA/IG1fZnJhbWUtPnZpZXcoKSA6IDA7CkBAIC00OCwzMSArMTAxLDE0MCBAQCBTdHJp
bmcgU3R5bGVNZWRpYTo6dHlwZSgpIGNvbnN0CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi1i
b29sIFN0eWxlTWVkaWE6Om1hdGNoTWVkaXVtKGNvbnN0IFN0cmluZyYgcXVlcnkpIGNvbnN0Citz
dGF0aWMgUGFzc1JlZlB0cjxNZWRpYUxpc3Q+IHBhcnNlKGNvbnN0IFN0cmluZyYgcXVlcnkpCiB7
Ci0gICAgaWYgKCFtX2ZyYW1lKQorICAgIFJlZlB0cjxNZWRpYUxpc3Q+IG1lZGlhID0gTWVkaWFM
aXN0OjpjcmVhdGUoKTsKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBtZWRpYS0+c2V0
TWVkaWFUZXh0KHF1ZXJ5LCBlYyk7CisgICAgaWYgKGVjKQorICAgICAgICByZXR1cm4gMDsKKyAg
ICByZXR1cm4gbWVkaWE7Cit9CisKK2Jvb2wgU3R5bGVNZWRpYTo6bWF0Y2hNZWRpYShjb25zdCBT
dHJpbmcmIHF1ZXJ5KSBjb25zdAoreworICAgIFJlZlB0cjxNZWRpYUxpc3Q+IG1lZGlhID0gcGFy
c2UocXVlcnkpOworICAgIGlmICghbWVkaWEpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAg
IE93blB0cjxNZWRpYVF1ZXJ5RXZhbHVhdG9yPiBldmFsdWF0b3IocHJlcGFyZUV2YWx1YXRvcigp
KTsKKyAgICByZXR1cm4gZXZhbHVhdG9yICYmIGV2YWx1YXRvci0+ZXZhbChtZWRpYS5nZXQoKSk7
Cit9CisKK1Bhc3NPd25QdHI8TWVkaWFRdWVyeUV2YWx1YXRvcj4gU3R5bGVNZWRpYTo6cHJlcGFy
ZUV2YWx1YXRvcigpIGNvbnN0Cit7CisgICAgaWYgKCFtX2ZyYW1lKQorICAgICAgICByZXR1cm4g
MDsKKwogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IG1fZnJhbWUtPmRvY3VtZW50KCk7Ci0gICAg
QVNTRVJUKGRvY3VtZW50KTsKKyAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICByZXR1cm4gMDsK
KwogICAgIEVsZW1lbnQqIGRvY3VtZW50RWxlbWVudCA9IGRvY3VtZW50LT5kb2N1bWVudEVsZW1l
bnQoKTsKICAgICBpZiAoIWRvY3VtZW50RWxlbWVudCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICByZXR1cm4gMDsKIAogICAgIENTU1N0eWxlU2VsZWN0b3IqIHN0eWxlU2VsZWN0b3Ig
PSBkb2N1bWVudC0+c3R5bGVTZWxlY3RvcigpOwogICAgIGlmICghc3R5bGVTZWxlY3RvcikKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gMDsKIAogICAgIFJlZlB0cjxSZW5k
ZXJTdHlsZT4gcm9vdFN0eWxlID0gc3R5bGVTZWxlY3Rvci0+c3R5bGVGb3JFbGVtZW50KGRvY3Vt
ZW50RWxlbWVudCwgMCAvKmRlZmF1bHRQYXJlbnQqLywgZmFsc2UgLyphbGxvd1NoYXJpbmcqLywg
dHJ1ZSAvKnJlc29sdmVGb3JSb290RGVmYXVsdCovKTsKLSAgICBSZWZQdHI8TWVkaWFMaXN0PiBt
ZWRpYSA9IE1lZGlhTGlzdDo6Y3JlYXRlKCk7CiAKLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsK
LSAgICBtZWRpYS0+c2V0TWVkaWFUZXh0KHF1ZXJ5LCBlYyk7Ci0gICAgaWYgKGVjKQotICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIG5ldyBNZWRpYVF1ZXJ5RXZhbHVhdG9yKHR5cGUo
KSwgbV9mcmFtZSwgcm9vdFN0eWxlLmdldCgpKTsKK30KKwordm9pZCBTdHlsZU1lZGlhOjphZGRN
ZWRpYUxpc3RlbmVyKGNvbnN0IFN0cmluZyYgcXVlcnlMaXN0LCBQYXNzUmVmUHRyPEJvb2xlYW5D
YWxsYmFjaz4gY2FsbGJhY2spCit7CisgICAgaWYgKCFjYWxsYmFjayB8fCBxdWVyeUxpc3QuaXNF
bXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBSZWZQdHI8TWVkaWFMaXN0PiBtZWRpYSA9
IHBhcnNlKHF1ZXJ5TGlzdCk7CisgICAgaWYgKCFtZWRpYSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgU3RyaW5nIGtleSA9IG1lZGlhLT5tZWRpYVRleHQoKTsKKy8vICAgIFN0cmluZyBrZXkgPSB3
cml0ZU1lZGlhTGlzdEtleShtZWRpYS5nZXQoKSk7CisgICAgaWYgKGtleS5pc0VtcHR5KCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIC8vIGxvb2sgZm9yIHF1ZXJ5IGluIG1fcXVlcmllcy4KKyAg
ICBRdWVyeSogcXVlcnkgPSBtX3F1ZXJpZXMuZ2V0KGtleSk7CisgICAgaWYgKCFxdWVyeSkgewor
ICAgICAgICAvLyBpZiBubyBlcXVpdmFsZW50IHF1ZXJ5IGlzIGluIG1fcXVlcmllcyBjcmVhdGUg
b25lLgorCisgICAgICAgIE93blB0cjxRdWVyeT4gdGVtcChuZXcgUXVlcnkobWVkaWEsIHByZXBh
cmVFdmFsdWF0b3IoKSwgbV9jdXJyZW50Um91bmQpKTsKKyAgICAgICAgaWYgKG1fcXVlcmllcy5h
ZGQoa2V5LCB0ZW1wLmdldCgpKS5zZWNvbmQpCisgICAgICAgICAgICBxdWVyeSA9IHRlbXAucmVs
ZWFzZSgpLmxlYWtQdHIoKTsgLy8gcXVlcnkgY3JlYXRlZCBhbmQgYWRkZWQgdG8gbV9xdWVyaWVz
CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgIH0gZWxzZSB7CisgICAgICAgIC8vIGlm
IHRoZXJlIGlzIGFscmVhZHkgYW4gZXF1aXZhbGVudCBxdWVyeSBsb29rIGZvciBhbiBlcXVpdmFs
ZW50CisgICAgICAgIC8vIHBhaXIgKHF1ZXJ5LCBjYWxsYmFjaykuIHJldHVybiBpZiBmb3VuZC4K
KworLy8gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9saXN0ZW5lcnMuc2l6ZSgpOyAr
K2kpIHsKKy8vICAgICAgICAgICAgaWYgKG1fbGlzdGVuZXJzW2ldLT5xdWVyeSgpID09IHF1ZXJ5
ICYmIG1fbGlzdGVuZXJzW2ldLT5jYWxsYmFjaygpLT5pc0VxdWFsKGNhbGxiYWNrLmdldCgpKSkK
Ky8vICAgICAgICAgICAgICAgIHJldHVybjsKKy8vICAgICAgICB9CisKKyAgICB9CisKKyAgICBM
aXN0ZW5lciogbGlzdGVuZXIgPSBuZXcgTGlzdGVuZXIocXVlcnksIGNhbGxiYWNrKTsKKyAgICBt
X2xpc3RlbmVycy5hcHBlbmQobGlzdGVuZXIpOworfQorCit2b2lkIFN0eWxlTWVkaWE6OnJlbW92
ZU1lZGlhTGlzdGVuZXIoY29uc3QgU3RyaW5nJiBxdWVyeUxpc3QsIFBhc3NSZWZQdHI8Qm9vbGVh
bkNhbGxiYWNrPiBjYWxsYmFjaykKK3sKKyAgICBpZiAoIWNhbGxiYWNrIHx8IHF1ZXJ5TGlzdC5p
c0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIFJlZlB0cjxNZWRpYUxpc3Q+IG1lZGlh
ID0gcGFyc2UocXVlcnlMaXN0KTsKKyAgICBpZiAoIW1lZGlhKQorICAgICAgICByZXR1cm47CisK
KyAgICBTdHJpbmcga2V5ID0gbWVkaWEtPm1lZGlhVGV4dCgpOworICAgIGlmIChrZXkuaXNFbXB0
eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBRdWVyeSogcXVlcnkgPSBtX3F1ZXJpZXMuZ2V0
KGtleSk7CisgICAgaWYgKCFxdWVyeSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLyoKKyAgICBm
b3IgKGludCBpID0gbV9saXN0ZW5lcnMuc2l6ZSgpIC0gMTsgaSA+PSAwOyAtLWkpIHsKKyAgICAg
ICAgaWYgKG1fbGlzdGVuZXJzW2ldLT5xdWVyeSgpID09IHF1ZXJ5ICYmIG1fbGlzdGVuZXJzW2ld
LT5jYWxsYmFjaygpLT5pc0VxdWFsKGNhbGxiYWNrLmdldCgpKSkgeworICAgICAgICAgICAgZGVs
ZXRlIG1fbGlzdGVuZXJzW2ldOworICAgICAgICAgICAgbV9saXN0ZW5lcnMucmVtb3ZlKGkpOwor
ICAgICAgICAgICAgaWYgKCFxdWVyeS0+cmVmQ291bnQoKSkgeworICAgICAgICAgICAgICAgIG1f
cXVlcmllcy5yZW1vdmUoa2V5KTsKKyAgICAgICAgICAgICAgICBkZWxldGUgcXVlcnk7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgKi8KK30KKworCit2b2lkIFN0eWxlTWVk
aWE6OnN0eWxlQ2hhbmdlZCgpCit7CisgICAgT3duUHRyPE1lZGlhUXVlcnlFdmFsdWF0b3I+IGV2
YWx1YXRvcihwcmVwYXJlRXZhbHVhdG9yKCkpOworICAgIGlmICghZXZhbHVhdG9yKQorICAgICAg
ICByZXR1cm47CisKKyAgICAvLyBpbmNyZW1lbnQgZXZhbHVhdGlvbiByb3VuZAorICAgICsrbV9j
dXJyZW50Um91bmQ7CisKKyAgICAvLyBldmFsdWF0ZSBlYWNoIHF1ZXJ5CisgICAgSGFzaE1hcDxT
dHJpbmcsIFF1ZXJ5Kj46Oml0ZXJhdG9yOjpWYWx1ZXMgaSA9IG1fcXVlcmllcy5iZWdpbigpOwor
ICAgIEhhc2hNYXA8U3RyaW5nLCBRdWVyeSo+OjppdGVyYXRvcjo6VmFsdWVzIGVuZCA9IG1fcXVl
cmllcy5lbmQoKTsKKyAgICBmb3IgKDsgaSAhPSBlbmQ7ICsraSkKKyAgICAgICAgKCppKS0+ZXZh
bHVhdGUoZXZhbHVhdG9yLmdldCgpKTsKIAotICAgIE1lZGlhUXVlcnlFdmFsdWF0b3Igc2NyZWVu
RXZhbCh0eXBlKCksIG1fZnJhbWUsIHJvb3RTdHlsZS5nZXQoKSk7Ci0gICAgcmV0dXJuIHNjcmVl
bkV2YWwuZXZhbChtZWRpYS5nZXQoKSk7CisgICAgLy8gdHJpZ2VyIGNhbGxiYWNrcyBpbiBvcmRl
cgorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9saXN0ZW5lcnMuc2l6ZSgpOyArK2kpCisg
ICAgICAgIG1fbGlzdGVuZXJzW2ldLT5oYW5kbGVFdmVudCgpOwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9TdHlsZU1lZGlhLmggYi9XZWJDb3Jl
L2Nzcy9TdHlsZU1lZGlhLmgKaW5kZXggODJjOWViYS4uMTJhMTc0YiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9jc3MvU3R5bGVNZWRpYS5oCisrKyBiL1dlYkNvcmUvY3NzL1N0eWxlTWVkaWEuaApAQCAt
MjcsOCArMjcsMTUgQEAKICNpZm5kZWYgU3R5bGVNZWRpYV9oCiAjZGVmaW5lIFN0eWxlTWVkaWFf
aAogCisjaW5jbHVkZSAiQm9vbGVhbkNhbGxiYWNrLmgiCisjaW5jbHVkZSAiTWVkaWFMaXN0Lmgi
CisjaW5jbHVkZSAiTWVkaWFRdWVyeUV2YWx1YXRvci5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3Ry
aW5nLmgiCiAKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzT3du
UHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgorCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIEZyYW1lOwpAQCAtMzksMTcgKzQ2LDYyIEBAIHB1YmxpYzoKICAgICB7
CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3R5bGVNZWRpYShmcmFtZSkpOwogICAgIH0K
KyAgICB+U3R5bGVNZWRpYSgpOwogCiAgICAgdm9pZCBkaXNjb25uZWN0RnJhbWUoKSB7IG1fZnJh
bWUgPSAwOyB9CiAKICAgICBTdHJpbmcgdHlwZSgpIGNvbnN0OwogCi0gICAgYm9vbCBtYXRjaE1l
ZGl1bShjb25zdCBTdHJpbmcmKSBjb25zdDsKKyAgICBib29sIG1hdGNoTWVkaWEoY29uc3QgU3Ry
aW5nJikgY29uc3Q7CisKKyAgICB2b2lkIGFkZE1lZGlhTGlzdGVuZXIoY29uc3QgU3RyaW5nJiwg
UGFzc1JlZlB0cjxCb29sZWFuQ2FsbGJhY2s+KTsKKyAgICB2b2lkIHJlbW92ZU1lZGlhTGlzdGVu
ZXIoY29uc3QgU3RyaW5nJiwgUGFzc1JlZlB0cjxCb29sZWFuQ2FsbGJhY2s+KTsKKworICAgIHZv
aWQgc3R5bGVDaGFuZ2VkKCk7CiAKIHByaXZhdGU6CiAgICAgU3R5bGVNZWRpYShGcmFtZSopOwog
CisgICAgY2xhc3MgTGlzdGVuZXI7CisKKyAgICBjbGFzcyBRdWVyeSB7CisgICAgcHVibGljOgor
ICAgICAgICBRdWVyeShQYXNzUmVmUHRyPE1lZGlhTGlzdD4gbWVkaWEsIFBhc3NPd25QdHI8TWVk
aWFRdWVyeUV2YWx1YXRvcj4gZXZhbHVhdG9yLCBpbnQmIHJvdW5kKTsKKyAgICAgICB+UXVlcnko
KTsKKyAgICAgICAgdm9pZCBldmFsdWF0ZShNZWRpYVF1ZXJ5RXZhbHVhdG9yKik7CisgICAgICAg
IGJvb2wgdmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnRWYWx1ZTsgfQorICAgICAgICBi
b29sIGNoYW5nZWQoKSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnRSb3VuZCA9PSBtX2NoYW5nZVJv
dW5kOyB9CisgICAgICAgIGludCByZWZDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVmQ291bnQ7
IH0KKworICAgIHByaXZhdGU6CisgICAgICAgIFJlZlB0cjxNZWRpYUxpc3Q+IG1fbWVkaWE7Cisg
ICAgICAgIGJvb2wgbV9jdXJyZW50VmFsdWU7CisgICAgICAgIGludCYgbV9jdXJyZW50Um91bmQ7
CisgICAgICAgIGludCBtX2NoYW5nZVJvdW5kOworICAgICAgICBpbnQgbV9yZWZDb3VudDsKKwor
ICAgICAgICBmcmllbmQgY2xhc3MgU3R5bGVNZWRpYTo6TGlzdGVuZXI7CisgICAgfTsKKworICAg
IGNsYXNzIExpc3RlbmVyIHsKKyAgICBwdWJsaWM6CisgICAgICAgIExpc3RlbmVyKFF1ZXJ5KiBx
dWVyeSwgUGFzc1JlZlB0cjxCb29sZWFuQ2FsbGJhY2s+IGNhbGxiYWNrKTsKKyAgICAgICAgfkxp
c3RlbmVyKCk7CisgICAgICAgIHZvaWQgaGFuZGxlRXZlbnQoKTsKKyAgICAgICAgY29uc3QgUXVl
cnkqIHF1ZXJ5KCkgeyByZXR1cm4gbV9xdWVyeTsgfQorICAgICAgICBjb25zdCBCb29sZWFuQ2Fs
bGJhY2sqIGNhbGxiYWNrKCkgY29uc3QgeyByZXR1cm4gbV9jYWxsYmFjay5nZXQoKTsgfQorCisg
ICAgcHJpdmF0ZToKKyAgICAgICAgUXVlcnkqIG1fcXVlcnk7CisgICAgICAgIFJlZlB0cjxCb29s
ZWFuQ2FsbGJhY2s+IG1fY2FsbGJhY2s7CisgICAgfTsKKworICAgIFBhc3NPd25QdHI8TWVkaWFR
dWVyeUV2YWx1YXRvcj4gcHJlcGFyZUV2YWx1YXRvcigpIGNvbnN0OworCiAgICAgRnJhbWUqIG1f
ZnJhbWU7CisgICAgSGFzaE1hcDxTdHJpbmcsIFF1ZXJ5Kj4gbV9xdWVyaWVzOworICAgIFZlY3Rv
cjxMaXN0ZW5lcio+IG1fbGlzdGVuZXJzOworICAgIGludCBtX2N1cnJlbnRSb3VuZDsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9TdHlsZU1lZGlhLmlkbCBi
L1dlYkNvcmUvY3NzL1N0eWxlTWVkaWEuaWRsCmluZGV4IDdiZTM1Y2MuLmY0NzZhYTMgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvY3NzL1N0eWxlTWVkaWEuaWRsCisrKyBiL1dlYkNvcmUvY3NzL1N0eWxl
TWVkaWEuaWRsCkBAIC0yNyw2ICsyNyw5IEBACiBtb2R1bGUgdmlldyB7CiAgICAgaW50ZXJmYWNl
IFN0eWxlTWVkaWEgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHR5cGU7
Ci0gICAgICAgIGJvb2xlYW4gbWF0Y2hNZWRpdW0oaW4gRE9NU3RyaW5nIG1lZGlhcXVlcnkpOwor
ICAgICAgICBib29sZWFuIG1hdGNoTWVkaWEoaW4gRE9NU3RyaW5nIG1xTGlzdCk7CisKKyAgICAg
ICAgdm9pZCBhZGRNZWRpYUxpc3RlbmVyKGluIERPTVN0cmluZyBtcUxpc3QsIGluIFtDYWxsYmFj
a10gQm9vbGVhbkNhbGxiYWNrIG1xQ2FsbGJhY2spOworICAgICAgICB2b2lkIHJlbW92ZU1lZGlh
TGlzdGVuZXIoaW4gRE9NU3RyaW5nIG1xTGlzdCwgaW4gW0NhbGxiYWNrXSBCb29sZWFuQ2FsbGJh
Y2sgbXFDYWxsYmFjayk7CiAgICAgfTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBiODZkYjViLi4yNTJiNTJm
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCkBAIC0xMjEsNiArMTIxLDcgQEAKICNpbmNsdWRlICJTZWxlY3Rpb25Db250
cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTdGF0aWNIYXNoU2V0
Tm9kZUxpc3QuaCIKKyNpbmNsdWRlICJTdHlsZU1lZGlhLmgiCiAjaW5jbHVkZSAiU3R5bGVTaGVl
dExpc3QuaCIKICNpbmNsdWRlICJUZXh0RXZlbnQuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3Iu
aCIKQEAgLTI3MjgsNiArMjcyOSw5IEBAIHZvaWQgRG9jdW1lbnQ6OnVwZGF0ZVN0eWxlU2VsZWN0
b3IoKQogICAgICAgICBpZiAodmlldygpKQogICAgICAgICAgICAgdmlldygpLT5zY2hlZHVsZVJl
bGF5b3V0KCk7CiAgICAgfQorCisgICAgaWYgKGRvbVdpbmRvdygpICYmIGRvbVdpbmRvdygpLT5z
dHlsZU1lZGlhKCkpCisgICAgICAgIGRvbVdpbmRvdygpLT5zdHlsZU1lZGlhKCktPnN0eWxlQ2hh
bmdlZCgpOwogfQogCiB2b2lkIERvY3VtZW50OjphZGRTdHlsZVNoZWV0Q2FuZGlkYXRlTm9kZShO
b2RlKiBub2RlLCBib29sIGNyZWF0ZWRCeVBhcnNlcikKLS0gCjEuNi4zLjMKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64934</attachid>
            <date>2010-08-20 01:31:50 -0700</date>
            <delta_ts>2010-09-03 08:39:12 -0700</delta_ts>
            <desc>implementing most recent specification</desc>
            <filename>0001-Media-listeners.patch</filename>
            <type>text/plain</type>
            <size>86537</size>
            <attacher name="Luiz Agostini">luiz</attacher>
            
              <data encoding="base64">RnJvbSA0NDU5NTc4NTQ3YTFiYjY5ZjQ3NDE2NDhkMGUwOTJlNjFlN2YzODZjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWl6IEFnb3N0aW5pIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IEZyaSwgMjAgQXVnIDIwMTAgMDU6Mjc6MzMgLTAzMDAKU3ViamVjdDogW1BB
VENIXSBNZWRpYSBsaXN0ZW5lcnMKIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zNzIwNQoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpJbXBsZW1lbnRpbmcgbW9z
dCByZWNlbnQgcHJvcG9zYWwgZm9yIG1lZGlhIGxpc3RlbmVycyBBUEkuCgpUaGlzIHBhdGNoIGlz
IG9idmlvdXNseSB0b28gYmlnIGFuZCB3aWxsIGJlIHNwbGl0dGVkIGJ1dCBmb3IgdGhlIG1vc3QK
bWVhbmluZ2Z1bCBwYXJ0IG9mIGl0IHRvIGJlIGJ1aWx0IGJ5IHRoZSBib3RzIEkgbmVlZGVkIHRv
IHB1dCBldmVyeXRoaW5nIGhlcmUuCgpDbGFzcyBNZWRpYVF1ZXJ5IGhhcyBiZWVuIHJlbmFtZWQg
dG8gQ1NTTWVkaWFRdWVyeSBiZWNhdXNlIG5hbWUgTWVkaWFRdWVyeSBpcwp1c2VkIGluIGxhdGVz
dHNwZWNpZmljYXRpb24gcHJvcG9zYWwuIEEgbmV3IE1lZGlhUXVlcnkgaGFzIGJlZW4gaW1wbGVt
ZW50ZWQgYW5kCmRlZmluaXRpb25zIE1lZGlRdWVyeS5pZGwgYW5kIE1lZGlhUXVlcnlDaGFuZ2VM
aXN0ZW5lci5pZGwgaGF2ZSBiZWVuIGFkZGVkLgoKTWV0aG9kIG1hdGNoTWVkaWEgaGFzIGJlZW4g
YWRkZWQgdG8gRE9NV2luZG93IGFuZCB0aGUgbmV3IGNsYXNzIE1lZGlhUXVlcnlWZWN0b3Iga2Vl
cHMKYSB2ZWN0b3Igb2YgbWVkaWEgcXVlcnkgbGlzdGVuZXJzLgoKTW9zdCByZWNlbnQgcHJvcG9z
YWwgcmVtb3ZlcyBjbGFzcyBTdHlsZU1lZGlhIGJ1dCB0aGlzIHBhdGNoIGRpZCBub3QgdG91Y2gg
dGhlClN0eWxlTWVkaWEgY2xhc3MuCgpQcmVsaW1pbmFyIHRlc3RzIGluIFF0IGFuZCBTYWZhcmku
CgpMaXN0ZW5lciBjb21wYXJpc29uIGFuZCBsYXlvdXQgdGVzdHMgYXJlIG1pc3NpbmcuCgpObyBu
ZXcgdGVzdHMuIChPT1BTISkKCiogRGVyaXZlZFNvdXJjZXMuY3BwOgoqIERlcml2ZWRTb3VyY2Vz
Lm1ha2U6CiogR05VbWFrZWZpbGUuYW06CiogV2ViQ29yZS5neXBpOgoqIFdlYkNvcmUucHJpOgoq
IFdlYkNvcmUucHJvOgoqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgoqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbToKKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbToKKiBjc3MvQ1NT
R3JhbW1hci55OgoqIGNzcy9DU1NNZWRpYVF1ZXJ5LmNwcDogQWRkZWQuCihXZWJDb3JlOjpDU1NN
ZWRpYVF1ZXJ5OjpzZXJpYWxpemUpOgooV2ViQ29yZTo6ZXhwcmVzc2lvbkNvbXBhcmUpOgooV2Vi
Q29yZTo6Q1NTTWVkaWFRdWVyeTo6Q1NTTWVkaWFRdWVyeSk6CihXZWJDb3JlOjpDU1NNZWRpYVF1
ZXJ5Ojp+Q1NTTWVkaWFRdWVyeSk6CihXZWJDb3JlOjpDU1NNZWRpYVF1ZXJ5OjpvcGVyYXRvcj09
KToKKFdlYkNvcmU6OkNTU01lZGlhUXVlcnk6OmNzc1RleHQpOgoqIGNzcy9DU1NNZWRpYVF1ZXJ5
Lmg6IEFkZGVkLgooV2ViQ29yZTo6Q1NTTWVkaWFRdWVyeTo6KToKKFdlYkNvcmU6OkNTU01lZGlh
UXVlcnk6OnJlc3RyaWN0b3IpOgooV2ViQ29yZTo6Q1NTTWVkaWFRdWVyeTo6ZXhwcmVzc2lvbnMp
OgooV2ViQ29yZTo6Q1NTTWVkaWFRdWVyeTo6bWVkaWFUeXBlKToKKFdlYkNvcmU6OkNTU01lZGlh
UXVlcnk6Omlnbm9yZWQpOgoqIGNzcy9DU1NQYXJzZXIuY3BwOgooV2ViQ29yZTo6Q1NTUGFyc2Vy
OjpjcmVhdGVGbG9hdGluZ01lZGlhUXVlcnkpOgooV2ViQ29yZTo6Q1NTUGFyc2VyOjpzaW5rRmxv
YXRpbmdNZWRpYVF1ZXJ5KToKKiBjc3MvQ1NTUGFyc2VyLmg6CiogY3NzL01lZGlhTGlzdC5jcHA6
CihXZWJDb3JlOjpNZWRpYUxpc3Q6OmRlbGV0ZU1lZGl1bSk6CihXZWJDb3JlOjpNZWRpYUxpc3Q6
OnNldE1lZGlhVGV4dCk6CihXZWJDb3JlOjpNZWRpYUxpc3Q6Oml0ZW0pOgooV2ViQ29yZTo6TWVk
aWFMaXN0OjphcHBlbmRNZWRpdW0pOgooV2ViQ29yZTo6TWVkaWFMaXN0OjphcHBlbmRNZWRpYVF1
ZXJ5KToKKiBjc3MvTWVkaWFMaXN0Lmg6CihXZWJDb3JlOjpNZWRpYUxpc3Q6Om1lZGlhUXVlcmll
cyk6CiogY3NzL01lZGlhUXVlcnkuY3BwOgooV2ViQ29yZTo6TWVkaWFRdWVyeTo6Y3JlYXRlKToK
KFdlYkNvcmU6Ok1lZGlhUXVlcnk6Ok1lZGlhUXVlcnkpOgooV2ViQ29yZTo6TWVkaWFRdWVyeTo6
fk1lZGlhUXVlcnkpOgooV2ViQ29yZTo6TWVkaWFRdWVyeTo6bWVkaWEpOgooV2ViQ29yZTo6TWVk
aWFRdWVyeTo6YWRkTGlzdGVuZXIpOgooV2ViQ29yZTo6TWVkaWFRdWVyeTo6cmVtb3ZlTGlzdGVu
ZXIpOgooV2ViQ29yZTo6TWVkaWFRdWVyeTo6Y2hhbmdlZCk6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5
OjpldmFsdWF0ZSk6CiogY3NzL01lZGlhUXVlcnkuaDoKKFdlYkNvcmU6Ok1lZGlhUXVlcnk6Om1h
dGNoZXMpOgoqIGNzcy9NZWRpYVF1ZXJ5LmlkbDogQWRkZWQuCiogY3NzL01lZGlhUXVlcnlDaGFu
Z2VMaXN0ZW5lci5oOiBBZGRlZC4KKFdlYkNvcmU6Ok1lZGlhUXVlcnlDaGFuZ2VMaXN0ZW5lcjo6
fk1lZGlhUXVlcnlDaGFuZ2VMaXN0ZW5lcik6CiogY3NzL01lZGlhUXVlcnlDaGFuZ2VMaXN0ZW5l
ci5pZGw6IEFkZGVkLgoqIGNzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcDoKKFdlYkNvcmU6OmFw
cGx5UmVzdHJpY3Rvcik6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5RXZhbHVhdG9yOjpldmFsKToKKiBj
c3MvTWVkaWFRdWVyeVZlY3Rvci5jcHA6IEFkZGVkLgooV2ViQ29yZTo6Z2V0TmV3SWQpOgooV2Vi
Q29yZTo6TWVkaWFRdWVyeUxpc3RlbmVyOjpNZWRpYVF1ZXJ5TGlzdGVuZXIpOgooV2ViQ29yZTo6
TWVkaWFRdWVyeUxpc3RlbmVyOjp+TWVkaWFRdWVyeUxpc3RlbmVyKToKKFdlYkNvcmU6Ok1lZGlh
UXVlcnlMaXN0ZW5lcjo6aXNMaXN0ZW5lckVxdWFsKToKKFdlYkNvcmU6Ok1lZGlhUXVlcnlMaXN0
ZW5lcjo6ZXZhbHVhdGUpOgooV2ViQ29yZTo6TWVkaWFRdWVyeVZlY3Rvcjo6TWVkaWFRdWVyeVZl
Y3Rvcik6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5VmVjdG9yOjp+TWVkaWFRdWVyeVZlY3Rvcik6CihX
ZWJDb3JlOjpNZWRpYVF1ZXJ5VmVjdG9yOjp0ZXJtaW5hdGUpOgooV2ViQ29yZTo6TWVkaWFRdWVy
eVZlY3Rvcjo6bWVkaWFUeXBlKToKKFdlYkNvcmU6Ok1lZGlhUXVlcnlWZWN0b3I6OnByZXBhcmVF
dmFsdWF0b3IpOgooV2ViQ29yZTo6TWVkaWFRdWVyeVZlY3Rvcjo6bWF0Y2hNZWRpYSk6CihXZWJD
b3JlOjpNZWRpYVF1ZXJ5VmVjdG9yOjphZGRMaXN0ZW5lcik6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5
VmVjdG9yOjpsaXN0ZW5lckNvbXBhcmUpOgooV2ViQ29yZTo6TWVkaWFRdWVyeVZlY3Rvcjo6cmVt
b3ZlTGlzdGVuZXIpOgooV2ViQ29yZTo6TWVkaWFRdWVyeVZlY3Rvcjo6ZXZhbHVhdGUpOgoqIGNz
cy9NZWRpYVF1ZXJ5VmVjdG9yLmg6IEFkZGVkLgooV2ViQ29yZTo6TWVkaWFRdWVyeUxpc3RlbmVy
OjppZCk6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5VmVjdG9yOjpjcmVhdGUpOgooV2ViQ29yZTo6TWVk
aWFRdWVyeVZlY3Rvcjo6ZXZhbFJvdW5kKToKKiBkb20vRG9jdW1lbnQuY3BwOgooV2ViQ29yZTo6
RG9jdW1lbnQ6OnVwZGF0ZVN0eWxlU2VsZWN0b3IpOgoqIHBhZ2UvRE9NV2luZG93LmNwcDoKKFdl
YkNvcmU6OkRPTVdpbmRvdzo6fkRPTVdpbmRvdyk6CihXZWJDb3JlOjpET01XaW5kb3c6Om1hdGNo
TWVkaWEpOgooV2ViQ29yZTo6RE9NV2luZG93OjpzdHlsZUNoYW5nZWQpOgoqIHBhZ2UvRE9NV2lu
ZG93Lmg6CiogcGFnZS9ET01XaW5kb3cuaWRsOgotLS0KIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgMTExICsrKysrKysrKysrKysrKysrKysrCiBXZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLmNwcCAgICAgICAgICAgICAgICAgIHwgICAgMiArCiBXZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLm1ha2UgICAgICAgICAgICAgICAgIHwgICAgMiArCiBXZWJDb3JlL0dOVW1h
a2VmaWxlLmFtICAgICAgICAgICAgICAgICAgICAgIHwgICAxMSArKy0KIFdlYkNvcmUvV2ViQ29y
ZS5neXBpICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA5ICsrLQogV2ViQ29yZS9XZWJDb3Jl
LnByaSAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKwogV2ViQ29yZS9XZWJDb3JlLnBy
byAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDcgKy0KIFdlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2ogICAgICAgfCAgMTMyICsrKysrKysrKysrKysrKysrKysrKysrCiBX
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiAgIHwgICA1NiArKysrKysr
KystLQogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSB8ICAgNDcg
KysrKysrKy0tCiBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtIHwg
ICA1MCArKysrKysrLS0KIFdlYkNvcmUvY3NzL0NTU0dyYW1tYXIueSAgICAgICAgICAgICAgICAg
ICAgfCAgIDEwICstCiBXZWJDb3JlL2Nzcy9DU1NNZWRpYVF1ZXJ5LmNwcCAgICAgICAgICAgICAg
IHwgIDEyOCArKysrKysrKysrKysrKysrKysrKysrKwogV2ViQ29yZS9jc3MvQ1NTTWVkaWFRdWVy
eS5oICAgICAgICAgICAgICAgICB8ICAgNjggKysrKysrKysrKysrCiBXZWJDb3JlL2Nzcy9DU1NQ
YXJzZXIuY3BwICAgICAgICAgICAgICAgICAgIHwgICAxMCArLQogV2ViQ29yZS9jc3MvQ1NTUGFy
c2VyLmggICAgICAgICAgICAgICAgICAgICB8ICAgMTQgKystLQogV2ViQ29yZS9jc3MvTWVkaWFM
aXN0LmNwcCAgICAgICAgICAgICAgICAgICB8ICAgMTYgKystLQogV2ViQ29yZS9jc3MvTWVkaWFM
aXN0LmggICAgICAgICAgICAgICAgICAgICB8ICAgIDggKy0KIFdlYkNvcmUvY3NzL01lZGlhUXVl
cnkuY3BwICAgICAgICAgICAgICAgICAgfCAgMTI1ICsrKysrKysrLS0tLS0tLS0tLS0tLS0KIFdl
YkNvcmUvY3NzL01lZGlhUXVlcnkuaCAgICAgICAgICAgICAgICAgICAgfCAgIDYzICsrKysrKy0t
LS0tLQogV2ViQ29yZS9jc3MvTWVkaWFRdWVyeS5pZGwgICAgICAgICAgICAgICAgICB8ICAgMzMg
KysrKysrCiBXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5Q2hhbmdlTGlzdGVuZXIuaCAgICAgIHwgICA0
MyArKysrKysrKwogV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUNoYW5nZUxpc3RlbmVyLmlkbCAgICB8
ICAgMzAgKysrKysrCiBXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcCAgICAgICAg
IHwgICAxNCArKy0tCiBXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5VmVjdG9yLmNwcCAgICAgICAgICAg
IHwgIDE1MCArKysrKysrKysrKysrKysrKysrKysrKysrKysKIFdlYkNvcmUvY3NzL01lZGlhUXVl
cnlWZWN0b3IuaCAgICAgICAgICAgICAgfCAgIDU3ICsrKysrKysrKysKIFdlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcCAgICAgICAgICAgICAgICAgICAgfCAgICAzICsKIFdlYkNvcmUvcGFnZS9ET01X
aW5kb3cuY3BwICAgICAgICAgICAgICAgICAgfCAgIDIwICsrKystCiBXZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmggICAgICAgICAgICAgICAgICAgIHwgICAgNyArKwogV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5pZGwgICAgICAgICAgICAgICAgICB8ICAgIDIgKwogMzAgZmlsZXMgY2hhbmdlZCwgMTA1
MCBpbnNlcnRpb25zKCspLCAxODAgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2Vi
Q29yZS9jc3MvQ1NTTWVkaWFRdWVyeS5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL2Nz
cy9DU1NNZWRpYVF1ZXJ5LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL2Nzcy9NZWRpYVF1
ZXJ5LmlkbAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvY3NzL01lZGlhUXVlcnlDaGFuZ2VM
aXN0ZW5lci5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUNoYW5n
ZUxpc3RlbmVyLmlkbAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvY3NzL01lZGlhUXVlcnlW
ZWN0b3IuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9jc3MvTWVkaWFRdWVyeVZlY3Rv
ci5oCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCAyMThkZDdhLi4xZGEzMzNmIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExNCBAQAorMjAxMC0wOC0yMCAgTHVpeiBB
Z29zdGluaSAgPGx1aXouYWdvc3RpbmlAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNZWRpYSBsaXN0ZW5lcnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3MjA1CisKKyAgICAgICAg
SW1wbGVtZW50aW5nIG1vc3QgcmVjZW50IHByb3Bvc2FsIGZvciBtZWRpYSBsaXN0ZW5lcnMgQVBJ
LgorCisgICAgICAgIFRoaXMgcGF0Y2ggaXMgb2J2aW91c2x5IHRvbyBiaWcgYW5kIHdpbGwgYmUg
c3BsaXR0ZWQgYnV0IGZvciB0aGUgbW9zdAorICAgICAgICBtZWFuaW5nZnVsIHBhcnQgb2YgaXQg
dG8gYmUgYnVpbHQgYnkgdGhlIGJvdHMgSSBuZWVkZWQgdG8gcHV0IGV2ZXJ5dGhpbmcgaGVyZS4K
KworICAgICAgICBDbGFzcyBNZWRpYVF1ZXJ5IGhhcyBiZWVuIHJlbmFtZWQgdG8gQ1NTTWVkaWFR
dWVyeSBiZWNhdXNlIG5hbWUgTWVkaWFRdWVyeSBpcworICAgICAgICB1c2VkIGluIGxhdGVzdHNw
ZWNpZmljYXRpb24gcHJvcG9zYWwuIEEgbmV3IE1lZGlhUXVlcnkgaGFzIGJlZW4gaW1wbGVtZW50
ZWQgYW5kCisgICAgICAgIGRlZmluaXRpb25zIE1lZGlRdWVyeS5pZGwgYW5kIE1lZGlhUXVlcnlD
aGFuZ2VMaXN0ZW5lci5pZGwgaGF2ZSBiZWVuIGFkZGVkLgorCisgICAgICAgIE1ldGhvZCBtYXRj
aE1lZGlhIGhhcyBiZWVuIGFkZGVkIHRvIERPTVdpbmRvdyBhbmQgdGhlIG5ldyBjbGFzcyBNZWRp
YVF1ZXJ5VmVjdG9yIGtlZXBzCisgICAgICAgIGEgdmVjdG9yIG9mIG1lZGlhIHF1ZXJ5IGxpc3Rl
bmVycy4KKworICAgICAgICBNb3N0IHJlY2VudCBwcm9wb3NhbCByZW1vdmVzIGNsYXNzIFN0eWxl
TWVkaWEgYnV0IHRoaXMgcGF0Y2ggZGlkIG5vdCB0b3VjaCB0aGUKKyAgICAgICAgU3R5bGVNZWRp
YSBjbGFzcy4KKworICAgICAgICBQcmVsaW1pbmFyIHRlc3RzIGluIFF0IGFuZCBTYWZhcmkuCisK
KyAgICAgICAgTGlzdGVuZXIgY29tcGFyaXNvbiBhbmQgbGF5b3V0IHRlc3RzIGFyZSBtaXNzaW5n
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gKE9PUFMhKQorCisgICAgICAgICogRGVyaXZlZFNv
dXJjZXMuY3BwOgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogR05V
bWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUu
cHJpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbToKKyAgICAgICAgKiBjc3Mv
Q1NTR3JhbW1hci55OgorICAgICAgICAqIGNzcy9DU1NNZWRpYVF1ZXJ5LmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpDU1NNZWRpYVF1ZXJ5OjpzZXJpYWxpemUpOgorICAgICAgICAoV2Vi
Q29yZTo6ZXhwcmVzc2lvbkNvbXBhcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTWVkaWFRdWVy
eTo6Q1NTTWVkaWFRdWVyeSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NNZWRpYVF1ZXJ5Ojp+Q1NT
TWVkaWFRdWVyeSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NNZWRpYVF1ZXJ5OjpvcGVyYXRvcj09
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU01lZGlhUXVlcnk6OmNzc1RleHQpOgorICAgICAgICAq
IGNzcy9DU1NNZWRpYVF1ZXJ5Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTTWVkaWFR
dWVyeTo6KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU01lZGlhUXVlcnk6OnJlc3RyaWN0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTTWVkaWFRdWVyeTo6ZXhwcmVzc2lvbnMpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTTWVkaWFRdWVyeTo6bWVkaWFUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U01lZGlhUXVlcnk6Omlnbm9yZWQpOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpjcmVhdGVGbG9hdGluZ01lZGlhUXVlcnkpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpzaW5rRmxvYXRpbmdNZWRpYVF1ZXJ5KToKKyAgICAg
ICAgKiBjc3MvQ1NTUGFyc2VyLmg6CisgICAgICAgICogY3NzL01lZGlhTGlzdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYUxpc3Q6OmRlbGV0ZU1lZGl1bSk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUxpc3Q6OnNldE1lZGlhVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUxpc3Q6
Oml0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFMaXN0OjphcHBlbmRNZWRpdW0pOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFMaXN0OjphcHBlbmRNZWRpYVF1ZXJ5KToKKyAgICAgICAgKiBj
c3MvTWVkaWFMaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUxpc3Q6Om1lZGlhUXVlcmll
cyk6CisgICAgICAgICogY3NzL01lZGlhUXVlcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFRdWVyeTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnk6Ok1lZGlhUXVl
cnkpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeTo6fk1lZGlhUXVlcnkpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFRdWVyeTo6bWVkaWEpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFR
dWVyeTo6YWRkTGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeTo6cmVtb3Zl
TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeTo6Y2hhbmdlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5OjpldmFsdWF0ZSk6CisgICAgICAgICogY3NzL01lZGlh
UXVlcnkuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnk6Om1hdGNoZXMpOgorICAgICAg
ICAqIGNzcy9NZWRpYVF1ZXJ5LmlkbDogQWRkZWQuCisgICAgICAgICogY3NzL01lZGlhUXVlcnlD
aGFuZ2VMaXN0ZW5lci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlDaGFu
Z2VMaXN0ZW5lcjo6fk1lZGlhUXVlcnlDaGFuZ2VMaXN0ZW5lcik6CisgICAgICAgICogY3NzL01l
ZGlhUXVlcnlDaGFuZ2VMaXN0ZW5lci5pZGw6IEFkZGVkLgorICAgICAgICAqIGNzcy9NZWRpYVF1
ZXJ5RXZhbHVhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFwcGx5UmVzdHJpY3Rvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5RXZhbHVhdG9yOjpldmFsKToKKyAgICAgICAgKiBj
c3MvTWVkaWFRdWVyeVZlY3Rvci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Z2V0TmV3
SWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeUxpc3RlbmVyOjpNZWRpYVF1ZXJ5TGlz
dGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeUxpc3RlbmVyOjp+TWVkaWFRdWVy
eUxpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlMaXN0ZW5lcjo6aXNMaXN0
ZW5lckVxdWFsKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlMaXN0ZW5lcjo6ZXZhbHVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeVZlY3Rvcjo6TWVkaWFRdWVyeVZlY3Rv
cik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5VmVjdG9yOjp+TWVkaWFRdWVyeVZlY3Rv
cik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5VmVjdG9yOjp0ZXJtaW5hdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeVZlY3Rvcjo6bWVkaWFUeXBlKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUXVlcnlWZWN0b3I6OnByZXBhcmVFdmFsdWF0b3IpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFRdWVyeVZlY3Rvcjo6bWF0Y2hNZWRpYSk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVF1ZXJ5VmVjdG9yOjphZGRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1
ZXJ5VmVjdG9yOjpsaXN0ZW5lckNvbXBhcmUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVy
eVZlY3Rvcjo6cmVtb3ZlTGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeVZl
Y3Rvcjo6ZXZhbHVhdGUpOgorICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5VmVjdG9yLmg6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeUxpc3RlbmVyOjppZCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVF1ZXJ5VmVjdG9yOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFRdWVyeVZlY3Rvcjo6ZXZhbFJvdW5kKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZVN0eWxlU2VsZWN0b3IpOgorICAgICAg
ICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6fkRP
TVdpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6Om1hdGNoTWVkaWEpOgorICAg
ICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpzdHlsZUNoYW5nZWQpOgorICAgICAgICAqIHBhZ2Uv
RE9NV2luZG93Lmg6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaWRsOgorCiAyMDEwLTA4LTE5
ICBWaW5jZW50IFNjaGVpYiAgPHNjaGVpYkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgRGF2aWQgTGV2aW4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNw
cCBiL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCmluZGV4IGJiYWI2NGIuLjNiNTRmOTEgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCisrKyBiL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMuY3BwCkBAIC0yMTEsNiArMjExLDggQEAKICNpbmNsdWRlICJKU0xvY2F0aW9uLmNw
cCIKICNpbmNsdWRlICJKU01lZGlhRXJyb3IuY3BwIgogI2luY2x1ZGUgIkpTTWVkaWFMaXN0LmNw
cCIKKyNpbmNsdWRlICJKU01lZGlhUXVlcnkuY3BwIgorI2luY2x1ZGUgIkpTTWVkaWFRdWVyeUNo
YW5nZUxpc3RlbmVyLmNwcCIKICNpbmNsdWRlICJKU01lbW9yeUluZm8uY3BwIgogI2luY2x1ZGUg
IkpTTWVzc2FnZUNoYW5uZWwuY3BwIgogI2luY2x1ZGUgIkpTTWVzc2FnZUV2ZW50LmNwcCIKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMubWFrZQppbmRleCBjMGNkZTk3Li5mNTU2YmNjIDEwMDY0NAotLS0gYS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0y
NTMsNiArMjUzLDggQEAgRE9NX0NMQVNTRVMgPSBcCiAgICAgS2V5Ym9hcmRFdmVudCBcCiAgICAg
TG9jYXRpb24gXAogICAgIE1lZGlhRXJyb3IgXAorICAgIE1lZGlhUXVlcnkgXAorICAgIE1lZGlh
UXVlcnlDaGFuZ2VMaXN0ZW5lciBcCiAgICAgTWVkaWFMaXN0IFwKICAgICBNZW1vcnlJbmZvIFwK
ICAgICBNZXNzYWdlQ2hhbm5lbCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFt
IGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCAyMGJhZjBmLi4xNzZlYWIwIDEwMDY0NAot
LS0gYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0K
QEAgLTQxNSw2ICs0MTUsMTAgQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTTWVkaWFFcnJvci5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTTWVkaWFMaXN0LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhTGlzdC5o
IFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFRdWVyeS5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNNZWRpYVF1ZXJ5LmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNNZWRpYVF1ZXJ5Q2hhbmdlTGlzdGVuZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTTWVkaWFRdWVyeUNoYW5nZUxpc3RlbmVyLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNNZW1vcnlJbmZvLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lbW9yeUluZm8u
aCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lc3NhZ2VDaGFubmVsLmNwcCBcCkBAIC04
NzQsNiArODc4LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL2Nzcy9DU1NJbmhl
cml0ZWRWYWx1ZS5oIFwKIAlXZWJDb3JlL2Nzcy9DU1NJbml0aWFsVmFsdWUuY3BwIFwKIAlXZWJD
b3JlL2Nzcy9DU1NJbml0aWFsVmFsdWUuaCBcCisJV2ViQ29yZS9jc3MvQ1NTTWVkaWFRdWVyeS5j
cHAgXAorCVdlYkNvcmUvY3NzL0NTU01lZGlhUXVlcnkuaCBcCiAJV2ViQ29yZS9jc3MvQ1NTTWVk
aWFSdWxlLmNwcCBcCiAJV2ViQ29yZS9jc3MvQ1NTTWVkaWFSdWxlLmggXAogCVdlYkNvcmUvY3Nz
L0NTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmNwcCBcCkBAIC05NDEsMTEgKzk0NywxNCBAQCB3
ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvY3NzL01lZGlhTGlzdC5jcHAgXAogCVdlYkNv
cmUvY3NzL01lZGlhTGlzdC5oIFwKIAlXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5LmNwcCBcCisJV2Vi
Q29yZS9jc3MvTWVkaWFRdWVyeS5oIFwKKwlXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5Q2hhbmdlTGlz
dGVuZXIuaCBcCiAJV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAgXAogCVdlYkNv
cmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuaCBcCiAJV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4
cC5jcHAgXAogCVdlYkNvcmUvY3NzL01lZGlhUXVlcnlFeHAuaCBcCi0JV2ViQ29yZS9jc3MvTWVk
aWFRdWVyeS5oIFwKKwlXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5VmVjdG9yLmNwcCBcCisJV2ViQ29y
ZS9jc3MvTWVkaWFRdWVyeVZlY3Rvci5oIFwKIAlXZWJDb3JlL2Nzcy9QYWlyLmggXAogCVdlYkNv
cmUvY3NzL1JlY3QuaCBcCiAJV2ViQ29yZS9jc3MvUkdCQ29sb3IuY3BwIFwKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNzE3NWZi
MC4uZjQ4MGE2MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKQEAgLTE5LDYgKzE5LDggQEAKICAgICAgICAgICAgICdjc3MvQ1NTVmFy
aWFibGVzUnVsZS5pZGwnLAogICAgICAgICAgICAgJ2Nzcy9Db3VudGVyLmlkbCcsCiAgICAgICAg
ICAgICAnY3NzL01lZGlhTGlzdC5pZGwnLAorICAgICAgICAgICAgJ2Nzcy9NZWRpYVF1ZXJ5Lmlk
bCcsCisgICAgICAgICAgICAnY3NzL01lZGlhUXVlcnlDaGFuZ2VMaXN0ZW5lci5pZGwnLAogICAg
ICAgICAgICAgJ2Nzcy9SZWN0LmlkbCcsCiAgICAgICAgICAgICAnY3NzL1JHQkNvbG9yLmlkbCcs
CiAgICAgICAgICAgICAnY3NzL1N0eWxlTWVkaWEuaWRsJywKQEAgLTk3NCw2ICs5NzYsOCBAQAog
ICAgICAgICAgICAgJ2Nzcy9DU1NJbmhlcml0ZWRWYWx1ZS5oJywKICAgICAgICAgICAgICdjc3Mv
Q1NTSW5pdGlhbFZhbHVlLmNwcCcsCiAgICAgICAgICAgICAnY3NzL0NTU0luaXRpYWxWYWx1ZS5o
JywKKyAgICAgICAgICAgICdjc3MvQ1NTTWVkaWFRdWVyeS5jcHAnLAorICAgICAgICAgICAgJ2Nz
cy9DU1NNZWRpYVF1ZXJ5LmgnLAogICAgICAgICAgICAgJ2Nzcy9DU1NNZWRpYVJ1bGUuY3BwJywK
ICAgICAgICAgICAgICdjc3MvQ1NTTWVkaWFSdWxlLmgnLAogICAgICAgICAgICAgJ2Nzcy9DU1NN
dXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5jcHAnLApAQCAtMTA0MSwxMSArMTA0NSwxNCBAQAogICAg
ICAgICAgICAgJ2Nzcy9NZWRpYUxpc3QuY3BwJywKICAgICAgICAgICAgICdjc3MvTWVkaWFMaXN0
LmgnLAogICAgICAgICAgICAgJ2Nzcy9NZWRpYVF1ZXJ5LmNwcCcsCisgICAgICAgICAgICAnY3Nz
L01lZGlhUXVlcnkuaCcsCisgICAgICAgICAgICAnY3NzL01lZGlhUXVlcnlDaGFuZ2VMaXN0ZW5l
ci5oJywKICAgICAgICAgICAgICdjc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAnLAogICAgICAg
ICAgICAgJ2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmgnLAogICAgICAgICAgICAgJ2Nzcy9NZWRp
YVF1ZXJ5RXhwLmNwcCcsCiAgICAgICAgICAgICAnY3NzL01lZGlhUXVlcnlFeHAuaCcsCi0gICAg
ICAgICAgICAnY3NzL01lZGlhUXVlcnkuaCcsCisgICAgICAgICAgICAnY3NzL01lZGlhUXVlcnlW
ZWN0b3IuY3BwJywKKyAgICAgICAgICAgICdjc3MvTWVkaWFRdWVyeVZlY3Rvci5oJywKICAgICAg
ICAgICAgICdjc3MvUGFpci5oJywKICAgICAgICAgICAgICdjc3MvUmVjdC5oJywKICAgICAgICAg
ICAgICdjc3MvUkdCQ29sb3IuY3BwJywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcmkg
Yi9XZWJDb3JlL1dlYkNvcmUucHJpCmluZGV4IDMyOTRlY2QuLmY5NWY1MjQgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvV2ViQ29yZS5wcmkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnByaQpAQCAtODEsNiAr
ODEsOCBAQCBJRExfQklORElOR1MgKz0gXAogICAgIGNzcy9DU1NWYXJpYWJsZXNEZWNsYXJhdGlv
bi5pZGwgXAogICAgIGNzcy9DU1NWYXJpYWJsZXNSdWxlLmlkbCBcCiAgICAgY3NzL01lZGlhTGlz
dC5pZGwgXAorICAgIGNzcy9NZWRpYVF1ZXJ5LmlkbCBcCisgICAgY3NzL01lZGlhUXVlcnlDaGFu
Z2VMaXN0ZW5lci5pZGwgXAogICAgIGNzcy9SZWN0LmlkbCBcCiAgICAgY3NzL1JHQkNvbG9yLmlk
bCBcCiAgICAgY3NzL1N0eWxlTWVkaWEuaWRsIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29y
ZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDM3ZDRiZDcuLjljMDUxMzUgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAt
NDE0LDYgKzQxNCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGNzcy9DU1NJbXBvcnRSdWxlLmNwcCBc
CiAgICAgY3NzL0NTU0luaGVyaXRlZFZhbHVlLmNwcCBcCiAgICAgY3NzL0NTU0luaXRpYWxWYWx1
ZS5jcHAgXAorICAgIGNzcy9DU1NNZWRpYVF1ZXJ5LmNwcCBcCiAgICAgY3NzL0NTU01lZGlhUnVs
ZS5jcHAgXAogICAgIGNzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5jcHAgXAogICAgIGNz
cy9DU1NPTVV0aWxzLmNwcCBcCkBAIC00NDYsNiArNDQ3LDcgQEAgU09VUkNFUyArPSBcCiAgICAg
Y3NzL01lZGlhUXVlcnkuY3BwIFwKICAgICBjc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAgXAog
ICAgIGNzcy9NZWRpYVF1ZXJ5RXhwLmNwcCBcCisgICAgY3NzL01lZGlhUXVlcnlWZWN0b3IuY3Bw
IFwKICAgICBjc3MvUkdCQ29sb3IuY3BwIFwKICAgICBjc3MvU2hhZG93VmFsdWUuY3BwIFwKICAg
ICBjc3MvU3R5bGVCYXNlLmNwcCBcCkBAIC0xMTk1LDYgKzExOTcsNyBAQCBIRUFERVJTICs9IFwK
ICAgICBjc3MvQ1NTSW1wb3J0UnVsZS5oIFwKICAgICBjc3MvQ1NTSW5oZXJpdGVkVmFsdWUuaCBc
CiAgICAgY3NzL0NTU0luaXRpYWxWYWx1ZS5oIFwKKyAgICBjc3MvQ1NTTWVkaWFRdWVyeS5oIFwK
ICAgICBjc3MvQ1NTTWVkaWFSdWxlLmggXAogICAgIGNzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJh
dGlvbi5oIFwKICAgICBjc3MvQ1NTT01VdGlscy5oIFwKQEAgLTEyMjQsOSArMTIyNywxMSBAQCBI
RUFERVJTICs9IFwKICAgICBjc3MvRm9udFZhbHVlLmggXAogICAgIGNzcy9NZWRpYUZlYXR1cmVO
YW1lcy5oIFwKICAgICBjc3MvTWVkaWFMaXN0LmggXAorICAgIGNzcy9NZWRpYVF1ZXJ5LmggXAor
ICAgIGNzcy9NZWRpYVF1ZXJ5Q2hhbmdlTGlzdGVuZXIuaCBcCiAgICAgY3NzL01lZGlhUXVlcnlF
dmFsdWF0b3IuaCBcCiAgICAgY3NzL01lZGlhUXVlcnlFeHAuaCBcCi0gICAgY3NzL01lZGlhUXVl
cnkuaCBcCisgICAgY3NzL01lZGlhUXVlcnlWZWN0b3IuaCBcCiAgICAgY3NzL1JHQkNvbG9yLmgg
XAogICAgIGNzcy9TaGFkb3dWYWx1ZS5oIFwKICAgICBjc3MvU3R5bGVCYXNlLmggXApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggMThkNDg1MS4uNDA1ODVlYyAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC05Nzk3LDYgKzk3OTcsMTE4IEBACiAJ
CQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0
T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNNZWRpYVF1ZXJ5
LmNwcCINCisJCQkJPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVn
fFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8
VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IlJl
bGVhc2V8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJ
CQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFt
ZT0iRGVidWdfSW50ZXJuYWx8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIN
CisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJ
CQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlv
bg0KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm98V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCisJCQkJCUV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJ
CQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiDQorCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRP
dXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU01lZGlhUXVlcnku
aCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9IiQo
V2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNNZWRp
YVF1ZXJ5Q2hhbmdlTGlzdGVuZXIuY3BwIg0KKwkJCQk+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlv
bg0KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIN
CisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJh
dGlvbg0KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25m
aWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z19JbnRlcm5hbHxXaW4zMiINCisJCQkJCUV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJ
CQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb3xXaW4zMiINCisJ
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJv
fFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8
VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRl
YnVnX0FsbHxXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0K
KwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVs
YXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRT
b3VyY2VzXEpTTWVkaWFRdWVyeUNoYW5nZUxpc3RlbmVyLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+
DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQo
UHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTTWVtb3J5SW5mby5jcHAiDQogCQkJCT4NCiAJ
CQkJPEZpbGVDb25maWd1cmF0aW9uDQpAQCAtMjkyMTcsNiArMjkzMjksMTQgQEAKIAkJCQk+DQog
CQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cY3NzXENTU01lZGlh
UXVlcnkuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZl
UGF0aD0iLi5cY3NzXENTU01lZGlhUXVlcnkuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8
RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xDU1NNZWRpYVJ1bGUuY3BwIg0KIAkJCQk+
DQogCQkJPC9GaWxlPg0KQEAgLTI5NTAxLDYgKzI5NjIxLDEwIEBACiAJCQkJPg0KIAkJCTwvRmls
ZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xNZWRpYVF1ZXJ5Q2hhbmdl
TGlzdGVuZXIuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGNzc1xNZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcCINCiAJCQkJPg0KIAkJCTwvRmls
ZT4NCkBAIC0yOTUxNyw2ICsyOTY0MSwxNCBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZp
bGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxjc3NcTWVkaWFRdWVyeVZlY3Rvci5jcHAiDQorCQkJ
CT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxjc3NcTWVk
aWFRdWVyeVZlY3Rvci5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJl
bGF0aXZlUGF0aD0iLi5cY3NzXFBhaXIuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDI0MzVjNjEuLjliYjEyYmEg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDU3LDgg
KzEwNTcsNiBAQAogCQk0QkFFOTVCMTBCMkZBOUNFMDBBRUQ4QTAgLyogRWRpdG9yRGVsZXRlQWN0
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QkFF
OTVCMDBCMkZBOUNFMDBBRUQ4QTAgLyogRWRpdG9yRGVsZXRlQWN0aW9uLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNEUxOTU5MjEwQTM5REFCQTAw
MjIwRkU1IC8qIE1lZGlhRmVhdHVyZU5hbWVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRFMTk1OTFGMEEzOURBQkEwMDIyMEZFNSAvKiBNZWRpYUZl
YXR1cmVOYW1lcy5jcHAgKi87IH07CiAJCTRFMTk1OTIyMEEzOURBQkEwMDIyMEZFNSAvKiBNZWRp
YUZlYXR1cmVOYW1lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNEUxOTU5MjAwQTM5REFCQTAwMjIwRkU1IC8qIE1lZGlhRmVhdHVyZU5hbWVzLmggKi87
IH07Ci0JCTRFMTk1OTI5MEEzOURBQ0MwMDIyMEZFNSAvKiBNZWRpYVF1ZXJ5LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRFMTk1OTIzMEEzOURBQ0Mw
MDIyMEZFNSAvKiBNZWRpYVF1ZXJ5LmNwcCAqLzsgfTsKLQkJNEUxOTU5MkEwQTM5REFDQzAwMjIw
RkU1IC8qIE1lZGlhUXVlcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDRFMTk1OTI0MEEzOURBQ0MwMDIyMEZFNSAvKiBNZWRpYVF1ZXJ5LmggKi87IH07
CiAJCTRFMTk1OTJCMEEzOURBQ0MwMDIyMEZFNSAvKiBNZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRFMTk1OTI1MEEz
OURBQ0MwMDIyMEZFNSAvKiBNZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcCAqLzsgfTsKIAkJNEUxOTU5
MkMwQTM5REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnlFdmFsdWF0b3IuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRFMTk1OTI2MEEzOURBQ0MwMDIyMEZF
NSAvKiBNZWRpYVF1ZXJ5RXZhbHVhdG9yLmggKi87IH07CiAJCTRFMTk1OTJEMEEzOURBQ0MwMDIy
MEZFNSAvKiBNZWRpYVF1ZXJ5RXhwLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDRFMTk1OTI3MEEzOURBQ0MwMDIyMEZFNSAvKiBNZWRpYVF1ZXJ5RXhw
LmNwcCAqLzsgfTsKQEAgLTUxMjksNiArNTEyNywxNyBAQAogCQlEMjNDQTU2QzBBQjBFQjhEMDA1
MTA4QTUgLyogUmFuZ2VFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEQyM0NBNTZCMEFCMEVCOEQwMDUxMDhBNSAvKiBSYW5nZUV4Y2VwdGlv
bi5oICovOyB9OwogCQlEMzlEMDA2RDExRjhFMzA4MDA2MDQxRjIgLyogUG9wdXBNZW51TWFjLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMzlEMDA2QzEx
RjhFMzA4MDA2MDQxRjIgLyogUG9wdXBNZW51TWFjLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRDM5RDAwOUQxMUY5MDdFNjAwNjA0MUYyIC8qIFNl
YXJjaFBvcHVwTWVudU1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRDM5RDAwOUMxMUY5MDdFNjAwNjA0MUYyIC8qIFNlYXJjaFBvcHVwTWVudU1hYy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUQzQTI0
RUIzMTIxQ0YwN0QwMDVGMzE3QiAvKiBDU1NNZWRpYVF1ZXJ5LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQTI0RUIxMTIxQ0YwN0QwMDVGMzE3QiAv
KiBDU1NNZWRpYVF1ZXJ5LmNwcCAqLzsgfTsKKwkJRDNBMjRFQjQxMjFDRjA3RDAwNUYzMTdCIC8q
IENTU01lZGlhUXVlcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEQzQTI0RUIyMTIxQ0YwN0QwMDVGMzE3QiAvKiBDU1NNZWRpYVF1ZXJ5LmggKi87IH07
CisJCUQzQTI0RkRCMTIxRTU1M0YwMDVGMzE3QiAvKiBNZWRpYVF1ZXJ5LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQTI0RkQ0MTIxRTU1M0YwMDVG
MzE3QiAvKiBNZWRpYVF1ZXJ5LmNwcCAqLzsgfTsKKwkJRDNBMjRGREMxMjFFNTUzRjAwNUYzMTdC
IC8qIE1lZGlhUXVlcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEQzQTI0RkQ1MTIxRTU1M0YwMDVGMzE3QiAvKiBNZWRpYVF1ZXJ5LmggKi87IH07CisJ
CUQzQTI0RkRFMTIxRTU1M0YwMDVGMzE3QiAvKiBNZWRpYVF1ZXJ5Q2hhbmdlTGlzdGVuZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQTI0RkQ3MTIx
RTU1M0YwMDVGMzE3QiAvKiBNZWRpYVF1ZXJ5Q2hhbmdlTGlzdGVuZXIuaCAqLzsgfTsKKwkJRDNB
MjRGRTAxMjFFNTUzRjAwNUYzMTdCIC8qIE1lZGlhUXVlcnlWZWN0b3IuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNBMjRGRDkxMjFFNTUzRjAwNUYz
MTdCIC8qIE1lZGlhUXVlcnlWZWN0b3IuY3BwICovOyB9OworCQlEM0EyNEZFMTEyMUU1NTNGMDA1
RjMxN0IgLyogTWVkaWFRdWVyeVZlY3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRDNBMjRGREExMjFFNTUzRjAwNUYzMTdCIC8qIE1lZGlhUXVlcnlW
ZWN0b3IuaCAqLzsgfTsKKwkJRDNBMjRGRjAxMjFFNjI4QTAwNUYzMTdCIC8qIEpTTWVkaWFRdWVy
eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0Ey
NEZFRTEyMUU2MjhBMDA1RjMxN0IgLyogSlNNZWRpYVF1ZXJ5LmNwcCAqLzsgfTsKKwkJRDNBMjRG
RjExMjFFNjI4QTAwNUYzMTdCIC8qIEpTTWVkaWFRdWVyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNBMjRGRUYxMjFFNjI4QTAwNUYzMTdCIC8qIEpT
TWVkaWFRdWVyeS5oICovOyB9OworCQlEM0EyNTAwNzEyMUU2NDFBMDA1RjMxN0IgLyogSlNNZWRp
YVF1ZXJ5Q2hhbmdlTGlzdGVuZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRDNBMjUwMDUxMjFFNjQxQTAwNUYzMTdCIC8qIEpTTWVkaWFRdWVyeUNo
YW5nZUxpc3RlbmVyLmNwcCAqLzsgfTsKKwkJRDNBMjUwMDgxMjFFNjQxQTAwNUYzMTdCIC8qIEpT
TWVkaWFRdWVyeUNoYW5nZUxpc3RlbmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBEM0EyNTAwNjEyMUU2NDFBMDA1RjMxN0IgLyogSlNNZWRpYVF1ZXJ5
Q2hhbmdlTGlzdGVuZXIuaCAqLzsgfTsKIAkJRDhCNjE1MkYxMDMyNDk1MTAwQzg1NTRBIC8qIENv
b2tpZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDhC
NjE1MkUxMDMyNDk1MTAwQzg1NTRBIC8qIENvb2tpZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCURCMjNDMkNCMEE1MDhEMjkwMDI0ODlFQiAvKiBJ
bmRlbnRPdXRkZW50Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBEQjIzQzJDOTBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENv
bW1hbmQuY3BwICovOyB9OwogCQlEQjIzQzJDQzBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0
ZGVudENvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IERCMjNDMkNBMEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5oICov
OyB9OwpAQCAtNjkyNyw4ICs2OTM2LDYgQEAKIAkJNENERTU0RUMwRTU1Nzk3ODAwODlFMjZDIC8q
IHdtbC5jc3MgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IHdtbC5jc3M7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTRFMTk1OTFGMEEzOURBQkEwMDIyMEZFNSAvKiBNZWRpYUZlYXR1cmVO
YW1lcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFGZWF0
dXJlTmFtZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0RTE5NTkyMDBBMzlE
QUJBMDAyMjBGRTUgLyogTWVkaWFGZWF0dXJlTmFtZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE1lZGlhRmVhdHVyZU5hbWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTRFMTk1OTIzMEEzOURBQ0MwMDIyMEZFNSAvKiBNZWRpYVF1ZXJ5LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVF1ZXJ5LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNEUxOTU5MjQwQTM5REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVl
cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUXVlcnkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEUxOTU5MjUwQTM5REFDQzAwMjIwRkU1IC8qIE1l
ZGlhUXVlcnlFdmFsdWF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IE1lZGlhUXVlcnlFdmFsdWF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0RTE5NTkyNjBBMzlEQUNDMDAyMjBGRTUgLyogTWVkaWFRdWVyeUV2YWx1YXRvci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFRdWVyeUV2YWx1YXRvci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0RTE5NTkyNzBBMzlEQUNDMDAyMjBGRTUgLyogTWVk
aWFRdWVyeUV4cC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVk
aWFRdWVyeUV4cC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDk0Myw2ICsx
MDk1MCwxOSBAQAogCQlEMjNDQTU2QjBBQjBFQjhEMDA1MTA4QTUgLyogUmFuZ2VFeGNlcHRpb24u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJhbmdlRXhjZXB0aW9uLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQzOUQwMDZDMTFGOEUzMDgwMDYwNDFGMiAvKiBQ
b3B1cE1lbnVNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUG9wdXBNZW51
TWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQzOUQwMDlDMTFGOTA3RTYwMDYw
NDFGMiAvKiBTZWFyY2hQb3B1cE1lbnVNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU2VhcmNoUG9wdXBNZW51TWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUQzQTI0RUIxMTIxQ0YwN0QwMDVGMzE3QiAvKiBDU1NNZWRpYVF1ZXJ5LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU01lZGlhUXVlcnkuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlEM0EyNEVCMjEyMUNGMDdEMDA1RjMxN0IgLyogQ1NTTWVkaWFR
dWVyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NNZWRpYVF1ZXJ5Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQzQTI0RkQ0MTIxRTU1M0YwMDVGMzE3QiAv
KiBNZWRpYVF1ZXJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1l
ZGlhUXVlcnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEM0EyNEZENTEyMUU1
NTNGMDA1RjMxN0IgLyogTWVkaWFRdWVyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBNZWRpYVF1ZXJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQzQTI0RkQ2
MTIxRTU1M0YwMDVGMzE3QiAvKiBNZWRpYVF1ZXJ5LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBNZWRpYVF1ZXJ5LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDNBMjRGRDcx
MjFFNTUzRjAwNUYzMTdCIC8qIE1lZGlhUXVlcnlDaGFuZ2VMaXN0ZW5lci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVF1ZXJ5Q2hhbmdlTGlzdGVuZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDNBMjRGRDgxMjFFNTUzRjAwNUYzMTdCIC8qIE1lZGlh
UXVlcnlDaGFuZ2VMaXN0ZW5lci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTWVkaWFRdWVy
eUNoYW5nZUxpc3RlbmVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDNBMjRG
RDkxMjFFNTUzRjAwNUYzMTdCIC8qIE1lZGlhUXVlcnlWZWN0b3IuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFRdWVyeVZlY3Rvci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUQzQTI0RkRBMTIxRTU1M0YwMDVGMzE3QiAvKiBNZWRpYVF1ZXJ5
VmVjdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUXVlcnlWZWN0
b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDNBMjRGRUUxMjFFNjI4QTAwNUYz
MTdCIC8qIEpTTWVkaWFRdWVyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU01lZGlhUXVlcnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEM0Ey
NEZFRjEyMUU2MjhBMDA1RjMxN0IgLyogSlNNZWRpYVF1ZXJ5LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTTWVkaWFRdWVyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlEM0EyNTAwNTEyMUU2NDFBMDA1RjMxN0IgLyogSlNNZWRpYVF1ZXJ5Q2hhbmdlTGlzdGVu
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNZWRpYVF1ZXJ5
Q2hhbmdlTGlzdGVuZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEM0EyNTAw
NjEyMUU2NDFBMDA1RjMxN0IgLyogSlNNZWRpYVF1ZXJ5Q2hhbmdlTGlzdGVuZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNZWRpYVF1ZXJ5Q2hhbmdlTGlzdGVuZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDhCNjE1MkUxMDMyNDk1MTAwQzg1NTRBIC8q
IENvb2tpZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb29raWUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREIyM0MyQzkwQTUwOEQyOTAwMjQ4OUVCIC8qIElu
ZGVudE91dGRlbnRDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBJbmRlbnRPdXRkZW50Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCURCMjNDMkNBMEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5kZW50T3V0ZGVudENvbW1hbmQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0OTM0LDYgKzE0OTU0LDEwIEBACiAJCQkJ
QkM2ODZDN0IwRTBDMzMwMTAwREU4QTA4IC8qIEpTQ1NTVmFyaWFibGVzUnVsZS5oICovLAogCQkJ
CUJDM0MzOUI0MEMwRDNEOEQwMDVGNEQ3QSAvKiBKU01lZGlhTGlzdC5jcHAgKi8sCiAJCQkJQkMz
QzM5QjUwQzBEM0Q4RDAwNUY0RDdBIC8qIEpTTWVkaWFMaXN0LmggKi8sCisJCQkJRDNBMjRGRUUx
MjFFNjI4QTAwNUYzMTdCIC8qIEpTTWVkaWFRdWVyeS5jcHAgKi8sCisJCQkJRDNBMjRGRUYxMjFF
NjI4QTAwNUYzMTdCIC8qIEpTTWVkaWFRdWVyeS5oICovLAorCQkJCUQzQTI1MDA1MTIxRTY0MUEw
MDVGMzE3QiAvKiBKU01lZGlhUXVlcnlDaGFuZ2VMaXN0ZW5lci5jcHAgKi8sCisJCQkJRDNBMjUw
MDYxMjFFNjQxQTAwNUYzMTdCIC8qIEpTTWVkaWFRdWVyeUNoYW5nZUxpc3RlbmVyLmggKi8sCiAJ
CQkJQkNGRTJGMEYwQzFCNTgzNzAwMjAyMzVGIC8qIEpTUmVjdC5jcHAgKi8sCiAJCQkJQkNGRTJG
MTAwQzFCNTgzNzAwMjAyMzVGIC8qIEpTUmVjdC5oICovLAogCQkJCUJDNzREQTQ2MTAxM0Y0Njgw
MDc5ODdBRCAvKiBKU1JHQkNvbG9yLmNwcCAqLywKQEAgLTE2ODU5LDYgKzE2ODgzLDggQEAKIAkJ
CQlBODBFNkNENzBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTSW5oZXJpdGVkVmFsdWUuaCAqLywKIAkJ
CQlBODBFNkNEODBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTSW5pdGlhbFZhbHVlLmNwcCAqLywKIAkJ
CQlBODBFNkNERTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTSW5pdGlhbFZhbHVlLmggKi8sCisJCQkJ
RDNBMjRFQjExMjFDRjA3RDAwNUYzMTdCIC8qIENTU01lZGlhUXVlcnkuY3BwICovLAorCQkJCUQz
QTI0RUIyMTIxQ0YwN0QwMDVGMzE3QiAvKiBDU1NNZWRpYVF1ZXJ5LmggKi8sCiAJCQkJQTgwRTZD
RDIwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU01lZGlhUnVsZS5jcHAgKi8sCiAJCQkJQTgwRTZDRDkw
QTE5ODlDQTAwN0ZCOEM1IC8qIENTU01lZGlhUnVsZS5oICovLAogCQkJCTg1QzU2Q0EyMEFBODlD
MTAwMEQ5NTc1NSAvKiBDU1NNZWRpYVJ1bGUuaWRsICovLApAQCAtMTY5NDYsMTIgKzE2OTcyLDE3
IEBACiAJCQkJQThFQTgwMDEwQTE5NTE2RTAwQThFRjVGIC8qIE1lZGlhTGlzdC5jcHAgKi8sCiAJ
CQkJQThFQTgwMDYwQTE5NTE2RTAwQThFRjVGIC8qIE1lZGlhTGlzdC5oICovLAogCQkJCTg1QzU2
QzVCMEFBODdBRkQwMEQ5NTc1NSAvKiBNZWRpYUxpc3QuaWRsICovLAotCQkJCTRFMTk1OTIzMEEz
OURBQ0MwMDIyMEZFNSAvKiBNZWRpYVF1ZXJ5LmNwcCAqLywKLQkJCQk0RTE5NTkyNDBBMzlEQUND
MDAyMjBGRTUgLyogTWVkaWFRdWVyeS5oICovLAorCQkJCUQzQTI0RkQ0MTIxRTU1M0YwMDVGMzE3
QiAvKiBNZWRpYVF1ZXJ5LmNwcCAqLywKKwkJCQlEM0EyNEZENTEyMUU1NTNGMDA1RjMxN0IgLyog
TWVkaWFRdWVyeS5oICovLAorCQkJCUQzQTI0RkQ2MTIxRTU1M0YwMDVGMzE3QiAvKiBNZWRpYVF1
ZXJ5LmlkbCAqLywKKwkJCQlEM0EyNEZENzEyMUU1NTNGMDA1RjMxN0IgLyogTWVkaWFRdWVyeUNo
YW5nZUxpc3RlbmVyLmggKi8sCisJCQkJRDNBMjRGRDgxMjFFNTUzRjAwNUYzMTdCIC8qIE1lZGlh
UXVlcnlDaGFuZ2VMaXN0ZW5lci5pZGwgKi8sCiAJCQkJNEUxOTU5MjUwQTM5REFDQzAwMjIwRkU1
IC8qIE1lZGlhUXVlcnlFdmFsdWF0b3IuY3BwICovLAogCQkJCTRFMTk1OTI2MEEzOURBQ0MwMDIy
MEZFNSAvKiBNZWRpYVF1ZXJ5RXZhbHVhdG9yLmggKi8sCiAJCQkJNEUxOTU5MjcwQTM5REFDQzAw
MjIwRkU1IC8qIE1lZGlhUXVlcnlFeHAuY3BwICovLAogCQkJCTRFMTk1OTI4MEEzOURBQ0MwMDIy
MEZFNSAvKiBNZWRpYVF1ZXJ5RXhwLmggKi8sCisJCQkJRDNBMjRGRDkxMjFFNTUzRjAwNUYzMTdC
IC8qIE1lZGlhUXVlcnlWZWN0b3IuY3BwICovLAorCQkJCUQzQTI0RkRBMTIxRTU1M0YwMDVGMzE3
QiAvKiBNZWRpYVF1ZXJ5VmVjdG9yLmggKi8sCiAJCQkJQTgwRTZDRDEwQTE5ODlDQTAwN0ZCOEM1
IC8qIFBhaXIuaCAqLywKIAkJCQk5M0NBNEM5RjA5REY5M0ZBMDBERjg2NzcgLyogcXVpcmtzLmNz
cyAqLywKIAkJCQlCQzQzNjhFNzBDMjI2RTMyMDA1RUZCNUYgLyogUmVjdC5oICovLApAQCAtMTk0
NTcsNyArMTk0ODgsNiBAQAogCQkJCUU0NDYxM0U0MENENjgxQTIwMEZBREE3NSAvKiBNZWRpYVBs
YXllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ0NjEzRTYwQ0Q2ODFBOTAwRkFEQTc1IC8qIE1l
ZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzM1RUU2QTBGNDBD
NUU0MDA0QTI2MDQgLyogTWVkaWFQbGF5ZXJQcm94eS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNEUx
OTU5MkEwQTM5REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnkuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTRFMTk1OTJDMEEzOURBQ0MwMDIyMEZFNSAvKiBNZWRpYVF1ZXJ5RXZhbHVhdG9yLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0RTE5NTkyRTBBMzlEQUNDMDAyMjBGRTUgLyogTWVkaWFRdWVyeUV4cC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOUZGRTNFN0IxMUI1OUM1RDAwMzc4NzRFIC8qIE1lbW9yeUlu
Zm8uaCBpbiBIZWFkZXJzICovLApAQCAtMjAzMjksNiArMjAzNTksMTIgQEAKIAkJCQkyRURFRjFG
ODEyMUIwRUZDMDA3MjZEQjIgLyogQmxvYlN0b3JhZ2VEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkyRUYxQkZFQjEyMUM5RjQyMDBDMjc2MjcgLyogRmlsZVN0cmVhbS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDZBMjY5MDYxMjFCNkI0MzAwQzQxRjNBIC8qIEZpbGVXcml0ZXIuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUQzQTI0RUI0MTIxQ0YwN0QwMDVGMzE3QiAvKiBDU1NNZWRpYVF1ZXJ5LmggaW4g
SGVhZGVycyAqLywKKwkJCQlEM0EyNEZEQzEyMUU1NTNGMDA1RjMxN0IgLyogTWVkaWFRdWVyeS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJRDNBMjRGREUxMjFFNTUzRjAwNUYzMTdCIC8qIE1lZGlhUXVl
cnlDaGFuZ2VMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRDNBMjRGRTExMjFFNTUzRjAw
NUYzMTdCIC8qIE1lZGlhUXVlcnlWZWN0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCUQzQTI0RkYx
MTIxRTYyOEEwMDVGMzE3QiAvKiBKU01lZGlhUXVlcnkuaCBpbiBIZWFkZXJzICovLAorCQkJCUQz
QTI1MDA4MTIxRTY0MUEwMDVGMzE3QiAvKiBKU01lZGlhUXVlcnlDaGFuZ2VMaXN0ZW5lci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2lu
ZyA9IDA7CiAJCX07CkBAIC0yMjAyMiw3ICsyMjA1OCw2IEBACiAJCQkJQThFQTgwMDkwQTE5NTE2
RTAwQThFRjVGIC8qIE1lZGlhTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNDQ2MTNFMzBD
RDY4MTlGMDBGQURBNzUgLyogTWVkaWFQbGF5ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTQ0
NjEzRTUwQ0Q2ODFBNjAwRkFEQTc1IC8qIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tIGluIFNv
dXJjZXMgKi8sCi0JCQkJNEUxOTU5MjkwQTM5REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnkuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNEUxOTU5MkIwQTM5REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVl
cnlFdmFsdWF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNEUxOTU5MkQwQTM5REFDQzAwMjIw
RkU1IC8qIE1lZGlhUXVlcnlFeHAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOUZGRTNFN0ExMUI1
OUM1RDAwMzc4NzRFIC8qIE1lbW9yeUluZm8uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yMjc4MCw2
ICsyMjgxNSwxMSBAQAogCQkJCTJFREVGMUY2MTIxQjBFRkMwMDcyNkRCMiAvKiBCbG9iUmVnaXN0
cnlJbXBsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJFRjFCRkVBMTIxQzlGNDIwMEMyNzYyNyAv
KiBGaWxlU3RyZWFtLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ2QTI2OTA1MTIxQjZCNDMwMEM0
MUYzQSAvKiBGaWxlV3JpdGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUQzQTI0RUIzMTIxQ0Yw
N0QwMDVGMzE3QiAvKiBDU1NNZWRpYVF1ZXJ5LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUQzQTI0
RkRCMTIxRTU1M0YwMDVGMzE3QiAvKiBNZWRpYVF1ZXJ5LmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CUQzQTI0RkUwMTIxRTU1M0YwMDVGMzE3QiAvKiBNZWRpYVF1ZXJ5VmVjdG9yLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUQzQTI0RkYwMTIxRTYyOEEwMDVGMzE3QiAvKiBKU01lZGlhUXVlcnkuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJRDNBMjUwMDcxMjFFNjQxQTAwNUYzMTdCIC8qIEpTTWVkaWFR
dWVyeUNoYW5nZUxpc3RlbmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlG
b3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggODRlMzkxOS4uYWI1NjcwMSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC02LDYgKzYsNyBA
QAogIyBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIyBDb3B5cmlnaHQgKEMpIDIwMDkgQ2FtZXJvbiBNY0Nv
cm1hY2sgPGNhbUBtY2MuaWQuYXU+CiAjIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9u
IExpbWl0ZWQgMjAxMC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDEw
IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogIwogIyBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CiAjIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCkBAIC0yMTEyLDYgKzIxMTMsMTQgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24K
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIlxuI2VuZGlmIC8vICR7Y29uZGl0aW9uYWxTdHJpbmd9
XG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CiB9CiAKK3N1YiBHZXROYXRpdmVUeXBlRm9yQ2Fs
bGJhY2tzCit7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKyAgICBteSAkaXNQYXJhbWV0ZXIgPSBz
aGlmdDsKKyAgICByZXR1cm4gInZvaWQiIGlmICgkdHlwZSBlcSAidm9pZCIpIGFuZCAhJGlzUGFy
YW1ldGVyOworICAgIHJldHVybiBHZXROYXRpdmVUeXBlKCR0eXBlKTsKK30KKwogc3ViIEdlbmVy
YXRlQ2FsbGJhY2tIZWFkZXIKIHsKICAgICBteSAkb2JqZWN0ID0gc2hpZnQ7CkBAIC0yMTQ3LDEy
ICsyMTU2LDE0IEBAIHN1YiBHZW5lcmF0ZUNhbGxiYWNrSGVhZGVyCiAgICAgICAgIHB1c2goQGhl
YWRlckNvbnRlbnQsICJcbiAgICAvLyBGdW5jdGlvbnNcbiIpOwogICAgICAgICBmb3JlYWNoIG15
ICRmdW5jdGlvbiAoQHskZGF0YU5vZGUtPmZ1bmN0aW9uc30pIHsKICAgICAgICAgICAgIG15IEBw
YXJhbXMgPSBAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc307CisKICAgICAgICAgICAgIGlmICghJGZ1
bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b20ifSAmJgotICAg
ICAgICAgICAgICAgICEoR2V0TmF0aXZlVHlwZSgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSkg
ZXEgImJvb2wiKSkgeworICAgICAgICAgICAgICAgICEoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5
cGUgZXEgImJvb2xlYW4iKSAmJgorICAgICAgICAgICAgICAgICEoJGZ1bmN0aW9uLT5zaWduYXR1
cmUtPnR5cGUgZXEgInZvaWQiKSkgewogICAgICAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRl
bnQsICIgICAgQ09NUElMRV9BU1NFUlQoZmFsc2UpIik7CiAgICAgICAgICAgICB9CiAKLSAgICAg
ICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCAiIC4gR2V0TmF0aXZlVHlw
ZSgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSkgLiAiICIgLiAkZnVuY3Rpb24tPnNpZ25hdHVy
ZS0+bmFtZSAuICIoIik7CisgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZp
cnR1YWwgIiAuIEdldE5hdGl2ZVR5cGVGb3JDYWxsYmFja3MoJGZ1bmN0aW9uLT5zaWduYXR1cmUt
PnR5cGUsIDApIC4gIiAiIC4gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWUgLiAiKCIpOwogCiAg
ICAgICAgICAgICBteSBAYXJncyA9ICgpOwogICAgICAgICAgICAgZm9yZWFjaCBteSAkcGFyYW0g
KEBwYXJhbXMpIHsKQEAgLTIyMjcsMTIgKzIyMzgsMTIgQEAgc3ViIEdlbmVyYXRlQ2FsbGJhY2tJ
bXBsZW1lbnRhdGlvbgogICAgICAgICBmb3JlYWNoIG15ICRmdW5jdGlvbiAoQHskZGF0YU5vZGUt
PmZ1bmN0aW9uc30pIHsKICAgICAgICAgICAgIG15IEBwYXJhbXMgPSBAeyRmdW5jdGlvbi0+cGFy
YW1ldGVyc307CiAgICAgICAgICAgICBpZiAoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJDdXN0b20ifSB8fAotICAgICAgICAgICAgICAgICEoR2V0TmF0aXZlVHlw
ZSgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSkgZXEgImJvb2wiKSkgeworICAgICAgICAgICAg
ICAgICghKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlIGVxICJib29sZWFuIikgJiYgISgkZnVu
Y3Rpb24tPnNpZ25hdHVyZS0+dHlwZSBlcSAidm9pZCIpKSkgewogICAgICAgICAgICAgICAgIG5l
eHQ7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIEFkZEluY2x1ZGVzRm9yVHlwZSgkZnVu
Y3Rpb24tPnNpZ25hdHVyZS0+dHlwZSk7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IlxuIiAuIEdldE5hdGl2ZVR5cGUoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUpIC4gIiAke2Ns
YXNzTmFtZX06OiIgLiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZSAuICIoIik7CisgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIlxuIiAuIEdldE5hdGl2ZVR5cGVGb3JDYWxsYmFja3Mo
JGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUsIDApIC4gIiAke2NsYXNzTmFtZX06OiIgLiAkZnVu
Y3Rpb24tPnNpZ25hdHVyZS0+bmFtZSAuICIoIik7CiAKICAgICAgICAgICAgIG15IEBhcmdzID0g
KCk7CiAgICAgICAgICAgICBmb3JlYWNoIG15ICRwYXJhbSAoQHBhcmFtcykgewpAQCAtMjI0NCwy
NCArMjI1NSw0MCBAQCBzdWIgR2VuZXJhdGVDYWxsYmFja0ltcGxlbWVudGF0aW9uCiAKICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICBpZiAoIWNhbkludm9rZUNhbGxiYWNrKCkpXG4iKTsKLSAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4gdHJ1ZTtcblxuIik7CisgICAgICAg
ICAgICBpZiAoR2V0TmF0aXZlVHlwZSgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSkgZXEgImJv
b2wiKSB7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVy
biB0cnVlO1xuXG4iKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybjtcblxuIik7CisgICAgICAgICAgICB9CiAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBSZWZQdHI8JGNsYXNzTmFtZT4gcHJv
dGVjdCh0aGlzKTtcblxuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBK
U0xvY2sgbG9jayhTaWxlbmNlQXNzZXJ0aW9uc09ubHkpO1xuXG4iKTsKLSAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIEV4ZWNTdGF0ZSogZXhlYyA9IG1fZGF0YS0+Z2xvYmFsT2Jq
ZWN0KCktPmdsb2JhbEV4ZWMoKTtcbiIpOworICAgICAgICAgICAgZm9yZWFjaCBteSAkcGFyYW0g
KEBwYXJhbXMpIHsKKyAgICAgICAgICAgICAgICBpZiAoISgkcGFyYW0tPnR5cGUgZXEgImJvb2xl
YW4iKSkgeworICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBFeGVj
U3RhdGUqIGV4ZWMgPSBtX2RhdGEtPmdsb2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCk7XG4iKTsK
KyAgICAgICAgICAgICAgICAgICAgbGFzdDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICB9CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBNYXJrZWRBcmd1bWVudEJ1
ZmZlciBhcmdzO1xuIik7CiAKKwogICAgICAgICAgICAgZm9yZWFjaCBteSAkcGFyYW0gKEBwYXJh
bXMpIHsKICAgICAgICAgICAgICAgICBteSAkcGFyYW1OYW1lID0gJHBhcmFtLT5uYW1lOwotICAg
ICAgICAgICAgICAgIGlmICgkcGFyYW0tPnR5cGUgZXEgIkRPTVN0cmluZyIpIHsKLSAgICAgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgYXJncy5hcHBlbmQoanNTdHJpbmco
ZXhlYywgJHtwYXJhbU5hbWV9KSk7XG4iKTsKKyAgICAgICAgICAgICAgICBpZiAoJHBhcmFtLT50
eXBlIGVxICJib29sZWFuIikgeworICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICBhcmdzLmFwcGVuZChqc0Jvb2xlYW4oJHtwYXJhbU5hbWV9KSk7XG4iKTsKICAgICAg
ICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICBhcmdzLmFwcGVuZCh0b0pTKGV4ZWMsICR7cGFyYW1OYW1lfSkpO1xuIik7CisgICAg
ICAgICAgICAgICAgICAgIGlmICgkcGFyYW0tPnR5cGUgZXEgIkRPTVN0cmluZyIpIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGFyZ3MuYXBwZW5kKGpz
U3RyaW5nKGV4ZWMsICR7cGFyYW1OYW1lfSkpO1xuIik7CisgICAgICAgICAgICAgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBh
cmdzLmFwcGVuZCh0b0pTKGV4ZWMsICR7cGFyYW1OYW1lfSkpO1xuIik7CisgICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiXG4gICAgYm9vbCByYWlzZWRFeGNlcHRpb24gPSBmYWxzZTtc
biIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgbV9kYXRhLT5pbnZva2VD
YWxsYmFjayhhcmdzLCAmcmFpc2VkRXhjZXB0aW9uKTtcbiIpOwotICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgcmV0dXJuICFyYWlzZWRFeGNlcHRpb247XG4iKTsKKyAgICAgICAg
ICAgIGlmIChHZXROYXRpdmVUeXBlKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlKSBlcSAiYm9v
bCIpIHsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gIXJh
aXNlZEV4Y2VwdGlvbjtcbiIpOworICAgICAgICAgICAgfQogICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICJ9XG4iKTsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0gYi9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCmluZGV4IDU2ODM4Y2EuLmE5Y2Y0MmUgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KKysrIGIvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQpAQCAtNiw2ICs2LDcgQEAK
ICMgQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCiAjIENvcHlyaWdodCAo
QykgMjAwNywgMjAwOCwgMjAwOSBHb29nbGUgSW5jLgogIyBDb3B5cmlnaHQgKEMpIDIwMDkgQ2Ft
ZXJvbiBNY0Nvcm1hY2sgPGNhbUBtY2MuaWQuYXU+CisjIENvcHlyaWdodCAoQykgMjAxMCBOb2tp
YSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICMKICMgVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogIyBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YwpAQCAtMjIwNywxNiArMjIwOCwxOSBAQCBFTkQKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIiAgICAvLyBGdW5jdGlvbnNcbiIpOwogICAgICAgICBmb3JlYWNoIG15ICRmdW5jdGlvbiAo
QHskZGF0YU5vZGUtPmZ1bmN0aW9uc30pIHsKICAgICAgICAgICAgIG15IEBwYXJhbXMgPSBAeyRm
dW5jdGlvbi0+cGFyYW1ldGVyc307CisKKwogICAgICAgICAgICAgaWYgKCEkZnVuY3Rpb24tPnNp
Z25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbSJ9ICYmCi0gICAgICAgICAgICAg
ICAgIShHZXROYXRpdmVUeXBlKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlKSBlcSAiYm9vbCIp
KSB7Ci0gICAgICAgICAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgQ09NUElM
RV9BU1NFUlQoZmFsc2UpIik7CisgICAgICAgICAgICAgICAgISgkZnVuY3Rpb24tPnNpZ25hdHVy
ZS0+dHlwZSBlcSAiYm9vbGVhbiIpICYmCisgICAgICAgICAgICAgICAgISgkZnVuY3Rpb24tPnNp
Z25hdHVyZS0+dHlwZSBlcSAidm9pZCIpKSB7CisgICAgICAgICAgICAgICAgcHVzaChAaGVhZGVy
Q29udGVudCwgIiAgICBDT01QSUxFX0FTU0VSVChmYWxzZSkiKTsKICAgICAgICAgICAgIH0KIAot
ICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2aXJ0dWFsICIgLiBHZXROYXRp
dmVUeXBlRm9yQ2FsbGJhY2tzKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlKSAuICIgIiAuICRm
dW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lIC4gIigiKTsKKyAgICAgICAgICAgIHB1c2goQGhlYWRl
ckNvbnRlbnQsICIgICAgdmlydHVhbCAiIC4gR2V0TmF0aXZlVHlwZUZvckNhbGxiYWNrcygkZnVu
Y3Rpb24tPnNpZ25hdHVyZS0+dHlwZSwgMCkgLiAiICIgLiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+
bmFtZSAuICIoIik7CiAKICAgICAgICAgICAgIG15IEBhcmdzID0gKCk7CiAgICAgICAgICAgICBm
b3JlYWNoIG15ICRwYXJhbSAoQHBhcmFtcykgewotICAgICAgICAgICAgICAgIHB1c2goQGFyZ3Ms
IEdldE5hdGl2ZVR5cGVGb3JDYWxsYmFja3MoJHBhcmFtLT50eXBlKSAuICIgIiAuICRwYXJhbS0+
bmFtZSk7CisgICAgICAgICAgICAgICAgcHVzaChAYXJncywgR2V0TmF0aXZlVHlwZUZvckNhbGxi
YWNrcygkcGFyYW0tPnR5cGUsIDEpIC4gIiAiIC4gJHBhcmFtLT5uYW1lKTsKICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsIGpvaW4oIiwgIiwgQGFyZ3MpKTsK
ICAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIpO1xuIik7CkBAIC0yMjc5LDM3ICsy
MjgzLDUzIEBAIEVORAogICAgICAgICBmb3JlYWNoIG15ICRmdW5jdGlvbiAoQHskZGF0YU5vZGUt
PmZ1bmN0aW9uc30pIHsKICAgICAgICAgICAgIG15IEBwYXJhbXMgPSBAeyRmdW5jdGlvbi0+cGFy
YW1ldGVyc307CiAgICAgICAgICAgICBpZiAoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJDdXN0b20ifSB8fAotICAgICAgICAgICAgICAgICEoR2V0TmF0aXZlVHlw
ZUZvckNhbGxiYWNrcygkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSkgZXEgImJvb2wiKSkgewor
ICAgICAgICAgICAgICAgICghKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlIGVxICJib29sZWFu
IikgJiYgISgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSBlcSAidm9pZCIpKSkgewogICAgICAg
ICAgICAgICAgIG5leHQ7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIEFkZEluY2x1ZGVz
Rm9yVHlwZSgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSk7Ci0gICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIlxuIiAuIEdldE5hdGl2ZVR5cGVGb3JDYWxsYmFja3MoJGZ1bmN0aW9uLT5z
aWduYXR1cmUtPnR5cGUpIC4gIiAke2NsYXNzTmFtZX06OiIgLiAkZnVuY3Rpb24tPnNpZ25hdHVy
ZS0+bmFtZSAuICIoIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIlxuIiAuIEdl
dE5hdGl2ZVR5cGVGb3JDYWxsYmFja3MoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUsIDApIC4g
IiAke2NsYXNzTmFtZX06OiIgLiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZSAuICIoIik7CiAK
ICAgICAgICAgICAgIG15IEBhcmdzID0gKCk7CiAgICAgICAgICAgICBmb3JlYWNoIG15ICRwYXJh
bSAoQHBhcmFtcykgewogICAgICAgICAgICAgICAgIEFkZEluY2x1ZGVzRm9yVHlwZSgkcGFyYW0t
PnR5cGUpOwotICAgICAgICAgICAgICAgIHB1c2goQGFyZ3MsIEdldE5hdGl2ZVR5cGVGb3JDYWxs
YmFja3MoJHBhcmFtLT50eXBlKSAuICIgIiAuICRwYXJhbS0+bmFtZSk7CisgICAgICAgICAgICAg
ICAgcHVzaChAYXJncywgR2V0TmF0aXZlVHlwZUZvckNhbGxiYWNrcygkcGFyYW0tPnR5cGUsIDEp
IC4gIiAiIC4gJHBhcmFtLT5uYW1lKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCBqb2luKCIsICIsIEBhcmdzKSk7CiAKICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiKVxuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIp
OwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKCFjYW5JbnZva2VDYWxs
YmFjaygpKVxuIik7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0
dXJuIHRydWU7XG5cbiIpOworICAgICAgICAgICAgaWYgKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50
eXBlIGVxICJib29sZWFuIikgeworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgICAgICByZXR1cm4gdHJ1ZTtcblxuIik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm47XG5cbiIpOworICAg
ICAgICAgICAgfQogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgdjg6OkhhbmRs
ZVNjb3BlIGhhbmRsZVNjb3BlO1xuXG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IHY4Q29udGV4dCA9IHRvVjhDb250ZXh0KHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgbV93b3JsZENvbnRleHQpO1xuIik7CiAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAodjhDb250ZXh0LklzRW1wdHkoKSlcbiIpOwot
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiB0cnVlO1xuXG4i
KTsKKyAgICAgICAgICAgIGlmICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSBlcSAiYm9vbGVh
biIpIHsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJu
IHRydWU7XG5cbiIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuO1xuXG4iKTsKKyAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHY4OjpDb250ZXh0OjpTY29wZSBzY29w
ZSh2OENvbnRleHQpO1xuXG4iKTsKIAogICAgICAgICAgICAgQGFyZ3MgPSAoKTsKICAgICAgICAg
ICAgIGZvcmVhY2ggbXkgJHBhcmFtIChAcGFyYW1zKSB7CiAgICAgICAgICAgICAgICAgbXkgJHBh
cmFtTmFtZSA9ICRwYXJhbS0+bmFtZTsKLSAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gJHtwYXJhbU5hbWV9SGFuZGxlID0gdG9WOCgk
e3BhcmFtTmFtZX0pO1xuIik7CisgICAgICAgICAgICAgICAgaWYgKCRwYXJhbS0+dHlwZSBlcSAi
Ym9vbGVhbiIpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
djg6OkhhbmRsZTx2ODo6VmFsdWU+ICR7cGFyYW1OYW1lfUhhbmRsZSA9IHY4Qm9vbGVhbigke3Bh
cmFtTmFtZX0pO1xuIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+ICR7cGFy
YW1OYW1lfUhhbmRsZSA9IHRvVjgoJHtwYXJhbU5hbWV9KTtcbiIpOworICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoJHtwYXJhbU5h
bWV9SGFuZGxlLklzRW1wdHkoKSkge1xuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgICAgIENSQVNIKCk7XG4iKTsKLSAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICAgICAgcmV0dXJuIHRydWU7XG4iKTsKKyAgICAgICAgICAgICAgICBpZiAo
JGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUgZXEgImJvb2xlYW4iKSB7CisgICAgICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4gdHJ1ZTtcblxuIik7Cisg
ICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgICAgIHJldHVybjtcblxuIik7CisgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIH1cbiIpOwogICAgICAgICAgICAgICAg
IHB1c2goQGFyZ3MsICIgICAgICAgICR7cGFyYW1OYW1lfUhhbmRsZSIpOwogICAgICAgICAgICAg
fQpAQCAtMjMxOCw3ICsyMzM4LDExIEBAIEVORAogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsIGpvaW4oIixcbiIsIEBhcmdzKSk7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IlxuICAgIH07XG5cbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgYm9v
bCBjYWxsYmFja1JldHVyblZhbHVlID0gZmFsc2U7XG4iKTsKLSAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgIHJldHVybiAhaW52b2tlQ2FsbGJhY2sobV9jYWxsYmFjaywgIiAuIHNj
YWxhcihAcGFyYW1zKSAuICIsIGFyZ3YsIGNhbGxiYWNrUmV0dXJuVmFsdWUsIHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSk7XG4iKTsKKyAgICAgICAgICAgIGlmICgkZnVuY3Rpb24tPnNpZ25hdHVy
ZS0+dHlwZSBlcSAiYm9vbGVhbiIpIHsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICByZXR1cm4gIWludm9rZUNhbGxiYWNrKG1fY2FsbGJhY2ssICIgLiBzY2FsYXIoQHBh
cmFtcykgLiAiLCBhcmd2LCBjYWxsYmFja1JldHVyblZhbHVlLCBzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkpO1xuIik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgIGludm9rZUNhbGxiYWNrKG1fY2FsbGJhY2ssICIgLiBzY2FsYXIo
QHBhcmFtcykgLiAiLCBhcmd2LCBjYWxsYmFja1JldHVyblZhbHVlLCBzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkpO1xuIik7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIn1cbiIpOwogICAgICAgICB9CiAgICAgfQpAQCAtMjgxOSw3ICsyODQzLDkgQEAgc3Vi
IEdldE5hdGl2ZVR5cGUKIHN1YiBHZXROYXRpdmVUeXBlRm9yQ2FsbGJhY2tzCiB7CiAgICAgbXkg
JHR5cGUgPSBzaGlmdDsKKyAgICBteSAkaXNQYXJhbWV0ZXIgPSBzaGlmdDsKICAgICByZXR1cm4g
ImNvbnN0IFN0cmluZyYiIGlmICR0eXBlIGVxICJET01TdHJpbmciOworICAgIHJldHVybiAidm9p
ZCIgaWYgKCR0eXBlIGVxICJ2b2lkIikgYW5kICEkaXNQYXJhbWV0ZXI7CiAKICAgICAjIENhbGxi
YWNrcyB1c2UgcmF3IHBvaW50ZXJzLCBzbyBwYXNzIGlzUGFyYW1ldGVyID0gMQogICAgIHJldHVy
biBHZXROYXRpdmVUeXBlKCR0eXBlLCAxKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU0dy
YW1tYXIueSBiL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueQppbmRleCAyNmIyYmE4Li44ZDVmMjYz
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkKKysrIGIvV2ViQ29yZS9jc3Mv
Q1NTR3JhbW1hci55CkBAIC03Myw4ICs3Myw4IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7
CiAgICAgQ1NTU2VsZWN0b3I6Ok1hcmdpbkJveFR5cGUgbWFyZ2luQm94OwogICAgIENTU1NlbGVj
dG9yOjpSZWxhdGlvbiByZWxhdGlvbjsKICAgICBNZWRpYUxpc3QqIG1lZGlhTGlzdDsKLSAgICBN
ZWRpYVF1ZXJ5KiBtZWRpYVF1ZXJ5OwotICAgIE1lZGlhUXVlcnk6OlJlc3RyaWN0b3IgbWVkaWFR
dWVyeVJlc3RyaWN0b3I7CisgICAgQ1NTTWVkaWFRdWVyeSogbWVkaWFRdWVyeTsKKyAgICBDU1NN
ZWRpYVF1ZXJ5OjpSZXN0cmljdG9yIG1lZGlhUXVlcnlSZXN0cmljdG9yOwogICAgIE1lZGlhUXVl
cnlFeHAqIG1lZGlhUXVlcnlFeHA7CiAgICAgQ1NTUGFyc2VyVmFsdWUgdmFsdWU7CiAgICAgQ1NT
UGFyc2VyVmFsdWVMaXN0KiB2YWx1ZUxpc3Q7CkBAIC02MzYsMTMgKzYzNiwxMyBAQCBtYXliZV9h
bmRfbWVkaWFfcXVlcnlfZXhwX2xpc3Q6CiAKIG1heWJlX21lZGlhX3Jlc3RyaWN0b3I6CiAgICAg
LyplbXB0eSovIHsKLSAgICAgICAgJCQgPSBNZWRpYVF1ZXJ5OjpOb25lOworICAgICAgICAkJCA9
IENTU01lZGlhUXVlcnk6Ok5vbmU7CiAgICAgfQogICAgIHwgTUVESUFfT05MWSB7Ci0gICAgICAg
ICQkID0gTWVkaWFRdWVyeTo6T25seTsKKyAgICAgICAgJCQgPSBDU1NNZWRpYVF1ZXJ5OjpPbmx5
OwogICAgIH0KICAgICB8IE1FRElBX05PVCB7Ci0gICAgICAgICQkID0gTWVkaWFRdWVyeTo6Tm90
OworICAgICAgICAkJCA9IENTU01lZGlhUXVlcnk6Ok5vdDsKICAgICB9CiAgICAgOwogCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NNZWRpYVF1ZXJ5LmNwcCBiL1dlYkNvcmUvY3NzL0NTU01l
ZGlhUXVlcnkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkMjk2MDYK
LS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2Nzcy9DU1NNZWRpYVF1ZXJ5LmNwcApAQCAtMCww
ICsxLDEyOCBAQAorLyoKKyAqIENTUyBNZWRpYSBRdWVyeQorICoKKyAqIENvcHlyaWdodCAoQykg
MjAwNSwgMjAwNiBLaW1tbyBLaW5udW5lbiA8a2ltbW8udC5raW5udW5lbkBub2tpYS5jb20+Lgor
ICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lk
aWFyeSgtaWVzKS4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ1NTTWVkaWFRdWVyeS5o
IgorCisjaW5jbHVkZSAiTWVkaWFRdWVyeUV4cC5oIgorI2luY2x1ZGUgIlN0cmluZ0J1aWxkZXIu
aCIKKworI2luY2x1ZGUgPGFsZ29yaXRobT4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBo
dHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9jc3NvbS8jc2VyaWFsaXplLWEtbWVkaWEtcXVlcnkKK1N0
cmluZyBDU1NNZWRpYVF1ZXJ5OjpzZXJpYWxpemUoKSBjb25zdAoreworICAgIFN0cmluZ0J1aWxk
ZXIgcmVzdWx0OworCisgICAgc3dpdGNoIChtX3Jlc3RyaWN0b3IpIHsKKyAgICBjYXNlIENTU01l
ZGlhUXVlcnk6Ok9ubHk6CisgICAgICAgIHJlc3VsdC5hcHBlbmQoIm9ubHkgIik7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgQ1NTTWVkaWFRdWVyeTo6Tm90OgorICAgICAgICByZXN1bHQuYXBw
ZW5kKCJub3QgIik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTTWVkaWFRdWVyeTo6Tm9u
ZToKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgaWYgKG1fZXhwcmVzc2lvbnMtPmlzRW1w
dHkoKSkgeworICAgICAgICByZXN1bHQuYXBwZW5kKG1fbWVkaWFUeXBlKTsKKyAgICAgICAgcmV0
dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KKworICAgIGlmIChtX21lZGlhVHlwZSAhPSAi
YWxsIiB8fCBtX3Jlc3RyaWN0b3IgIT0gTm9uZSkgeworICAgICAgICByZXN1bHQuYXBwZW5kKG1f
bWVkaWFUeXBlKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgiIGFuZCAiKTsKKyAgICB9CisKKyAg
ICByZXN1bHQuYXBwZW5kKG1fZXhwcmVzc2lvbnMtPmF0KDApLT5zZXJpYWxpemUoKSk7CisgICAg
Zm9yIChzaXplX3QgaSA9IDE7IGkgPCBtX2V4cHJlc3Npb25zLT5zaXplKCk7ICsraSkgeworICAg
ICAgICByZXN1bHQuYXBwZW5kKCIgYW5kICIpOworICAgICAgICByZXN1bHQuYXBwZW5kKG1fZXhw
cmVzc2lvbnMtPmF0KGkpLT5zZXJpYWxpemUoKSk7CisgICAgfQorICAgIHJldHVybiByZXN1bHQu
dG9TdHJpbmcoKTsKK30KKworc3RhdGljIGJvb2wgZXhwcmVzc2lvbkNvbXBhcmUoY29uc3QgTWVk
aWFRdWVyeUV4cCogYSwgY29uc3QgTWVkaWFRdWVyeUV4cCogYikKK3sKKyAgICByZXR1cm4gY29k
ZVBvaW50Q29tcGFyZShhLT5zZXJpYWxpemUoKSwgYi0+c2VyaWFsaXplKCkpIDwgMDsKK30KKwor
Q1NTTWVkaWFRdWVyeTo6Q1NTTWVkaWFRdWVyeShSZXN0cmljdG9yIHIsIGNvbnN0IFN0cmluZyYg
bWVkaWFUeXBlLCBQYXNzT3duUHRyPFZlY3RvcjxNZWRpYVF1ZXJ5RXhwKj4gPiBleHBycykKKyAg
ICA6IG1fcmVzdHJpY3RvcihyKQorICAgICwgbV9tZWRpYVR5cGUobWVkaWFUeXBlLmxvd2VyKCkp
CisgICAgLCBtX2V4cHJlc3Npb25zKGV4cHJzKQorICAgICwgbV9pZ25vcmVkKGZhbHNlKQorewor
ICAgIGlmICghbV9leHByZXNzaW9ucykgeworICAgICAgICBtX2V4cHJlc3Npb25zID0gbmV3IFZl
Y3RvcjxNZWRpYVF1ZXJ5RXhwKj47CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBzdGQ6
OnNvcnQobV9leHByZXNzaW9ucy0+YmVnaW4oKSwgbV9leHByZXNzaW9ucy0+ZW5kKCksIGV4cHJl
c3Npb25Db21wYXJlKTsKKworICAgIC8vIHJlbW92ZSBhbGwgZHVwbGljYXRlZCBleHByZXNzaW9u
cworICAgIFN0cmluZyBrZXk7CisgICAgZm9yIChpbnQgaSA9IG1fZXhwcmVzc2lvbnMtPnNpemUo
KSAtIDE7IGkgPj0gMDsgLS1pKSB7CisKKyAgICAgICAgLy8gaWYgbm90IGFsbCBvZiB0aGUgZXhw
cmVzc2lvbnMgaXMgdmFsaWQgdGhlIG1lZGlhIHF1ZXJ5IG11c3QgYmUgaWdub3JlZC4KKyAgICAg
ICAgaWYgKCFtX2lnbm9yZWQpCisgICAgICAgICAgICBtX2lnbm9yZWQgPSAhbV9leHByZXNzaW9u
cy0+YXQoaSktPmlzVmFsaWQoKTsKKworICAgICAgICBpZiAobV9leHByZXNzaW9ucy0+YXQoaSkt
PnNlcmlhbGl6ZSgpID09IGtleSkgeworICAgICAgICAgICAgTWVkaWFRdWVyeUV4cCogaXRlbSA9
IG1fZXhwcmVzc2lvbnMtPmF0KGkpOworICAgICAgICAgICAgbV9leHByZXNzaW9ucy0+cmVtb3Zl
KGkpOworICAgICAgICAgICAgZGVsZXRlIGl0ZW07CisgICAgICAgIH0gZWxzZQorICAgICAgICAg
ICAga2V5ID0gbV9leHByZXNzaW9ucy0+YXQoaSktPnNlcmlhbGl6ZSgpOworICAgIH0KK30KKwor
Q1NTTWVkaWFRdWVyeTo6fkNTU01lZGlhUXVlcnkoKQoreworICAgIGRlbGV0ZUFsbFZhbHVlcygq
bV9leHByZXNzaW9ucyk7Cit9CisKKy8vIGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzc29tLyNj
b21wYXJlLW1lZGlhLXF1ZXJpZXMKK2Jvb2wgQ1NTTWVkaWFRdWVyeTo6b3BlcmF0b3I9PShjb25z
dCBDU1NNZWRpYVF1ZXJ5JiBvdGhlcikgY29uc3QKK3sKKyAgICByZXR1cm4gY3NzVGV4dCgpID09
IG90aGVyLmNzc1RleHQoKTsKK30KKworLy8gaHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3Nzb20v
I3NlcmlhbGl6ZS1hLWxpc3Qtb2YtbWVkaWEtcXVlcmllcworU3RyaW5nIENTU01lZGlhUXVlcnk6
OmNzc1RleHQoKSBjb25zdAoreworICAgIGlmIChtX3NlcmlhbGl6YXRpb25DYWNoZS5pc051bGwo
KSkKKyAgICAgICAgY29uc3RfY2FzdDxDU1NNZWRpYVF1ZXJ5Kj4odGhpcyktPm1fc2VyaWFsaXph
dGlvbkNhY2hlID0gc2VyaWFsaXplKCk7CisKKyAgICByZXR1cm4gbV9zZXJpYWxpemF0aW9uQ2Fj
aGU7Cit9CisKK30gLy9uYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU01lZGlh
UXVlcnkuaCBiL1dlYkNvcmUvY3NzL0NTU01lZGlhUXVlcnkuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi42YTA5MzZjCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9jc3Mv
Q1NTTWVkaWFRdWVyeS5oCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDU1MgTWVkaWEgUXVlcnkK
KyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgS2ltbW8gS2lubnVuZW4gPGtpbW1vLnQua2lubnVu
ZW5Abm9raWEuY29tPi4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBh
bmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBDU1NNZWRpYVF1ZXJ5X2gKKyNkZWZp
bmUgQ1NTTWVkaWFRdWVyeV9oCisKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1
ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUg
PHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgTWVk
aWFRdWVyeUV4cDsKKworY2xhc3MgQ1NTTWVkaWFRdWVyeSA6IHB1YmxpYyBOb25jb3B5YWJsZSB7
CitwdWJsaWM6CisgICAgZW51bSBSZXN0cmljdG9yIHsKKyAgICAgICAgT25seSwgTm90LCBOb25l
CisgICAgfTsKKworICAgIENTU01lZGlhUXVlcnkoUmVzdHJpY3RvciwgY29uc3QgU3RyaW5nJiBt
ZWRpYVR5cGUsIFBhc3NPd25QdHI8VmVjdG9yPE1lZGlhUXVlcnlFeHAqPiA+IGV4cHJzKTsKKyAg
ICB+Q1NTTWVkaWFRdWVyeSgpOworCisgICAgUmVzdHJpY3RvciByZXN0cmljdG9yKCkgY29uc3Qg
eyByZXR1cm4gbV9yZXN0cmljdG9yOyB9CisgICAgY29uc3QgVmVjdG9yPE1lZGlhUXVlcnlFeHAq
PiogZXhwcmVzc2lvbnMoKSBjb25zdCB7IHJldHVybiBtX2V4cHJlc3Npb25zLmdldCgpOyB9Cisg
ICAgU3RyaW5nIG1lZGlhVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFUeXBlOyB9CisgICAg
Ym9vbCBvcGVyYXRvcj09KGNvbnN0IENTU01lZGlhUXVlcnkmIG90aGVyKSBjb25zdDsKKyAgICBT
dHJpbmcgY3NzVGV4dCgpIGNvbnN0OworICAgIGJvb2wgaWdub3JlZCgpIGNvbnN0IHsgcmV0dXJu
IG1faWdub3JlZDsgfQorCisgcHJpdmF0ZToKKyAgICBSZXN0cmljdG9yIG1fcmVzdHJpY3RvcjsK
KyAgICBTdHJpbmcgbV9tZWRpYVR5cGU7CisgICAgT3duUHRyPFZlY3RvcjxNZWRpYVF1ZXJ5RXhw
Kj4gPiBtX2V4cHJlc3Npb25zOworICAgIGJvb2wgbV9pZ25vcmVkOworICAgIFN0cmluZyBtX3Nl
cmlhbGl6YXRpb25DYWNoZTsKKworICAgIFN0cmluZyBzZXJpYWxpemUoKSBjb25zdDsKK307CisK
K30gLy8gbmFtZXNwYWNlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTUGFy
c2VyLmNwcCBiL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXggYTA1OWZmYy4uNWZmZGE2
YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9XZWJDb3JlL2Nz
cy9DU1NQYXJzZXIuY3BwCkBAIC01MzQzLDE5ICs1MzQzLDE5IEBAIFZlY3RvcjxNZWRpYVF1ZXJ5
RXhwKj4qIENTU1BhcnNlcjo6c2lua0Zsb2F0aW5nTWVkaWFRdWVyeUV4cExpc3QoVmVjdG9yPE1l
ZGlhUXVlCiAgICAgcmV0dXJuIGw7CiB9CiAKLU1lZGlhUXVlcnkqIENTU1BhcnNlcjo6Y3JlYXRl
RmxvYXRpbmdNZWRpYVF1ZXJ5KE1lZGlhUXVlcnk6OlJlc3RyaWN0b3IgciwgY29uc3QgU3RyaW5n
JiBtZWRpYVR5cGUsIFZlY3RvcjxNZWRpYVF1ZXJ5RXhwKj4qIGV4cHJzKQorQ1NTTWVkaWFRdWVy
eSogQ1NTUGFyc2VyOjpjcmVhdGVGbG9hdGluZ01lZGlhUXVlcnkoQ1NTTWVkaWFRdWVyeTo6UmVz
dHJpY3RvciByLCBjb25zdCBTdHJpbmcmIG1lZGlhVHlwZSwgVmVjdG9yPE1lZGlhUXVlcnlFeHAq
PiogZXhwcnMpCiB7CiAgICAgZGVsZXRlIG1fZmxvYXRpbmdNZWRpYVF1ZXJ5OwotICAgIG1fZmxv
YXRpbmdNZWRpYVF1ZXJ5ID0gbmV3IE1lZGlhUXVlcnkociwgbWVkaWFUeXBlLCBleHBycyk7Cisg
ICAgbV9mbG9hdGluZ01lZGlhUXVlcnkgPSBuZXcgQ1NTTWVkaWFRdWVyeShyLCBtZWRpYVR5cGUs
IGV4cHJzKTsKICAgICByZXR1cm4gbV9mbG9hdGluZ01lZGlhUXVlcnk7CiB9CiAKLU1lZGlhUXVl
cnkqIENTU1BhcnNlcjo6Y3JlYXRlRmxvYXRpbmdNZWRpYVF1ZXJ5KFZlY3RvcjxNZWRpYVF1ZXJ5
RXhwKj4qIGV4cHJzKQorQ1NTTWVkaWFRdWVyeSogQ1NTUGFyc2VyOjpjcmVhdGVGbG9hdGluZ01l
ZGlhUXVlcnkoVmVjdG9yPE1lZGlhUXVlcnlFeHAqPiogZXhwcnMpCiB7Ci0gICAgcmV0dXJuIGNy
ZWF0ZUZsb2F0aW5nTWVkaWFRdWVyeShNZWRpYVF1ZXJ5OjpOb25lLCAiYWxsIiwgZXhwcnMpOwor
ICAgIHJldHVybiBjcmVhdGVGbG9hdGluZ01lZGlhUXVlcnkoQ1NTTWVkaWFRdWVyeTo6Tm9uZSwg
ImFsbCIsIGV4cHJzKTsKIH0KIAotTWVkaWFRdWVyeSogQ1NTUGFyc2VyOjpzaW5rRmxvYXRpbmdN
ZWRpYVF1ZXJ5KE1lZGlhUXVlcnkqIG1xKQorQ1NTTWVkaWFRdWVyeSogQ1NTUGFyc2VyOjpzaW5r
RmxvYXRpbmdNZWRpYVF1ZXJ5KENTU01lZGlhUXVlcnkqIG1xKQogewogICAgIEFTU0VSVChtcSA9
PSBtX2Zsb2F0aW5nTWVkaWFRdWVyeSk7CiAgICAgbV9mbG9hdGluZ01lZGlhUXVlcnkgPSAwOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmggYi9XZWJDb3JlL2Nzcy9DU1NQYXJz
ZXIuaAppbmRleCAxZTIzM2M4Li5iMGUzNmQxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NQ
YXJzZXIuaAorKysgYi9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaApAQCAtMjMsMTAgKzIzLDEwIEBA
CiAjaWZuZGVmIENTU1BhcnNlcl9oCiAjZGVmaW5lIENTU1BhcnNlcl9oCiAKLSNpbmNsdWRlICJD
b2xvci5oIgorI2luY2x1ZGUgIkNTU01lZGlhUXVlcnkuaCIKICNpbmNsdWRlICJDU1NQYXJzZXJW
YWx1ZXMuaCIKICNpbmNsdWRlICJDU1NTZWxlY3Rvckxpc3QuaCIKLSNpbmNsdWRlICJNZWRpYVF1
ZXJ5LmgiCisjaW5jbHVkZSAiQ29sb3IuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtMTk3LDkg
KzE5Nyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgTWVkaWFRdWVyeUV4cCogc2lu
a0Zsb2F0aW5nTWVkaWFRdWVyeUV4cChNZWRpYVF1ZXJ5RXhwKik7CiAgICAgICAgIFZlY3RvcjxN
ZWRpYVF1ZXJ5RXhwKj4qIGNyZWF0ZUZsb2F0aW5nTWVkaWFRdWVyeUV4cExpc3QoKTsKICAgICAg
ICAgVmVjdG9yPE1lZGlhUXVlcnlFeHAqPiogc2lua0Zsb2F0aW5nTWVkaWFRdWVyeUV4cExpc3Qo
VmVjdG9yPE1lZGlhUXVlcnlFeHAqPiopOwotICAgICAgICBNZWRpYVF1ZXJ5KiBjcmVhdGVGbG9h
dGluZ01lZGlhUXVlcnkoTWVkaWFRdWVyeTo6UmVzdHJpY3RvciwgY29uc3QgU3RyaW5nJiwgVmVj
dG9yPE1lZGlhUXVlcnlFeHAqPiopOwotICAgICAgICBNZWRpYVF1ZXJ5KiBjcmVhdGVGbG9hdGlu
Z01lZGlhUXVlcnkoVmVjdG9yPE1lZGlhUXVlcnlFeHAqPiopOwotICAgICAgICBNZWRpYVF1ZXJ5
KiBzaW5rRmxvYXRpbmdNZWRpYVF1ZXJ5KE1lZGlhUXVlcnkqKTsKKyAgICAgICAgQ1NTTWVkaWFR
dWVyeSogY3JlYXRlRmxvYXRpbmdNZWRpYVF1ZXJ5KENTU01lZGlhUXVlcnk6OlJlc3RyaWN0b3Is
IGNvbnN0IFN0cmluZyYsIFZlY3RvcjxNZWRpYVF1ZXJ5RXhwKj4qKTsKKyAgICAgICAgQ1NTTWVk
aWFRdWVyeSogY3JlYXRlRmxvYXRpbmdNZWRpYVF1ZXJ5KFZlY3RvcjxNZWRpYVF1ZXJ5RXhwKj4q
KTsKKyAgICAgICAgQ1NTTWVkaWFRdWVyeSogc2lua0Zsb2F0aW5nTWVkaWFRdWVyeShDU1NNZWRp
YVF1ZXJ5Kik7CiAKICAgICAgICAgdm9pZCBhZGROYW1lc3BhY2UoY29uc3QgQXRvbWljU3RyaW5n
JiBwcmVmaXgsIGNvbnN0IEF0b21pY1N0cmluZyYgdXJpKTsKIApAQCAtMjIxLDcgKzIyMSw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgQ1NTU3R5bGVTaGVldCogbV9zdHlsZVNoZWV0
OwogICAgICAgICBSZWZQdHI8Q1NTUnVsZT4gbV9ydWxlOwogICAgICAgICBSZWZQdHI8Q1NTUnVs
ZT4gbV9rZXlmcmFtZTsKLSAgICAgICAgTWVkaWFRdWVyeSogbV9tZWRpYVF1ZXJ5OworICAgICAg
ICBDU1NNZWRpYVF1ZXJ5KiBtX21lZGlhUXVlcnk7CiAgICAgICAgIENTU1BhcnNlclZhbHVlTGlz
dCogbV92YWx1ZUxpc3Q7CiAgICAgICAgIENTU1Byb3BlcnR5KiogbV9wYXJzZWRQcm9wZXJ0aWVz
OwogICAgICAgICBDU1NTZWxlY3Rvckxpc3QqIG1fc2VsZWN0b3JMaXN0Rm9yUGFyc2VTZWxlY3Rv
cjsKQEAgLTMwMSw3ICszMDEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIEhhc2hT
ZXQ8Q1NTUGFyc2VyVmFsdWVMaXN0Kj4gbV9mbG9hdGluZ1ZhbHVlTGlzdHM7CiAgICAgICAgIEhh
c2hTZXQ8Q1NTUGFyc2VyRnVuY3Rpb24qPiBtX2Zsb2F0aW5nRnVuY3Rpb25zOwogCi0gICAgICAg
IE1lZGlhUXVlcnkqIG1fZmxvYXRpbmdNZWRpYVF1ZXJ5OworICAgICAgICBDU1NNZWRpYVF1ZXJ5
KiBtX2Zsb2F0aW5nTWVkaWFRdWVyeTsKICAgICAgICAgTWVkaWFRdWVyeUV4cCogbV9mbG9hdGlu
Z01lZGlhUXVlcnlFeHA7CiAgICAgICAgIFZlY3RvcjxNZWRpYVF1ZXJ5RXhwKj4qIG1fZmxvYXRp
bmdNZWRpYVF1ZXJ5RXhwTGlzdDsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvTWVkaWFMaXN0
LmNwcCBiL1dlYkNvcmUvY3NzL01lZGlhTGlzdC5jcHAKaW5kZXggODVjZjU5MC4uNzVkNDI1YiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvTWVkaWFMaXN0LmNwcAorKysgYi9XZWJDb3JlL2Nzcy9N
ZWRpYUxpc3QuY3BwCkBAIC0yMSwxMCArMjEsMTAgQEAKICNpbmNsdWRlICJNZWRpYUxpc3QuaCIK
IAogI2luY2x1ZGUgIkNTU0ltcG9ydFJ1bGUuaCIKKyNpbmNsdWRlICJDU1NNZWRpYVF1ZXJ5Lmgi
CiAjaW5jbHVkZSAiQ1NTUGFyc2VyLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVTaGVldC5oIgogI2lu
Y2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKLSNpbmNsdWRlICJNZWRpYVF1ZXJ5LmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIApAQCAtMTIxLDcgKzEyMSw3IEBAIHZvaWQgTWVkaWFMaXN0OjpkZWxl
dGVNZWRpdW0oY29uc3QgU3RyaW5nJiBvbGRNZWRpdW0sIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAg
IFJlZlB0cjxNZWRpYUxpc3Q+IHRlbXBNZWRpYUxpc3QgPSBNZWRpYUxpc3Q6OmNyZWF0ZSgpOwog
ICAgIENTU1BhcnNlciBwKHRydWUpOwogCi0gICAgTWVkaWFRdWVyeSogb2xkUXVlcnkgPSAwOwor
ICAgIENTU01lZGlhUXVlcnkqIG9sZFF1ZXJ5ID0gMDsKICAgICBib29sIGRlbGV0ZU9sZFF1ZXJ5
ID0gZmFsc2U7CiAKICAgICBpZiAocC5wYXJzZU1lZGlhUXVlcnkodGVtcE1lZGlhTGlzdC5nZXQo
KSwgb2xkTWVkaXVtKSkgewpAQCAtMTMwLDcgKzEzMCw3IEBAIHZvaWQgTWVkaWFMaXN0OjpkZWxl
dGVNZWRpdW0oY29uc3QgU3RyaW5nJiBvbGRNZWRpdW0sIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAg
IH0gZWxzZSBpZiAobV9mYWxsYmFjaykgewogICAgICAgICBTdHJpbmcgbWVkaXVtID0gcGFyc2VN
ZWRpYURlc2NyaXB0b3Iob2xkTWVkaXVtKTsKICAgICAgICAgaWYgKCFtZWRpdW0uaXNOdWxsKCkp
IHsKLSAgICAgICAgICAgIG9sZFF1ZXJ5ID0gbmV3IE1lZGlhUXVlcnkoTWVkaWFRdWVyeTo6Tm9u
ZSwgbWVkaXVtLCAwKTsKKyAgICAgICAgICAgIG9sZFF1ZXJ5ID0gbmV3IENTU01lZGlhUXVlcnko
Q1NTTWVkaWFRdWVyeTo6Tm9uZSwgbWVkaXVtLCAwKTsKICAgICAgICAgICAgIGRlbGV0ZU9sZFF1
ZXJ5ID0gdHJ1ZTsKICAgICAgICAgfQogICAgIH0KQEAgLTE0MCw3ICsxNDAsNyBAQCB2b2lkIE1l
ZGlhTGlzdDo6ZGVsZXRlTWVkaXVtKGNvbnN0IFN0cmluZyYgb2xkTWVkaXVtLCBFeGNlcHRpb25D
b2RlJiBlYykKIAogICAgIGlmIChvbGRRdWVyeSkgewogICAgICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IG1fcXVlcmllcy5zaXplKCk7ICsraSkgewotICAgICAgICAgICAgTWVkaWFRdWVyeSog
YSA9IG1fcXVlcmllc1tpXTsKKyAgICAgICAgICAgIENTU01lZGlhUXVlcnkqIGEgPSBtX3F1ZXJp
ZXNbaV07CiAgICAgICAgICAgICBpZiAoKmEgPT0gKm9sZFF1ZXJ5KSB7CiAgICAgICAgICAgICAg
ICAgbV9xdWVyaWVzLnJlbW92ZShpKTsKICAgICAgICAgICAgICAgICBkZWxldGUgYTsKQEAgLTE4
Nyw3ICsxODcsNyBAQCB2b2lkIE1lZGlhTGlzdDo6c2V0TWVkaWFUZXh0KGNvbnN0IFN0cmluZyYg
dmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICAgICAgICAgIGlmIChtX2ZhbGxiYWNr
KSB7CiAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBtZWRpYURlc2NyaXB0b3IgPSBwYXJzZU1l
ZGlhRGVzY3JpcHRvcihtZWRpdW0pOwogICAgICAgICAgICAgICAgICAgICBpZiAoIW1lZGlhRGVz
Y3JpcHRvci5pc051bGwoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBNZWRpYUxpc3Qt
Pm1fcXVlcmllcy5hcHBlbmQobmV3IE1lZGlhUXVlcnkoTWVkaWFRdWVyeTo6Tm9uZSwgbWVkaWFE
ZXNjcmlwdG9yLCAwKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wTWVkaWFMaXN0LT5t
X3F1ZXJpZXMuYXBwZW5kKG5ldyBDU1NNZWRpYVF1ZXJ5KENTU01lZGlhUXVlcnk6Ok5vbmUsIG1l
ZGlhRGVzY3JpcHRvciwgMCkpOwogICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAg
ICAgICAgICAgIGVjID0gU1lOVEFYX0VSUjsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwpA
QCAtMjE3LDcgKzIxNyw3IEBAIHZvaWQgTWVkaWFMaXN0OjpzZXRNZWRpYVRleHQoY29uc3QgU3Ry
aW5nJiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiBTdHJpbmcgTWVkaWFMaXN0OjppdGVtKHVu
c2lnbmVkIGluZGV4KSBjb25zdAogewogICAgIGlmIChpbmRleCA8IG1fcXVlcmllcy5zaXplKCkp
IHsKLSAgICAgICAgTWVkaWFRdWVyeSogcXVlcnkgPSBtX3F1ZXJpZXNbaW5kZXhdOworICAgICAg
ICBDU1NNZWRpYVF1ZXJ5KiBxdWVyeSA9IG1fcXVlcmllc1tpbmRleF07CiAgICAgICAgIHJldHVy
biBxdWVyeS0+Y3NzVGV4dCgpOwogICAgIH0KIApAQCAtMjMzLDcgKzIzMyw3IEBAIHZvaWQgTWVk
aWFMaXN0OjphcHBlbmRNZWRpdW0oY29uc3QgU3RyaW5nJiBuZXdNZWRpdW0sIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogICAgIH0gZWxzZSBpZiAobV9mYWxsYmFjaykgewogICAgICAgICBTdHJpbmcgbWVk
aXVtID0gcGFyc2VNZWRpYURlc2NyaXB0b3IobmV3TWVkaXVtKTsKICAgICAgICAgaWYgKCFtZWRp
dW0uaXNOdWxsKCkpIHsKLSAgICAgICAgICAgIG1fcXVlcmllcy5hcHBlbmQobmV3IE1lZGlhUXVl
cnkoTWVkaWFRdWVyeTo6Tm9uZSwgbWVkaXVtLCAwKSk7CisgICAgICAgICAgICBtX3F1ZXJpZXMu
YXBwZW5kKG5ldyBDU1NNZWRpYVF1ZXJ5KENTU01lZGlhUXVlcnk6Ok5vbmUsIG1lZGl1bSwgMCkp
OwogICAgICAgICAgICAgZWMgPSAwOwogICAgICAgICB9CiAgICAgfQpAQCAtMjQyLDcgKzI0Miw3
IEBAIHZvaWQgTWVkaWFMaXN0OjphcHBlbmRNZWRpdW0oY29uc3QgU3RyaW5nJiBuZXdNZWRpdW0s
IEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICBub3RpZnlDaGFuZ2VkKCk7CiB9CiAKLXZvaWQg
TWVkaWFMaXN0OjphcHBlbmRNZWRpYVF1ZXJ5KE1lZGlhUXVlcnkqIG1lZGlhUXVlcnkpCit2b2lk
IE1lZGlhTGlzdDo6YXBwZW5kTWVkaWFRdWVyeShDU1NNZWRpYVF1ZXJ5KiBtZWRpYVF1ZXJ5KQog
ewogICAgIG1fcXVlcmllcy5hcHBlbmQobWVkaWFRdWVyeSk7CiB9CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2Nzcy9NZWRpYUxpc3QuaCBiL1dlYkNvcmUvY3NzL01lZGlhTGlzdC5oCmluZGV4IGU5MWNh
OWQuLjc2ODNmMTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL01lZGlhTGlzdC5oCisrKyBiL1dl
YkNvcmUvY3NzL01lZGlhTGlzdC5oCkBAIC0zMCw3ICszMCw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgQ1NTSW1wb3J0UnVsZTsKIGNsYXNzIENTU1N0eWxlU2hlZXQ7Ci1jbGFzcyBN
ZWRpYVF1ZXJ5OworY2xhc3MgQ1NTTWVkaWFRdWVyeTsKIAogdHlwZWRlZiBpbnQgRXhjZXB0aW9u
Q29kZTsKIApAQCAtNzMsOCArNzMsOCBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIG1lZGlhVGV4dCgp
IGNvbnN0OwogICAgIHZvaWQgc2V0TWVkaWFUZXh0KGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNv
ZGUmeG8pOwogCi0gICAgdm9pZCBhcHBlbmRNZWRpYVF1ZXJ5KE1lZGlhUXVlcnkqKTsKLSAgICBj
b25zdCBWZWN0b3I8TWVkaWFRdWVyeSo+JiBtZWRpYVF1ZXJpZXMoKSBjb25zdCB7IHJldHVybiBt
X3F1ZXJpZXM7IH0KKyAgICB2b2lkIGFwcGVuZE1lZGlhUXVlcnkoQ1NTTWVkaWFRdWVyeSopOwor
ICAgIGNvbnN0IFZlY3RvcjxDU1NNZWRpYVF1ZXJ5Kj4mIG1lZGlhUXVlcmllcygpIGNvbnN0IHsg
cmV0dXJuIG1fcXVlcmllczsgfQogCiBwcml2YXRlOgogICAgIE1lZGlhTGlzdChDU1NTdHlsZVNo
ZWV0KiBwYXJlbnRTaGVldCwgYm9vbCBmYWxsYmFja1RvRGVzY3JpcHRpb24pOwpAQCAtODMsNyAr
ODMsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBub3RpZnlDaGFuZ2VkKCk7CiAKLSAgICBWZWN0
b3I8TWVkaWFRdWVyeSo+IG1fcXVlcmllczsKKyAgICBWZWN0b3I8Q1NTTWVkaWFRdWVyeSo+IG1f
cXVlcmllczsKICAgICBib29sIG1fZmFsbGJhY2s7IC8vIHRydWUgaWYgZmFpbGVkIG1lZGlhIHF1
ZXJ5IHBhcnNpbmcgc2hvdWxkIGZhbGxiYWNrIHRvIG1lZGlhIGRlc2NyaXB0aW9uIHBhcnNpbmcK
IH07CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL01lZGlhUXVlcnkuY3BwIGIvV2ViQ29yZS9j
c3MvTWVkaWFRdWVyeS5jcHAKaW5kZXggYjcxNzA2Yy4uYWEwMjUwZCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9jc3MvTWVkaWFRdWVyeS5jcHAKKysrIGIvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeS5jcHAK
QEAgLTEsOCArMSw1IEBACiAvKgotICogQ1NTIE1lZGlhIFF1ZXJ5Ci0gKgotICogQ29weXJpZ2h0
IChDKSAyMDA1LCAyMDA2IEtpbW1vIEtpbm51bmVuIDxraW1tby50Lmtpbm51bmVuQG5va2lhLmNv
bT4uCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0xMyw3ICsxMCw3IEBACiAgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCiAgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgogICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElT
JycgQU5EIEFOWQorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRF
UiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQogICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKICAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgogICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVS
LCBJTkMuIE9SCkBAIC0yMywxMDYgKzIwLDc2IEBACiAgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCiAgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKICAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJNZWRpYVF1ZXJ5LmgiCiAKLSNpbmNsdWRlICJN
ZWRpYVF1ZXJ5RXhwLmgiCi0jaW5jbHVkZSAiU3RyaW5nQnVpbGRlci5oIgotCi0jaW5jbHVkZSA8
YWxnb3JpdGhtPgorI2luY2x1ZGUgIk1lZGlhTGlzdC5oIgorI2luY2x1ZGUgIk1lZGlhUXVlcnlD
aGFuZ2VMaXN0ZW5lci5oIgorI2luY2x1ZGUgIk1lZGlhUXVlcnlFdmFsdWF0b3IuaCIKKyNpbmNs
dWRlICJNZWRpYVF1ZXJ5VmVjdG9yLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotLy8gaHR0
cDovL2Rldi53My5vcmcvY3Nzd2cvY3Nzb20vI3NlcmlhbGl6ZS1hLW1lZGlhLXF1ZXJ5Ci1TdHJp
bmcgTWVkaWFRdWVyeTo6c2VyaWFsaXplKCkgY29uc3QKK1Bhc3NSZWZQdHI8TWVkaWFRdWVyeT4g
TWVkaWFRdWVyeTo6Y3JlYXRlKFBhc3NSZWZQdHI8TWVkaWFRdWVyeVZlY3Rvcj4gdmVjdG9yLCBQ
YXNzUmVmUHRyPE1lZGlhTGlzdD4gbWVkaWEsIGJvb2wgbWF0Y2hlcykKIHsKLSAgICBTdHJpbmdC
dWlsZGVyIHJlc3VsdDsKLQotICAgIHN3aXRjaCAobV9yZXN0cmljdG9yKSB7Ci0gICAgY2FzZSBN
ZWRpYVF1ZXJ5OjpPbmx5OgotICAgICAgICByZXN1bHQuYXBwZW5kKCJvbmx5ICIpOwotICAgICAg
ICBicmVhazsKLSAgICBjYXNlIE1lZGlhUXVlcnk6Ok5vdDoKLSAgICAgICAgcmVzdWx0LmFwcGVu
ZCgibm90ICIpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIE1lZGlhUXVlcnk6Ok5vbmU6Ci0g
ICAgICAgIGJyZWFrOwotICAgIH0KLQotICAgIGlmIChtX2V4cHJlc3Npb25zLT5pc0VtcHR5KCkp
IHsKLSAgICAgICAgcmVzdWx0LmFwcGVuZChtX21lZGlhVHlwZSk7Ci0gICAgICAgIHJldHVybiBy
ZXN1bHQudG9TdHJpbmcoKTsKLSAgICB9Ci0KLSAgICBpZiAobV9tZWRpYVR5cGUgIT0gImFsbCIg
fHwgbV9yZXN0cmljdG9yICE9IE5vbmUpIHsKLSAgICAgICAgcmVzdWx0LmFwcGVuZChtX21lZGlh
VHlwZSk7Ci0gICAgICAgIHJlc3VsdC5hcHBlbmQoIiBhbmQgIik7Ci0gICAgfQotCi0gICAgcmVz
dWx0LmFwcGVuZChtX2V4cHJlc3Npb25zLT5hdCgwKS0+c2VyaWFsaXplKCkpOwotICAgIGZvciAo
c2l6ZV90IGkgPSAxOyBpIDwgbV9leHByZXNzaW9ucy0+c2l6ZSgpOyArK2kpIHsKLSAgICAgICAg
cmVzdWx0LmFwcGVuZCgiIGFuZCAiKTsKLSAgICAgICAgcmVzdWx0LmFwcGVuZChtX2V4cHJlc3Np
b25zLT5hdChpKS0+c2VyaWFsaXplKCkpOwotICAgIH0KLSAgICByZXR1cm4gcmVzdWx0LnRvU3Ry
aW5nKCk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZWRpYVF1ZXJ5KHZlY3RvciwgbWVkaWEs
IG1hdGNoZXMpKTsKIH0KIAotc3RhdGljIGJvb2wgZXhwcmVzc2lvbkNvbXBhcmUoY29uc3QgTWVk
aWFRdWVyeUV4cCogYSwgY29uc3QgTWVkaWFRdWVyeUV4cCogYikKK01lZGlhUXVlcnk6Ok1lZGlh
UXVlcnkoUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5VmVjdG9yPiB2ZWN0b3IsIFBhc3NSZWZQdHI8TWVk
aWFMaXN0PiBtZWRpYSwgYm9vbCBtYXRjaGVzKQorICAgIDogbV92ZWN0b3IodmVjdG9yKQorICAg
ICwgbV9tZWRpYShtZWRpYSkKKyAgICAsIG1fZXZhbFJvdW5kKG1fdmVjdG9yLT5ldmFsUm91bmQo
KSkKKyAgICAsIG1fY2hhbmdlUm91bmQobV9ldmFsUm91bmQgLSAxKQorICAgICwgbV9tYXRjaGVz
KG1hdGNoZXMpCiB7Ci0gICAgcmV0dXJuIGNvZGVQb2ludENvbXBhcmUoYS0+c2VyaWFsaXplKCks
IGItPnNlcmlhbGl6ZSgpKSA8IDA7CiB9CiAKLU1lZGlhUXVlcnk6Ok1lZGlhUXVlcnkoUmVzdHJp
Y3RvciByLCBjb25zdCBTdHJpbmcmIG1lZGlhVHlwZSwgUGFzc093blB0cjxWZWN0b3I8TWVkaWFR
dWVyeUV4cCo+ID4gZXhwcnMpCi0gICAgOiBtX3Jlc3RyaWN0b3IocikKLSAgICAsIG1fbWVkaWFU
eXBlKG1lZGlhVHlwZS5sb3dlcigpKQotICAgICwgbV9leHByZXNzaW9ucyhleHBycykKLSAgICAs
IG1faWdub3JlZChmYWxzZSkKK01lZGlhUXVlcnk6On5NZWRpYVF1ZXJ5KCkKIHsKLSAgICBpZiAo
IW1fZXhwcmVzc2lvbnMpIHsKLSAgICAgICAgbV9leHByZXNzaW9ucyA9IG5ldyBWZWN0b3I8TWVk
aWFRdWVyeUV4cCo+OwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgc3RkOjpzb3J0KG1f
ZXhwcmVzc2lvbnMtPmJlZ2luKCksIG1fZXhwcmVzc2lvbnMtPmVuZCgpLCBleHByZXNzaW9uQ29t
cGFyZSk7Ci0KLSAgICAvLyByZW1vdmUgYWxsIGR1cGxpY2F0ZWQgZXhwcmVzc2lvbnMKLSAgICBT
dHJpbmcga2V5OwotICAgIGZvciAoaW50IGkgPSBtX2V4cHJlc3Npb25zLT5zaXplKCkgLSAxOyBp
ID49IDA7IC0taSkgeworfQogCi0gICAgICAgIC8vIGlmIG5vdCBhbGwgb2YgdGhlIGV4cHJlc3Np
b25zIGlzIHZhbGlkIHRoZSBtZWRpYSBxdWVyeSBtdXN0IGJlIGlnbm9yZWQuCi0gICAgICAgIGlm
ICghbV9pZ25vcmVkKQotICAgICAgICAgICAgbV9pZ25vcmVkID0gIW1fZXhwcmVzc2lvbnMtPmF0
KGkpLT5pc1ZhbGlkKCk7CitTdHJpbmcgTWVkaWFRdWVyeTo6bWVkaWEoKSBjb25zdAoreworICAg
IHJldHVybiBtX21lZGlhLT5tZWRpYVRleHQoKTsKK30KIAotICAgICAgICBpZiAobV9leHByZXNz
aW9ucy0+YXQoaSktPnNlcmlhbGl6ZSgpID09IGtleSkgewotICAgICAgICAgICAgTWVkaWFRdWVy
eUV4cCogaXRlbSA9IG1fZXhwcmVzc2lvbnMtPmF0KGkpOwotICAgICAgICAgICAgbV9leHByZXNz
aW9ucy0+cmVtb3ZlKGkpOwotICAgICAgICAgICAgZGVsZXRlIGl0ZW07Ci0gICAgICAgIH0gZWxz
ZQotICAgICAgICAgICAga2V5ID0gbV9leHByZXNzaW9ucy0+YXQoaSktPnNlcmlhbGl6ZSgpOwot
ICAgIH0KK3ZvaWQgTWVkaWFRdWVyeTo6YWRkTGlzdGVuZXIoUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5
Q2hhbmdlTGlzdGVuZXI+IGxpc3RlbmVyKQoreworICAgIGludCBuZXdMaXN0ZW5lciA9IG1fdmVj
dG9yLT5hZGRMaXN0ZW5lcihsaXN0ZW5lciwgdGhpcyk7CisgICAgaWYgKG5ld0xpc3RlbmVyID4g
MCkKKyAgICAgICAgbV9saXN0ZW5lcnMuYXBwZW5kKG5ld0xpc3RlbmVyKTsKIH0KIAotTWVkaWFR
dWVyeTo6fk1lZGlhUXVlcnkoKQordm9pZCBNZWRpYVF1ZXJ5OjpyZW1vdmVMaXN0ZW5lcihQYXNz
UmVmUHRyPE1lZGlhUXVlcnlDaGFuZ2VMaXN0ZW5lcj4gbGlzdGVuZXIpCiB7Ci0gICAgZGVsZXRl
QWxsVmFsdWVzKCptX2V4cHJlc3Npb25zKTsKKyAgICBmb3IgKGludCBpID0gbV9saXN0ZW5lcnMu
c2l6ZSgpIC0gMTsgaSA+PSAwOyAtLWkpIHsKKyAgICAgICAgaWYgKG1fdmVjdG9yLT5yZW1vdmVM
aXN0ZW5lcihsaXN0ZW5lciwgbV9saXN0ZW5lcnNbaV0pKSB7CisgICAgICAgICAgICBtX2xpc3Rl
bmVycy5yZW1vdmUoaSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KIH0K
IAotLy8gaHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3Nzb20vI2NvbXBhcmUtbWVkaWEtcXVlcmll
cwotYm9vbCBNZWRpYVF1ZXJ5OjpvcGVyYXRvcj09KGNvbnN0IE1lZGlhUXVlcnkmIG90aGVyKSBj
b25zdAorYm9vbCBNZWRpYVF1ZXJ5OjpjaGFuZ2VkKCkgY29uc3QKIHsKLSAgICByZXR1cm4gY3Nz
VGV4dCgpID09IG90aGVyLmNzc1RleHQoKTsKKyAgICByZXR1cm4gbV92ZWN0b3ItPmV2YWxSb3Vu
ZCgpID09IG1fY2hhbmdlUm91bmQ7CiB9CiAKLS8vIGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nz
c29tLyNzZXJpYWxpemUtYS1saXN0LW9mLW1lZGlhLXF1ZXJpZXMKLVN0cmluZyBNZWRpYVF1ZXJ5
Ojpjc3NUZXh0KCkgY29uc3QKK3ZvaWQgTWVkaWFRdWVyeTo6ZXZhbHVhdGUoTWVkaWFRdWVyeUV2
YWx1YXRvciogZXZhbHVhdG9yKQogewotICAgIGlmIChtX3NlcmlhbGl6YXRpb25DYWNoZS5pc051
bGwoKSkKLSAgICAgICAgY29uc3RfY2FzdDxNZWRpYVF1ZXJ5Kj4odGhpcyktPm1fc2VyaWFsaXph
dGlvbkNhY2hlID0gc2VyaWFsaXplKCk7CisgICAgaWYgKG1fZXZhbFJvdW5kID09IG1fdmVjdG9y
LT5ldmFsUm91bmQoKSB8fCAhZXZhbHVhdG9yKQorICAgICAgICByZXR1cm47CisgICAgbV9ldmFs
Um91bmQgPSBtX3ZlY3Rvci0+ZXZhbFJvdW5kKCk7CiAKLSAgICByZXR1cm4gbV9zZXJpYWxpemF0
aW9uQ2FjaGU7CisgICAgYm9vbCBuZXdWYWx1ZSA9IGV2YWx1YXRvci0+ZXZhbChtX21lZGlhLmdl
dCgpKTsKKyAgICBpZiAobmV3VmFsdWUgIT0gbV9tYXRjaGVzKSB7CisgICAgICAgIG1fbWF0Y2hl
cyA9IG5ld1ZhbHVlOworICAgICAgICBtX2NoYW5nZVJvdW5kID0gbV9ldmFsUm91bmQ7CisgICAg
fQogfQogCi19IC8vbmFtZXNwYWNlCisKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL01lZGlh
UXVlcnkuaCBiL1dlYkNvcmUvY3NzL01lZGlhUXVlcnkuaAppbmRleCAzZWVhM2IyLi42MzBhN2E2
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5LmgKKysrIGIvV2ViQ29yZS9jc3Mv
TWVkaWFRdWVyeS5oCkBAIC0xLDggKzEsNSBAQAogLyoKLSAqIENTUyBNZWRpYSBRdWVyeQotICoK
LSAqIENvcHlyaWdodCAoQykgMjAwNiBLaW1tbyBLaW5udW5lbiA8a2ltbW8udC5raW5udW5lbkBu
b2tpYS5jb20+LgotICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jw
b3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMTMsNyArMTAsNyBAQAogICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQogICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KICAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1Ig
YGBBUyBJUycnIEFORCBBTlkKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
Q09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKICAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCiAgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKICAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBD
T01QVVRFUiwgSU5DLiBPUgpAQCAtMjMsNDYgKzIwLDUwIEBACiAgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCiAgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKICAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICov
CiAKICNpZm5kZWYgTWVkaWFRdWVyeV9oCiAjZGVmaW5lIE1lZGlhUXVlcnlfaAogCi0jaW5jbHVk
ZSAiUGxhdGZvcm1TdHJpbmcuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1
ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNs
dWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotI2luY2x1ZGUgPHd0
Zi90ZXh0L1N0cmluZ0hhc2guaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgTWVkaWFRdWVyeUV4cDsKIAotY2xhc3MgTWVkaWFR
dWVyeSA6IHB1YmxpYyBOb25jb3B5YWJsZSB7Ci1wdWJsaWM6Ci0gICAgZW51bSBSZXN0cmljdG9y
IHsKLSAgICAgICAgT25seSwgTm90LCBOb25lCi0gICAgfTsKK2NsYXNzIE1lZGlhTGlzdDsKK2Ns
YXNzIE1lZGlhUXVlcnlDaGFuZ2VMaXN0ZW5lcjsKK2NsYXNzIE1lZGlhUXVlcnlFdmFsdWF0b3I7
CitjbGFzcyBNZWRpYVF1ZXJ5VmVjdG9yOwogCi0gICAgTWVkaWFRdWVyeShSZXN0cmljdG9yLCBj
b25zdCBTdHJpbmcmIG1lZGlhVHlwZSwgUGFzc093blB0cjxWZWN0b3I8TWVkaWFRdWVyeUV4cCo+
ID4gZXhwcnMpOworY2xhc3MgTWVkaWFRdWVyeSA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhUXVl
cnk+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5PiBjcmVhdGUo
UGFzc1JlZlB0cjxNZWRpYVF1ZXJ5VmVjdG9yPiwgUGFzc1JlZlB0cjxNZWRpYUxpc3Q+LCBib29s
IG1hdGNoZXMpOwogICAgIH5NZWRpYVF1ZXJ5KCk7CiAKLSAgICBSZXN0cmljdG9yIHJlc3RyaWN0
b3IoKSBjb25zdCB7IHJldHVybiBtX3Jlc3RyaWN0b3I7IH0KLSAgICBjb25zdCBWZWN0b3I8TWVk
aWFRdWVyeUV4cCo+KiBleHByZXNzaW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fZXhwcmVzc2lvbnMu
Z2V0KCk7IH0KLSAgICBTdHJpbmcgbWVkaWFUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVR5
cGU7IH0KLSAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgTWVkaWFRdWVyeSYgb3RoZXIpIGNvbnN0
OwotICAgIFN0cmluZyBjc3NUZXh0KCkgY29uc3Q7Ci0gICAgYm9vbCBpZ25vcmVkKCkgY29uc3Qg
eyByZXR1cm4gbV9pZ25vcmVkOyB9CisgICAgU3RyaW5nIG1lZGlhKCkgY29uc3Q7CisgICAgYm9v
bCBtYXRjaGVzKCkgY29uc3QgeyByZXR1cm4gbV9tYXRjaGVzOyB9CisKKyAgICB2b2lkIGFkZExp
c3RlbmVyKFBhc3NSZWZQdHI8TWVkaWFRdWVyeUNoYW5nZUxpc3RlbmVyPik7CisgICAgdm9pZCBy
ZW1vdmVMaXN0ZW5lcihQYXNzUmVmUHRyPE1lZGlhUXVlcnlDaGFuZ2VMaXN0ZW5lcj4pOworCisg
ICAgdm9pZCBldmFsdWF0ZShNZWRpYVF1ZXJ5RXZhbHVhdG9yKik7CisgICAgYm9vbCBjaGFuZ2Vk
KCkgY29uc3Q7CiAKLSBwcml2YXRlOgotICAgIFJlc3RyaWN0b3IgbV9yZXN0cmljdG9yOwotICAg
IFN0cmluZyBtX21lZGlhVHlwZTsKLSAgICBPd25QdHI8VmVjdG9yPE1lZGlhUXVlcnlFeHAqPiA+
IG1fZXhwcmVzc2lvbnM7Ci0gICAgYm9vbCBtX2lnbm9yZWQ7Ci0gICAgU3RyaW5nIG1fc2VyaWFs
aXphdGlvbkNhY2hlOworcHJpdmF0ZToKKyAgICBNZWRpYVF1ZXJ5KFBhc3NSZWZQdHI8TWVkaWFR
dWVyeVZlY3Rvcj4sIFBhc3NSZWZQdHI8TWVkaWFMaXN0PiwgYm9vbCBtYXRjaGVzKTsKIAotICAg
IFN0cmluZyBzZXJpYWxpemUoKSBjb25zdDsKKyAgICBSZWZQdHI8TWVkaWFRdWVyeVZlY3Rvcj4g
bV92ZWN0b3I7CisgICAgUmVmUHRyPE1lZGlhTGlzdD4gbV9tZWRpYTsKKyAgICBpbnQgbV9ldmFs
Um91bmQ7CisgICAgaW50IG1fY2hhbmdlUm91bmQ7CisgICAgaW50IG1fbWF0Y2hlczsKKyAgICBW
ZWN0b3I8aW50PiBtX2xpc3RlbmVyczsKIH07CiAKLX0gLy8gbmFtZXNwYWNlCit9CiAKLSNlbmRp
ZgorI2VuZGlmIC8vIE1lZGlhUXVlcnlfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvTWVkaWFR
dWVyeS5pZGwgYi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi4xOTNkNmU1Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9jc3Mv
TWVkaWFRdWVyeS5pZGwKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitt
b2R1bGUgdmlldyB7CisgICAgaW50ZXJmYWNlIE1lZGlhUXVlcnkgeworICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG1lZGlhOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
Ym9vbGVhbiBtYXRjaGVzOworICAgICAgICB2b2lkIGFkZExpc3RlbmVyKGluIFtDYWxsYmFja10g
TWVkaWFRdWVyeUNoYW5nZUxpc3RlbmVyIGxpc3RlbmVyKTsKKyAgICAgICAgdm9pZCByZW1vdmVM
aXN0ZW5lcihpbiBbQ2FsbGJhY2tdIE1lZGlhUXVlcnlDaGFuZ2VMaXN0ZW5lciBsaXN0ZW5lcik7
CisgICAgfTsKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlDaGFuZ2VMaXN0
ZW5lci5oIGIvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUNoYW5nZUxpc3RlbmVyLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTk4YzQ5ZAotLS0gL2Rldi9udWxsCisrKyBiL1dl
YkNvcmUvY3NzL01lZGlhUXVlcnlDaGFuZ2VMaXN0ZW5lci5oCkBAIC0wLDAgKzEsNDMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNZWRpYVF1ZXJ5Q2hhbmdlTGlzdGVuZXJfaAor
I2RlZmluZSBNZWRpYVF1ZXJ5Q2hhbmdlTGlzdGVuZXJfaAorCisjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBNZWRpYVF1ZXJ5OworCitj
bGFzcyBNZWRpYVF1ZXJ5Q2hhbmdlTGlzdGVuZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVF1
ZXJ5Q2hhbmdlTGlzdGVuZXI+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5NZWRpYVF1ZXJ5Q2hh
bmdlTGlzdGVuZXIoKSB7fQorICAgIHZpcnR1YWwgdm9pZCBxdWVyeUNoYW5nZWQoTWVkaWFRdWVy
eSopID0gMDsKK307CisKK30KKworI2VuZGlmIC8vIE1lZGlhUXVlcnlDaGFuZ2VMaXN0ZW5lcl9o
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5Q2hhbmdlTGlzdGVuZXIuaWRsIGIv
V2ViQ29yZS9jc3MvTWVkaWFRdWVyeUNoYW5nZUxpc3RlbmVyLmlkbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5kOWUwZjQzCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9j
c3MvTWVkaWFRdWVyeUNoYW5nZUxpc3RlbmVyLmlkbApAQCAtMCwwICsxLDMwIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFy
eSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKK21vZHVsZSB2aWV3IHsKKyAgICBpbnRlcmZhY2UgW0NhbGxiYWNrXSBN
ZWRpYVF1ZXJ5Q2hhbmdlTGlzdGVuZXIgeworICAgICAgICB2b2lkIHF1ZXJ5Q2hhbmdlZChpbiBN
ZWRpYVF1ZXJ5IHF1ZXJ5KTsKKyAgICB9OworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvTWVk
aWFRdWVyeUV2YWx1YXRvci5jcHAgYi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNw
cAppbmRleCAwYjU1MDdlLi45Yjk3NzAxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9NZWRpYVF1
ZXJ5RXZhbHVhdG9yLmNwcAorKysgYi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNw
cApAQCAtMjgsMTggKzI4LDE4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiTWVk
aWFRdWVyeUV2YWx1YXRvci5oIgogCi0jaW5jbHVkZSAiQ2hyb21lLmgiCi0jaW5jbHVkZSAiQ2hy
b21lQ2xpZW50LmgiCisjaW5jbHVkZSAiQ1NTTWVkaWFRdWVyeS5oIgogI2luY2x1ZGUgIkNTU1By
aW1pdGl2ZVZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVTZWxlY3Rvci5oIgogI2luY2x1ZGUg
IkNTU1ZhbHVlTGlzdC5oIgorI2luY2x1ZGUgIkNocm9tZS5oIgorI2luY2x1ZGUgIkNocm9tZUNs
aWVudC5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5j
bHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIk1lZGlh
RmVhdHVyZU5hbWVzLmgiCiAjaW5jbHVkZSAiTWVkaWFMaXN0LmgiCi0jaW5jbHVkZSAiTWVkaWFR
dWVyeS5oIgogI2luY2x1ZGUgIk1lZGlhUXVlcnlFeHAuaCIKICNpbmNsdWRlICJOb2RlUmVuZGVy
U3R5bGUuaCIKICNpbmNsdWRlICJQYWdlLmgiCkBAIC0xMjUsOSArMTI1LDkgQEAgYm9vbCBNZWRp
YVF1ZXJ5RXZhbHVhdG9yOjptZWRpYVR5cGVNYXRjaFNwZWNpZmljKGNvbnN0IGNoYXIqIG1lZGlh
VHlwZVRvTWF0Y2gpIGMKICAgICByZXR1cm4gZXF1YWxJZ25vcmluZ0Nhc2UobWVkaWFUeXBlVG9N
YXRjaCwgbV9tZWRpYVR5cGUpOwogfQogCi1zdGF0aWMgYm9vbCBhcHBseVJlc3RyaWN0b3IoTWVk
aWFRdWVyeTo6UmVzdHJpY3RvciByLCBib29sIHZhbHVlKQorc3RhdGljIGJvb2wgYXBwbHlSZXN0
cmljdG9yKENTU01lZGlhUXVlcnk6OlJlc3RyaWN0b3IgciwgYm9vbCB2YWx1ZSkKIHsKLSAgICBy
ZXR1cm4gciA9PSBNZWRpYVF1ZXJ5OjpOb3QgPyAhdmFsdWUgOiB2YWx1ZTsKKyAgICByZXR1cm4g
ciA9PSBDU1NNZWRpYVF1ZXJ5OjpOb3QgPyAhdmFsdWUgOiB2YWx1ZTsKIH0KIAogYm9vbCBNZWRp
YVF1ZXJ5RXZhbHVhdG9yOjpldmFsKGNvbnN0IE1lZGlhTGlzdCogbWVkaWFMaXN0LCBDU1NTdHls
ZVNlbGVjdG9yKiBzdHlsZVNlbGVjdG9yKSBjb25zdApAQCAtMTM1LDE0ICsxMzUsMTQgQEAgYm9v
bCBNZWRpYVF1ZXJ5RXZhbHVhdG9yOjpldmFsKGNvbnN0IE1lZGlhTGlzdCogbWVkaWFMaXN0LCBD
U1NTdHlsZVNlbGVjdG9yKiBzdHkKICAgICBpZiAoIW1lZGlhTGlzdCkKICAgICAgICAgcmV0dXJu
IHRydWU7CiAKLSAgICBjb25zdCBWZWN0b3I8TWVkaWFRdWVyeSo+JiBxdWVyaWVzID0gbWVkaWFM
aXN0LT5tZWRpYVF1ZXJpZXMoKTsKKyAgICBjb25zdCBWZWN0b3I8Q1NTTWVkaWFRdWVyeSo+JiBx
dWVyaWVzID0gbWVkaWFMaXN0LT5tZWRpYVF1ZXJpZXMoKTsKICAgICBpZiAoIXF1ZXJpZXMuc2l6
ZSgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gZW1wdHkgcXVlcnkgbGlzdCBldmFsdWF0ZXMg
dG8gdHJ1ZQogCiAgICAgLy8gaXRlcmF0ZSBvdmVyIHF1ZXJpZXMsIHN0b3AgaWYgYW55IG9mIHRo
ZW0gZXZhbCB0byB0cnVlIChPUiBzZW1hbnRpY3MpCiAgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsK
ICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHF1ZXJpZXMuc2l6ZSgpICYmICFyZXN1bHQ7ICsr
aSkgewotICAgICAgICBNZWRpYVF1ZXJ5KiBxdWVyeSA9IHF1ZXJpZXMuYXQoaSk7CisgICAgICAg
IENTU01lZGlhUXVlcnkqIHF1ZXJ5ID0gcXVlcmllcy5hdChpKTsKIAogICAgICAgICBpZiAocXVl
cnktPmlnbm9yZWQoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9jc3MvTWVkaWFRdWVyeVZlY3Rvci5jcHAgYi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5VmVjdG9y
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOWE5N2UyCi0tLSAvZGV2
L251bGwKKysrIGIvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeVZlY3Rvci5jcHAKQEAgLTAsMCArMSwx
NTAgQEAKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRpYVF1ZXJ5VmVjdG9yLmgi
CisKKyNpbmNsdWRlICJDU1NTdHlsZVNlbGVjdG9yLmgiCisjaW5jbHVkZSAiRWxlbWVudC5oIgor
I2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAiTWVk
aWFMaXN0LmgiCisjaW5jbHVkZSAiTWVkaWFRdWVyeS5oIgorI2luY2x1ZGUgIk1lZGlhUXVlcnlD
aGFuZ2VMaXN0ZW5lci5oIgorI2luY2x1ZGUgIk1lZGlhUXVlcnlFdmFsdWF0b3IuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMgaW50IGdldE5ld0lkKCkKK3sKKyAgICBzdGF0aWMg
aW50IGlkID0gMDsKKyAgICByZXR1cm4gKytpZDsKK30KKworTWVkaWFRdWVyeUxpc3RlbmVyOjpN
ZWRpYVF1ZXJ5TGlzdGVuZXIoUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5Q2hhbmdlTGlzdGVuZXI+IGxp
c3RlbmVyLCBQYXNzUmVmUHRyPE1lZGlhUXVlcnk+IHF1ZXJ5KQorICAgIDogbV9pZChnZXROZXdJ
ZCgpKQorICAgICwgbV9saXN0ZW5lcihsaXN0ZW5lcikKKyAgICAsIG1fcXVlcnkocXVlcnkpCit7
Cit9CisKK01lZGlhUXVlcnlMaXN0ZW5lcjo6fk1lZGlhUXVlcnlMaXN0ZW5lcigpCit7Cit9CisK
K2Jvb2wgTWVkaWFRdWVyeUxpc3RlbmVyOjppc0xpc3RlbmVyRXF1YWwoTWVkaWFRdWVyeUNoYW5n
ZUxpc3RlbmVyKikKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgTWVkaWFRdWVyeUxp
c3RlbmVyOjpldmFsdWF0ZShNZWRpYVF1ZXJ5RXZhbHVhdG9yKiBldmFsdWF0b3IpCit7CisgICAg
bV9xdWVyeS0+ZXZhbHVhdGUoZXZhbHVhdG9yKTsKKyAgICBpZiAobV9xdWVyeS0+Y2hhbmdlZCgp
KQorICAgICAgICBtX2xpc3RlbmVyLT5xdWVyeUNoYW5nZWQobV9xdWVyeS5nZXQoKSk7Cit9CisK
K01lZGlhUXVlcnlWZWN0b3I6Ok1lZGlhUXVlcnlWZWN0b3IoRnJhbWUqIGZyYW1lKQorICAgIDog
bV9mcmFtZShmcmFtZSkKKyAgICAsIG1fZXZhbFJvdW5kKDApCisgICAgLCBtX3Rlcm1pbmF0ZWQo
ZmFsc2UpCit7Cit9CisKK01lZGlhUXVlcnlWZWN0b3I6On5NZWRpYVF1ZXJ5VmVjdG9yKCkKK3sK
K30KKwordm9pZCBNZWRpYVF1ZXJ5VmVjdG9yOjp0ZXJtaW5hdGUoKQoreworICAgIG1fdGVybWlu
YXRlZCA9IHRydWU7CisgICAgZGVsZXRlQWxsVmFsdWVzKG1fbGlzdGVuZXJzKTsKKyAgICBtX2xp
c3RlbmVycy5jbGVhcigpOworfQorCitTdHJpbmcgTWVkaWFRdWVyeVZlY3Rvcjo6bWVkaWFUeXBl
KCkgY29uc3QKK3sKKyAgICBGcmFtZVZpZXcqIHZpZXcgPSBtX2ZyYW1lID8gbV9mcmFtZS0+dmll
dygpIDogMDsKKyAgICBpZiAodmlldykKKyAgICAgICAgcmV0dXJuIHZpZXctPm1lZGlhVHlwZSgp
OworCisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitQYXNzT3duUHRyPE1lZGlhUXVlcnlFdmFs
dWF0b3I+IE1lZGlhUXVlcnlWZWN0b3I6OnByZXBhcmVFdmFsdWF0b3IoKSBjb25zdAoreworICAg
IGlmICghbV9mcmFtZSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBEb2N1bWVudCogZG9jdW1l
bnQgPSBtX2ZyYW1lLT5kb2N1bWVudCgpOworICAgIGlmICghZG9jdW1lbnQpCisgICAgICAgIHJl
dHVybiAwOworCisgICAgRWxlbWVudCogZG9jdW1lbnRFbGVtZW50ID0gZG9jdW1lbnQtPmRvY3Vt
ZW50RWxlbWVudCgpOworICAgIGlmICghZG9jdW1lbnRFbGVtZW50KQorICAgICAgICByZXR1cm4g
MDsKKworICAgIENTU1N0eWxlU2VsZWN0b3IqIHN0eWxlU2VsZWN0b3IgPSBkb2N1bWVudC0+c3R5
bGVTZWxlY3RvcigpOworICAgIGlmICghc3R5bGVTZWxlY3RvcikKKyAgICAgICAgcmV0dXJuIDA7
CisKKyAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IHJvb3RTdHlsZSA9IHN0eWxlU2VsZWN0b3ItPnN0
eWxlRm9yRWxlbWVudChkb2N1bWVudEVsZW1lbnQsIDAgLypkZWZhdWx0UGFyZW50Ki8sIGZhbHNl
IC8qYWxsb3dTaGFyaW5nKi8sIHRydWUgLypyZXNvbHZlRm9yUm9vdERlZmF1bHQqLyk7CisKKyAg
ICByZXR1cm4gbmV3IE1lZGlhUXVlcnlFdmFsdWF0b3IobWVkaWFUeXBlKCksIG1fZnJhbWUsIHJv
b3RTdHlsZS5nZXQoKSk7Cit9CisKK1Bhc3NSZWZQdHI8TWVkaWFRdWVyeT4gTWVkaWFRdWVyeVZl
Y3Rvcjo6bWF0Y2hNZWRpYShjb25zdCBTdHJpbmcmIHF1ZXJ5KQoreworICAgIGlmIChtX3Rlcm1p
bmF0ZWQpCisgICAgICAgIHJldHVybiAwOworCisgICAgUmVmUHRyPE1lZGlhTGlzdD4gbWVkaWEg
PSBNZWRpYUxpc3Q6OmNyZWF0ZSgpOworICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIG1l
ZGlhLT5zZXRNZWRpYVRleHQocXVlcnksIGVjKTsKKyAgICBpZiAoZWMpCisgICAgICAgIHJldHVy
biAwOworCisgICAgT3duUHRyPE1lZGlhUXVlcnlFdmFsdWF0b3I+IGV2YWx1YXRvcihwcmVwYXJl
RXZhbHVhdG9yKCkpOworICAgIGJvb2wgbWF0Y2hlcyA9IGV2YWx1YXRvciAmJiBldmFsdWF0b3It
PmV2YWwobWVkaWEuZ2V0KCkpOworCisgICAgcmV0dXJuIE1lZGlhUXVlcnk6OmNyZWF0ZSh0aGlz
LCBtZWRpYSwgbWF0Y2hlcyk7Cit9CisKK2ludCBNZWRpYVF1ZXJ5VmVjdG9yOjphZGRMaXN0ZW5l
cihQYXNzUmVmUHRyPE1lZGlhUXVlcnlDaGFuZ2VMaXN0ZW5lcj4gbGlzdGVuZXIsIFBhc3NSZWZQ
dHI8TWVkaWFRdWVyeT4gcXVlcnkpCit7CisgICAgaWYgKG1fdGVybWluYXRlZCkKKyAgICAgICAg
cmV0dXJuIDA7CisKKyAgICBtX2xpc3RlbmVycy5hcHBlbmQobmV3IE1lZGlhUXVlcnlMaXN0ZW5l
cihsaXN0ZW5lciwgcXVlcnkpKTsKKyAgICByZXR1cm4gbV9saXN0ZW5lcnNbbV9saXN0ZW5lcnMu
c2l6ZSgpIC0gMV0tPmlkKCk7Cit9CisKK2Jvb2wgTWVkaWFRdWVyeVZlY3Rvcjo6bGlzdGVuZXJD
b21wYXJlKGNvbnN0IE1lZGlhUXVlcnlMaXN0ZW5lciogbGlzdGVuZXIsIGludCBpZCkKK3sKKyAg
ICByZXR1cm4gbGlzdGVuZXItPmlkKCkgLSBpZCA8IDA7Cit9CisKK2Jvb2wgTWVkaWFRdWVyeVZl
Y3Rvcjo6cmVtb3ZlTGlzdGVuZXIoUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5Q2hhbmdlTGlzdGVuZXI+
IGxpc3RlbmVyLCBpbnQgaWQpCit7CisgICAgaWYgKG1fdGVybWluYXRlZCkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgVmVjdG9yPE1lZGlhUXVlcnlMaXN0ZW5lcio+OjppdGVyYXRvciBp
dGVyID0gc3RkOjpsb3dlcl9ib3VuZChtX2xpc3RlbmVycy5iZWdpbigpLCBtX2xpc3RlbmVycy5l
bmQoKSwgaWQsIGxpc3RlbmVyQ29tcGFyZSk7CisgICAgaWYgKGl0ZXIgPT0gbV9saXN0ZW5lcnMu
ZW5kKCkgfHwgISgqaXRlciktPmlzTGlzdGVuZXJFcXVhbChsaXN0ZW5lci5nZXQoKSkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICBkZWxldGUgKml0ZXI7CisgICAgbV9saXN0ZW5lcnMucmVt
b3ZlKGl0ZXIgLSBtX2xpc3RlbmVycy5kYXRhKCkpOworICAgIHJldHVybiB0cnVlOworfQorCit2
b2lkIE1lZGlhUXVlcnlWZWN0b3I6OmV2YWx1YXRlKCkKK3sKKyAgICBBU1NFUlQoIW1fdGVybWlu
YXRlZCk7CisKKyAgICArK21fZXZhbFJvdW5kOworICAgIE93blB0cjxNZWRpYVF1ZXJ5RXZhbHVh
dG9yPiBldmFsdWF0b3IgPSBwcmVwYXJlRXZhbHVhdG9yKCk7CisgICAgaWYgKCFldmFsdWF0b3Ip
CisgICAgICAgIHJldHVybjsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fbGlzdGVuZXJz
LnNpemUoKTsgKytpKQorICAgICAgICBtX2xpc3RlbmVyc1tpXS0+ZXZhbHVhdGUoZXZhbHVhdG9y
LmdldCgpKTsKK30KKworfQorCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5VmVj
dG9yLmggYi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5VmVjdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uMjk1NGQ5NAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvY3Nz
L01lZGlhUXVlcnlWZWN0b3IuaApAQCAtMCwwICsxLDU3IEBACisjaWZuZGVmIE1lZGlhUXVlcnlW
ZWN0b3JfaAorI2RlZmluZSBNZWRpYVF1ZXJ5VmVjdG9yX2gKKworI2luY2x1ZGUgPHd0Zi9QYXNz
UmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgRnJhbWU7CitjbGFzcyBNZWRpYVF1ZXJ5OworY2xhc3MgTWVkaWFRdWVy
eUNoYW5nZUxpc3RlbmVyOworY2xhc3MgTWVkaWFRdWVyeUV2YWx1YXRvcjsKKworY2xhc3MgTWVk
aWFRdWVyeUxpc3RlbmVyIHsKK3B1YmxpYzoKKyAgICBNZWRpYVF1ZXJ5TGlzdGVuZXIoUGFzc1Jl
ZlB0cjxNZWRpYVF1ZXJ5Q2hhbmdlTGlzdGVuZXI+LCBQYXNzUmVmUHRyPE1lZGlhUXVlcnk+KTsK
KyAgICB+TWVkaWFRdWVyeUxpc3RlbmVyKCk7CisKKyAgICBib29sIGlzTGlzdGVuZXJFcXVhbChN
ZWRpYVF1ZXJ5Q2hhbmdlTGlzdGVuZXIqKTsKKyAgICBpbnQgaWQoKSBjb25zdCB7IHJldHVybiBt
X2lkOyB9CisgICAgdm9pZCBldmFsdWF0ZShNZWRpYVF1ZXJ5RXZhbHVhdG9yKik7CisKK3ByaXZh
dGU6CisgICAgaW50IG1faWQ7CisgICAgUmVmUHRyPE1lZGlhUXVlcnlDaGFuZ2VMaXN0ZW5lcj4g
bV9saXN0ZW5lcjsKKyAgICBSZWZQdHI8TWVkaWFRdWVyeT4gbV9xdWVyeTsKK307CisKK2NsYXNz
IE1lZGlhUXVlcnlWZWN0b3IgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVF1ZXJ5VmVjdG9yPiB7
CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFRdWVyeVZlY3Rvcj4gY3JlYXRl
KEZyYW1lKiBmcmFtZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IE1lZGlhUXVlcnlWZWN0b3IoZnJh
bWUpKTsgfQorICAgIH5NZWRpYVF1ZXJ5VmVjdG9yKCk7CisgICAgdm9pZCB0ZXJtaW5hdGUoKTsK
KworICAgIGludCBhZGRMaXN0ZW5lcihQYXNzUmVmUHRyPE1lZGlhUXVlcnlDaGFuZ2VMaXN0ZW5l
cj4sIFBhc3NSZWZQdHI8TWVkaWFRdWVyeT4pOworICAgIGJvb2wgcmVtb3ZlTGlzdGVuZXIoUGFz
c1JlZlB0cjxNZWRpYVF1ZXJ5Q2hhbmdlTGlzdGVuZXI+LCBpbnQgaWQpOworCisgICAgUGFzc1Jl
ZlB0cjxNZWRpYVF1ZXJ5PiBtYXRjaE1lZGlhKGNvbnN0IFN0cmluZyYpOworICAgIGludCBldmFs
Um91bmQoKSBjb25zdCB7IHJldHVybiBtX2V2YWxSb3VuZDsgfQorICAgIHZvaWQgZXZhbHVhdGUo
KTsKK3ByaXZhdGU6CisgICAgTWVkaWFRdWVyeVZlY3RvcihGcmFtZSopOworICAgIFBhc3NPd25Q
dHI8TWVkaWFRdWVyeUV2YWx1YXRvcj4gcHJlcGFyZUV2YWx1YXRvcigpIGNvbnN0OworICAgIFN0
cmluZyBtZWRpYVR5cGUoKSBjb25zdDsKKyAgICBzdGF0aWMgYm9vbCBsaXN0ZW5lckNvbXBhcmUo
Y29uc3QgTWVkaWFRdWVyeUxpc3RlbmVyKiBsaXN0ZW5lciwgaW50IGlkKTsKKworICAgIEZyYW1l
KiBtX2ZyYW1lOworICAgIFZlY3RvcjxNZWRpYVF1ZXJ5TGlzdGVuZXIqPiBtX2xpc3RlbmVyczsK
KyAgICBpbnQgbV9ldmFsUm91bmQ7CisgICAgYm9vbCBtX3Rlcm1pbmF0ZWQ7Cit9OworCit9CisK
KyNlbmRpZiAvLyBNZWRpYVF1ZXJ5VmVjdG9yX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCAwNzU3ODFjLi4wOTYw
ZmFlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCkBAIC0yNzQzLDYgKzI3NDMsOSBAQCB2b2lkIERvY3VtZW50Ojp1cGRh
dGVTdHlsZVNlbGVjdG9yKCkKICAgICAgICAgaWYgKHZpZXcoKSkKICAgICAgICAgICAgIHZpZXco
KS0+c2NoZWR1bGVSZWxheW91dCgpOwogICAgIH0KKworICAgIGlmIChkb21XaW5kb3coKSkKKyAg
ICAgICAgZG9tV2luZG93KCktPnN0eWxlQ2hhbmdlZCgpOwogfQogCiB2b2lkIERvY3VtZW50Ojph
ZGRTdHlsZVNoZWV0Q2FuZGlkYXRlTm9kZShOb2RlKiBub2RlLCBib29sIGNyZWF0ZWRCeVBhcnNl
cikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5jcHAKaW5kZXggYWY0M2E1NS4uNmNkNzI3MSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAg
LTY0LDcgKzY0LDggQEAKICNpbmNsdWRlICJJbnNwZWN0b3JDb250cm9sbGVyLmgiCiAjaW5jbHVk
ZSAiSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oIgogI2luY2x1ZGUgIkxvY2F0aW9uLmgiCi0jaW5j
bHVkZSAiU3R5bGVNZWRpYS5oIgorI2luY2x1ZGUgIk1lZGlhUXVlcnkuaCIKKyNpbmNsdWRlICJN
ZWRpYVF1ZXJ5VmVjdG9yLmgiCiAjaW5jbHVkZSAiTWVzc2FnZUV2ZW50LmgiCiAjaW5jbHVkZSAi
TmF2aWdhdG9yLmgiCiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uQ2VudGVyLmgiCkBAIC04MCw2ICs4
MSw3IEBACiAjaW5jbHVkZSAiU3RvcmFnZS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VBcmVhLmgiCiAj
aW5jbHVkZSAiU3RvcmFnZU5hbWVzcGFjZS5oIgorI2luY2x1ZGUgIlN0eWxlTWVkaWEuaCIKICNp
bmNsdWRlICJTdWRkZW5UZXJtaW5hdGlvbi5oIgogI2luY2x1ZGUgIldlYktpdFBvaW50LmgiCiAj
aW5jbHVkZSA8YWxnb3JpdGhtPgpAQCAtMzkwLDYgKzM5Miw5IEBAIERPTVdpbmRvdzo6fkRPTVdp
bmRvdygpCiAKICAgICByZW1vdmVBbGxVbmxvYWRFdmVudExpc3RlbmVycyh0aGlzKTsKICAgICBy
ZW1vdmVBbGxCZWZvcmVVbmxvYWRFdmVudExpc3RlbmVycyh0aGlzKTsKKworICAgIGlmIChtX21l
ZGlhUXVlcmllcykKKyAgICAgICAgbV9tZWRpYVF1ZXJpZXMtPnRlcm1pbmF0ZSgpOwogfQogCiBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBET01XaW5kb3c6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSBjb25zdApAQCAtMTU2NSw0ICsxNTcwLDE3IEBAIEV2ZW50VGFyZ2V0RGF0YSogRE9NV2luZG93
OjplbnN1cmVFdmVudFRhcmdldERhdGEoKQogICAgIHJldHVybiAmbV9ldmVudFRhcmdldERhdGE7
CiB9CiAKK1Bhc3NSZWZQdHI8TWVkaWFRdWVyeT4gRE9NV2luZG93OjptYXRjaE1lZGlhKGNvbnN0
IFN0cmluZyYgbWVkaWEpCit7CisgICAgaWYgKCFtX21lZGlhUXVlcmllcykKKyAgICAgICAgbV9t
ZWRpYVF1ZXJpZXMgPSBNZWRpYVF1ZXJ5VmVjdG9yOjpjcmVhdGUobV9mcmFtZSk7CisgICAgcmV0
dXJuIG1fbWVkaWFRdWVyaWVzLT5tYXRjaE1lZGlhKG1lZGlhKTsKK30KKwordm9pZCBET01XaW5k
b3c6OnN0eWxlQ2hhbmdlZCgpCit7CisgICAgaWYgKG1fbWVkaWFRdWVyaWVzKQorICAgICAgICBt
X21lZGlhUXVlcmllcy0+ZXZhbHVhdGUoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oIGIvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5oCmluZGV4IDhkNTdkY2MuLjQ4MzI4MTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9E
T01XaW5kb3cuaAorKysgYi9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKQEAgLTU4LDYgKzU4LDgg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ7
CiAgICAgY2xhc3MgTG9jYXRpb247CiAgICAgY2xhc3MgU3R5bGVNZWRpYTsKKyAgICBjbGFzcyBN
ZWRpYVF1ZXJ5OworICAgIGNsYXNzIE1lZGlhUXVlcnlWZWN0b3I7CiAgICAgY2xhc3MgTmF2aWdh
dG9yOwogICAgIGNsYXNzIE5vZGU7CiAgICAgY2xhc3MgTm90aWZpY2F0aW9uQ2VudGVyOwpAQCAt
OTUsNiArOTcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgdm9pZCBjbGVhcigp
OwogCisgICAgICAgIFBhc3NSZWZQdHI8TWVkaWFRdWVyeT4gbWF0Y2hNZWRpYShjb25zdCBTdHJp
bmcmKTsKKyAgICAgICAgdm9pZCBzdHlsZUNoYW5nZWQoKTsKKwogI2lmIEVOQUJMRShPUklFTlRB
VElPTl9FVkVOVFMpCiAgICAgICAgIC8vIFRoaXMgaXMgdGhlIGludGVyZmFjZSBvcmllbnRhdGlv
biBpbiBkZWdyZWVzLiBTb21lIGV4YW1wbGVzIGFyZToKICAgICAgICAgLy8gIDAgaXMgc3RyYWln
aHQgdXA7IC05MCBpcyB3aGVuIHRoZSBkZXZpY2UgaXMgcm90YXRlZCA5MCBjbG9ja3dpc2U7CkBA
IC00MzMsNiArNDM4LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIFN0cmluZyBt
X3N0YXR1czsKICAgICAgICAgU3RyaW5nIG1fZGVmYXVsdFN0YXR1czsKKworICAgICAgICBSZWZQ
dHI8TWVkaWFRdWVyeVZlY3Rvcj4gbV9tZWRpYVF1ZXJpZXM7CiAgICAgfTsKIAogICAgIGlubGlu
ZSBTdHJpbmcgRE9NV2luZG93OjpzdGF0dXMoKSBjb25zdApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5pZGwgYi9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAppbmRleCAxOWJj
YmVlLi5kM2JlNThmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAorKysg
Yi9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbApAQCAtMzEwLDYgKzMxMCw4IEBAIG1vZHVsZSB3
aW5kb3cgewogICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPURFVklDRV9PUklFTlRBVElP
TixFbmFibGVkQXRSdW50aW1lXSBEZXZpY2VPcmllbnRhdGlvbkV2ZW50Q29uc3RydWN0b3IgRGV2
aWNlT3JpZW50YXRpb25FdmVudDsKICAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1ERVZJ
Q0VfT1JJRU5UQVRJT04sRW5hYmxlZEF0UnVudGltZV0gRXZlbnRMaXN0ZW5lciBvbmRldmljZW9y
aWVudGF0aW9uOwogCisgICAgICAgIE1lZGlhUXVlcnkgbWF0Y2hNZWRpYShpbiBET01TdHJpbmcg
cXVlcnkpOworCiAgICAgICAgIC8vIEV2ZW50VGFyZ2V0IGludGVyZmFjZQogICAgICAgICBbQ3Vz
dG9tXSB2b2lkIGFkZEV2ZW50TGlzdGVuZXIoaW4gRE9NU3RyaW5nIHR5cGUsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIsCi0t
IAoxLjYuMy4zCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66502</attachid>
            <date>2010-09-03 08:39:12 -0700</date>
            <delta_ts>2010-09-08 20:14:15 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-Media-listeners.patch</filename>
            <type>text/plain</type>
            <size>81501</size>
            <attacher name="Luiz Agostini">luiz</attacher>
            
              <data encoding="base64">RnJvbSA2NWU1Yjg0NGM0NjYyNDRkOWEzMDViM2NjN2E1N2RhZGE2NzY5ZmYwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWl6IEFnb3N0aW5pIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IEZyaSwgMyBTZXAgMjAxMCAxMTozMDo0MSAtMDMwMApTdWJqZWN0OiBbUEFU
Q0hdIE1lZGlhIGxpc3RlbmVycwogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTM3MjA1CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCldlYkNvcmU6CgpBcyBzcGVj
aWZpZWQgYXQgaHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3Nzb20tdmlldy8jZXh0ZW5zaW9ucy10
by10aGUtd2luZG93LWludGVyZmFjZS4KClY4IGFuZCBKUyBjb2RlIGdlbmVyYXRvcnMgY2hhbmdl
ZCB0byBhY2NlcHQgdm9pZCBjYWxsYmFja3MuCgoqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtOgoqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgoKTmV3IGlu
dGVyZmFjZXMgTWVkaWFRdWVyeUxpc3QgYW5kIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuCgoqIGNz
cy9NZWRpYVF1ZXJ5TGlzdC5pZGw6IEFkZGVkLgoqIGNzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
LmlkbDogQWRkZWQuCgpNZWRpYVF1ZXJ5TGlzdExzaXRlbmVyIGlzIGEgY2FsbGJhY2suIEEgY3Vz
dG9tIG1ldGhvZCBpcyBuZWVkZWQgdG8gaW1wbGVtZW50CmNhbGxiYWNrIGNvbXBhcmlzb24uCgoq
IGJpbmRpbmdzL2pzL0pTTWVkaWFRdWVyeUxpc3RMaXN0ZW5lckN1c3RvbS5jcHA6IEFkZGVkLgoo
V2ViQ29yZTo6aGFzTm9WYWx1ZSk6CihXZWJDb3JlOjpKU01lZGlhUXVlcnlMaXN0TGlzdGVuZXI6
OmlzRXF1YWwpOgoqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJD
dXN0b20uY3BwOiBBZGRlZC4KKFdlYkNvcmU6OlY4TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6aXNF
cXVhbCk6CgpDbGFzc3MgTWVkaWFRdWVyeUxpc3QgYW5kIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIu
CgoqIGNzcy9NZWRpYVF1ZXJ5TGlzdC5jcHA6IEFkZGVkLgooV2ViQ29yZTo6TWVkaWFRdWVyeUxp
c3Q6OmNyZWF0ZSk6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdDo6TWVkaWFRdWVyeUxpc3QpOgoo
V2ViQ29yZTo6TWVkaWFRdWVyeUxpc3Q6On5NZWRpYVF1ZXJ5TGlzdCk6CihXZWJDb3JlOjpNZWRp
YVF1ZXJ5TGlzdDo6bWVkaWEpOgooV2ViQ29yZTo6TWVkaWFRdWVyeUxpc3Q6OmNoYW5nZWQpOgoo
V2ViQ29yZTo6TWVkaWFRdWVyeUxpc3Q6OmFkZExpc3RlbmVyKToKKFdlYkNvcmU6Ok1lZGlhUXVl
cnlMaXN0OjpyZW1vdmVMaXN0ZW5lcik6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdDo6ZXZhbHVh
dGUpOgoqIGNzcy9NZWRpYVF1ZXJ5TGlzdC5oOiBBZGRlZC4KKFdlYkNvcmU6Ok1lZGlhUXVlcnlM
aXN0OjptYXRjaGVzKToKKiBjc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oOiBBZGRlZC4KKFdl
YkNvcmU6Ok1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6On5NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKToK
ClRvIGF2b2lkIGFkZGluZyBjb2RlIHRvIGNsYXNzIERPTVdpbmRvdyBhIG5ldyBjbGFzcyBNZWRp
YVF1ZXJ5VmVjdG9yIHdhcyBjcmVhdGVkLgpUaGlzIG5ldyBjbGFzcyBpcyB1c2VkIGJ5IERPTVdp
bmRvdyB0byBpbXBsZW1lbnQgbWV0aG9kIG1hdGNoTWVkaWEuCgoqIGNzcy9NZWRpYVF1ZXJ5VmVj
dG9yLmNwcDogQWRkZWQuCihXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdGVuZXI6Ok1lZGlhUXVlcnlM
aXN0ZW5lcik6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdGVuZXI6On5NZWRpYVF1ZXJ5TGlzdGVu
ZXIpOgooV2ViQ29yZTo6TWVkaWFRdWVyeUxpc3RlbmVyOjpldmFsdWF0ZSk6CihXZWJDb3JlOjpN
ZWRpYVF1ZXJ5VmVjdG9yOjpNZWRpYVF1ZXJ5VmVjdG9yKToKKFdlYkNvcmU6Ok1lZGlhUXVlcnlW
ZWN0b3I6On5NZWRpYVF1ZXJ5VmVjdG9yKToKKFdlYkNvcmU6Ok1lZGlhUXVlcnlWZWN0b3I6OnRl
cm1pbmF0ZSk6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5VmVjdG9yOjptZWRpYVR5cGUpOgooV2ViQ29y
ZTo6TWVkaWFRdWVyeVZlY3Rvcjo6cHJlcGFyZUV2YWx1YXRvcik6CihXZWJDb3JlOjpNZWRpYVF1
ZXJ5VmVjdG9yOjptYXRjaE1lZGlhKToKKFdlYkNvcmU6Ok1lZGlhUXVlcnlWZWN0b3I6OmFkZExp
c3RlbmVyKToKKFdlYkNvcmU6Ok1lZGlhUXVlcnlWZWN0b3I6OnJlbW92ZUxpc3RlbmVyKToKKFdl
YkNvcmU6Ok1lZGlhUXVlcnlWZWN0b3I6OmV2YWx1YXRlKToKKiBjc3MvTWVkaWFRdWVyeVZlY3Rv
ci5oOiBBZGRlZC4KKFdlYkNvcmU6Ok1lZGlhUXVlcnlMaXN0ZW5lcjo6bGlzdGVuZXIpOgooV2Vi
Q29yZTo6TWVkaWFRdWVyeUxpc3RlbmVyOjpxdWVyeSk6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5VmVj
dG9yOjpjcmVhdGUpOgooV2ViQ29yZTo6TWVkaWFRdWVyeVZlY3Rvcjo6ZXZhbFJvdW5kKToKCkRv
Y3VtZW50IG5lZWRzIHRvIG5vdGlmeSBET01XaW5kb3cgYWJvdXQgc3R5bGUgY2hhbmdlcy4gRE9N
V2luZG93IGltcGxlbWVudHMKbWV0aG9kIG1hdGNoTWVkaWEgYXMgc3BlY2lmaWVkLgoKKiBkb20v
RG9jdW1lbnQuY3BwOgooV2ViQ29yZTo6RG9jdW1lbnQ6OnN0eWxlU2VsZWN0b3JDaGFuZ2VkKToK
KiBwYWdlL0RPTVdpbmRvdy5jcHA6CihXZWJDb3JlOjpET01XaW5kb3c6On5ET01XaW5kb3cpOgoo
V2ViQ29yZTo6RE9NV2luZG93OjptYXRjaE1lZGlhKToKKFdlYkNvcmU6OkRPTVdpbmRvdzo6c3R5
bGVDaGFuZ2VkKToKKFdlYkNvcmU6OkRPTVdpbmRvdzo6Y2xlYXIpOgoqIHBhZ2UvRE9NV2luZG93
Lmg6CihXZWJDb3JlOjpET01XaW5kb3c6OmRlZmF1bHRTdGF0dXMpOgoqIHBhZ2UvRE9NV2luZG93
LmlkbDoKCkJ1aWxkIHN5c3RlbXMgaXNzdWVzLgoKKiBEZXJpdmVkU291cmNlcy5tYWtlOgoqIEdO
VW1ha2VmaWxlLmFtOgoqIFdlYkNvcmUuZ3lwaToKKiBXZWJDb3JlLnByaToKKiBXZWJDb3JlLnBy
bzoKKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CiogYmluZGluZ3MvZ29iamVj
dC9HTlVtYWtlZmlsZS5hbToKClRlc3RzOiBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDEu
aHRtbAogICAgICAgZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAyLmh0bWwKICAgICAgIGZh
c3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMy5odG1sCgpMYXlvdXRUZXN0czoKCk1lZGlhUXVl
cnlMaXN0IHRlc3RzLgoKKiBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDEtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKiBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDEuaHRtbDogQWRkZWQu
CiogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAyLWV4cGVjdGVkLnR4dDogQWRkZWQuCiog
ZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAyLmh0bWw6IEFkZGVkLgoqIGZhc3QvbWVkaWEv
bWVkaWEtcXVlcnktbGlzdC0wMy1leHBlY3RlZC50eHQ6IEFkZGVkLgoqIGZhc3QvbWVkaWEvbWVk
aWEtcXVlcnktbGlzdC0wMy5odG1sOiBBZGRlZC4KKiBwbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4
cGVjdGF0aW9ucy50eHQ6CiogcGxhdGZvcm0vbWFjL1NraXBwZWQ6CiogcGxhdGZvcm0vd2luL1Nr
aXBwZWQ6Ci0tLQogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgIDE5ICsrKwogLi4uL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMS1leHBl
Y3RlZC50eHQgICAgfCAgIDE1ICsrCiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5
LWxpc3QtMDEuaHRtbCAgICB8ICAgNTIgKysrKysrKwogLi4uL2Zhc3QvbWVkaWEvbWVkaWEtcXVl
cnktbGlzdC0wMi1leHBlY3RlZC50eHQgICAgfCAgIDI1ICsrKwogTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAyLmh0bWwgICAgfCAgIDYxICsrKysrKysrCiAuLi4vZmFz
dC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAzLWV4cGVjdGVkLnR4dCAgICB8ICAgNDEgKysrKysK
IExheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMy5odG1sICAgIHwgICA3
MCArKysrKysrKysKIC4uLi9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQg
ICAgICAgIHwgICAgNCArLQogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQgICAgICAg
ICAgICAgICAgICAgfCAgICA0ICstCiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZCAg
ICAgICAgICAgICAgICAgICB8ICAgIDQgKy0KIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgICA5NSArKysrKysrKysrKysKIFdlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZSAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiArCiBXZWJDb3JlL0dO
VW1ha2VmaWxlLmFtICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTIgKystCiBXZWJD
b3JlL1dlYkNvcmUuZ3lwaSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTAgKy0K
IFdlYkNvcmUvV2ViQ29yZS5wcmkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg
MiArCiBXZWJDb3JlL1dlYkNvcmUucHJvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAgIDYgKwogV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogICAgICAg
ICAgfCAgIDQ0ICsrKysrKwogV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dOVW1ha2VmaWxlLmFt
ICAgICAgICAgICAgfCAgICA2ICsKIC4uLi9iaW5kaW5ncy9qcy9KU01lZGlhUXVlcnlMaXN0TGlz
dGVuZXJDdXN0b20uY3BwIHwgICA1OSArKysrKysrKwogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbSAgICAgICAgfCAgIDQ1ICsrKysrLS0KIFdlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0gICAgICAgIHwgICA0OCArKysrKy0tCiAuLi4v
djgvY3VzdG9tL1Y4TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckN1c3RvbS5jcHAgICB8ICAgMzcgKysr
KysKIFdlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0LmNwcCAgICAgICAgICAgICAgICAgICAgIHwg
ICA4NyArKysrKysrKysrKwogV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3QuaCAgICAgICAgICAg
ICAgICAgICAgICAgfCAgIDY3ICsrKysrKysrKwogV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3Qu
aWRsICAgICAgICAgICAgICAgICAgICAgfCAgIDMzICsrKysKIFdlYkNvcmUvY3NzL01lZGlhUXVl
cnlMaXN0TGlzdGVuZXIuaCAgICAgICAgICAgICAgIHwgICA0NCArKysrKysKIFdlYkNvcmUvY3Nz
L01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaWRsICAgICAgICAgICAgIHwgICAzMSArKysrCiBXZWJD
b3JlL2Nzcy9NZWRpYVF1ZXJ5VmVjdG9yLmNwcCAgICAgICAgICAgICAgICAgICB8ICAxNTcgKysr
KysrKysrKysrKysrKysrKysKIFdlYkNvcmUvY3NzL01lZGlhUXVlcnlWZWN0b3IuaCAgICAgICAg
ICAgICAgICAgICAgIHwgICA4MSArKysrKysrKysrCiBXZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDMgKwogV2ViQ29yZS9wYWdlL0RPTVdpbmRv
dy5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDI3ICsrKystCiBXZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmggICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTIgKystCiBXZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmlkbCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDMgKwogMzMg
ZmlsZXMgY2hhbmdlZCwgMTE3NiBpbnNlcnRpb25zKCspLCAzMCBkZWxldGlvbnMoLSkKIGNyZWF0
ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDEt
ZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9t
ZWRpYS1xdWVyeS1saXN0LTAxLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9m
YXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDItZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAx
MDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAyLmh0bWwKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3Qt
MDMtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YS9tZWRpYS1xdWVyeS1saXN0LTAzLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTWVkaWFRdWVyeUxpc3RMaXN0ZW5lckN1c3RvbS5jcHAKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXJDdXN0b20uY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxp
c3QuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3QuaAog
Y3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0LmlkbAogY3JlYXRl
IG1vZGUgMTAwNjQ0IFdlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaAogY3JlYXRl
IG1vZGUgMTAwNjQ0IFdlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaWRsCiBjcmVh
dGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9jc3MvTWVkaWFRdWVyeVZlY3Rvci5jcHAKIGNyZWF0ZSBt
b2RlIDEwMDY0NCBXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5VmVjdG9yLmgKCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggY2NlYmQy
OC4uMGUxYmQ3MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEwLTA5LTAyICBMdWl6IEFnb3N0
aW5pICA8bHVpei5hZ29zdGluaUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1lZGlhIGxpc3RlbmVycworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzcyMDUKKworICAgICAgICBNZWRp
YVF1ZXJ5TGlzdCB0ZXN0cy4KKworICAgICAgICAqIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlz
dC0wMS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWEvbWVkaWEtcXVl
cnktbGlzdC0wMS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5
LWxpc3QtMDItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhL21lZGlh
LXF1ZXJ5LWxpc3QtMDIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYS9tZWRpYS1x
dWVyeS1saXN0LTAzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYS9t
ZWRpYS1xdWVyeS1saXN0LTAzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9t
aXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2tpcHBl
ZDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDoKKwogMjAxMC0wOS0wMyAgTmlrb2xh
cyBaaW1tZXJtYW5uICA8bnppbW1lcm1hbm5AcmltLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBEaXJrIFNjaHVsemUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlh
LXF1ZXJ5LWxpc3QtMDEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRp
YS1xdWVyeS1saXN0LTAxLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi40ZWJhM2Y1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YS9tZWRpYS1xdWVyeS1saXN0LTAxLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1IEBACitUZXN0
IHRoZSBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U6IGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nz
c29tLXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2UuCisKKyJzY3JlZW4iIGV2YWx1
YXRlcyB0byB0cnVlOiBQQVNTCisicHJvamVjdGlvbiIgZXZhbHVhdGVzIHRvIGZhbHNlOiBQQVNT
CisiYWxsIGFuZCAoY29sb3IpIiBldmFsdWF0ZXMgdG8gdHJ1ZTogUEFTUworIm5vdCBwcm9qZWN0
aW9uIGFuZCAoY29sb3IpIiBldmFsdWF0ZXMgdG8gdHJ1ZTogUEFTUworIihjb2xvcikiIGV2YWx1
YXRlcyB0byB0cnVlOiBQQVNTCisiKGNvbG9yIiBldmFsdWF0ZXMgdG8gZmFsc2U6IFBBU1MKKyJj
b2xvciIgZXZhbHVhdGVzIHRvIGZhbHNlOiBQQVNTCisiZ2FyYmFnZSIgZXZhbHVhdGVzIHRvIGZh
bHNlOiBQQVNTCisiKG1pbi1kZXZpY2Utd2lkdGg6IDEwMHB4KSIgZXZhbHVhdGVzIHRvIHRydWU6
IFBBU1MKKyIobWluLWRldmljZS13aWR0aDogNTAwMDBweCkiIGV2YWx1YXRlcyB0byBmYWxzZTog
UEFTUworIigtd2Via2l0LWFuaW1hdGlvbjogMSkiIGV2YWx1YXRlcyB0byB0cnVlOiBQQVNTCisi
KC13ZWJraXQtdHJhbnNmb3JtLTJkKSIgZXZhbHVhdGVzIHRvIHRydWU6IFBBU1MKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAxLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDEuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zM2RjYzY3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAxLmh0bWwKQEAgLTAsMCArMSw1
MiBAQAorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5UZXN0IENTU09NIFZpZXcgbW9kdWxlOiBNZWRp
YVF1ZXJ5TGlzdCBpbnRlcmZhY2U8L3RpdGxlPgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKwor
PC9zdHlsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+
CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgICAgZnVuY3Rpb24gbG9nKG0pCisgICAgewor
ICAgICAgICB2YXIgcmVzdWx0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHRzJyk7
CisgICAgICAgIHJlc3VsdHMuaW5uZXJIVE1MICs9IG0gKyAnPGJyPic7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gdGVzdFF1ZXJ5KHF1ZXJ5LCBleHBlY3RlZCkKKyAgICB7CisgICAgICAgIHZhciBp
c1RydWUgPSB3aW5kb3cubWF0Y2hNZWRpYShxdWVyeSkubWF0Y2hlczsKKyAgICAgICAgdmFyIG1l
c3NhZ2UgPSAnXCInICsgcXVlcnkgKyAnXCIgZXZhbHVhdGVzIHRvICcgKyAoaXNUcnVlID8gJ3Ry
dWUnIDogJ2ZhbHNlJyk7CisgICAgICAgIG1lc3NhZ2UgKz0gKGlzVHJ1ZSA9PSBleHBlY3RlZCkg
PyAnOiBQQVNTJyA6ICc6IEZBSUwnOworICAgICAgICBsb2cobWVzc2FnZSk7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gcnVuVGVzdHMoKQorICAgIHsKKyAgICAgICAgdGVzdFF1ZXJ5KCdzY3JlZW4n
LCB0cnVlKTsKKyAgICAgICAgdGVzdFF1ZXJ5KCdwcm9qZWN0aW9uJywgZmFsc2UpOworCisgICAg
ICAgIHRlc3RRdWVyeSgnYWxsIGFuZCAoY29sb3IpJywgdHJ1ZSk7CisgICAgICAgIHRlc3RRdWVy
eSgnbm90IHByb2plY3Rpb24gYW5kIChjb2xvciknLCB0cnVlKTsKKyAgICAgICAgdGVzdFF1ZXJ5
KCcoY29sb3IpJywgdHJ1ZSk7CisgICAgICAgIHRlc3RRdWVyeSgnKGNvbG9yJywgZmFsc2UpOwor
ICAgICAgICB0ZXN0UXVlcnkoJ2NvbG9yJywgZmFsc2UpOworCisgICAgICAgIHRlc3RRdWVyeSgn
Z2FyYmFnZScsIGZhbHNlKTsKKworICAgICAgICB0ZXN0UXVlcnkoJyhtaW4tZGV2aWNlLXdpZHRo
OiAxMDBweCknLCB0cnVlKTsKKyAgICAgICAgdGVzdFF1ZXJ5KCcobWluLWRldmljZS13aWR0aDog
NTAwMDBweCknLCBmYWxzZSk7CisKKyAgICAgICAgdGVzdFF1ZXJ5KCcoLXdlYmtpdC1hbmltYXRp
b246IDEpJywgdHJ1ZSk7CisgICAgICAgIHRlc3RRdWVyeSgnKC13ZWJraXQtdHJhbnNmb3JtLTJk
KScsIHRydWUpOworICAgIH0KKworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1
blRlc3RzKCkiPgorICAgIDxwPlRlc3QgdGhlIE1lZGlhUXVlcnlMaXN0IGludGVyZmFjZTogPGEg
aHJlZj0iaHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3Nzb20tdmlldy8jdGhlLW1lZGlhcXVlcnls
aXN0LWludGVyZmFjZSIgdGl0bGU9IkNTU09NIFZpZXcgTW9kdWxlIj5odHRwOi8vZGV2LnczLm9y
Zy9jc3N3Zy9jc3NvbS12aWV3LyN0aGUtbWVkaWFxdWVyeWxpc3QtaW50ZXJmYWNlPC9hPi48L3A+
CisgICAgPGRpdiBpZD0icmVzdWx0cyI+CisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDItZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAyLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MzY0M2Q4Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0
LTAyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI1IEBACitUZXN0IHRoZSBNZWRpYVF1ZXJ5TGlz
dCBpbnRlcmZhY2U6IGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzc29tLXZpZXcvI3RoZS1tZWRp
YXF1ZXJ5bGlzdC1pbnRlcmZhY2UuCisKK1Rlc3RpbmcgYWRkTGlzdGVuZXIgaW4gZGlmZmVyZW50
IE1lZGlhUXVlcnlMaXN0IG9iamVjdHMgYW5kIHRoZSBjYWxsYmFjayBjYWxsIHNlcXVlbmNlCisK
Ky0tLS0tLS0tLS0tLS0gbWluaW1pemVkIC0tLS0tLS0tLS0tLS0KK1sxXSAtIHF1ZXJ5ICgtd2Vi
a2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQgdG8gZmFsc2UKK1sxXSAtIHF1ZXJ5ICgt
d2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSBjaGFuZ2VkIHRvIHRydWUKK1syXSAtIHF1ZXJ5
ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQgdG8gZmFsc2UKK1syXSAtIHF1
ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSBjaGFuZ2VkIHRvIHRydWUKKy0tLS0t
LS0tLS0tLS0gbWF4aW1pemVkIC0tLS0tLS0tLS0tLS0KK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZp
ZXctbW9kZTogbWluaW1pemVkKSBjaGFuZ2VkIHRvIGZhbHNlCitbMV0gLSBxdWVyeSAoLXdlYmtp
dC12aWV3LW1vZGU6IG1heGltaXplZCkgY2hhbmdlZCB0byB0cnVlCitbMl0gLSBxdWVyeSAoLXdl
YmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCkgY2hhbmdlZCB0byBmYWxzZQorWzJdIC0gcXVlcnkg
KC13ZWJraXQtdmlldy1tb2RlOiBtYXhpbWl6ZWQpIGNoYW5nZWQgdG8gdHJ1ZQorLS0tLS0tLS0t
LS0tLSB3aW5kb3dlZCAtLS0tLS0tLS0tLS0tCitbMV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1v
ZGU6IHdpbmRvd2VkKSBjaGFuZ2VkIHRvIHRydWUKK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXct
bW9kZTogbWF4aW1pemVkKSBjaGFuZ2VkIHRvIGZhbHNlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12
aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFuZ2VkIHRvIHRydWUKK1syXSAtIHF1ZXJ5ICgtd2Via2l0
LXZpZXctbW9kZTogbWF4aW1pemVkKSBjaGFuZ2VkIHRvIGZhbHNlCistLS0tLS0tLS0tLS0tIGZs
b2F0aW5nIC0tLS0tLS0tLS0tLS0KK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2lu
ZG93ZWQpIGNoYW5nZWQgdG8gZmFsc2UKK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTog
ZmxvYXRpbmcpIGNoYW5nZWQgdG8gdHJ1ZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2Rl
OiB3aW5kb3dlZCkgY2hhbmdlZCB0byBmYWxzZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1t
b2RlOiBmbG9hdGluZykgY2hhbmdlZCB0byB0cnVlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uOGRlY2U0MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVk
aWEvbWVkaWEtcXVlcnktbGlzdC0wMi5odG1sCkBAIC0wLDAgKzEsNjEgQEAKKzxodG1sPgorPGhl
YWQ+Cis8dGl0bGU+VGVzdCBDU1NPTSBWaWV3IG1vZHVsZTogTWVkaWFRdWVyeUxpc3QgaW50ZXJm
YWNlPC90aXRsZT4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisKKzwvc3R5bGU+Cis8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgorICAgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBB
c1RleHQoKTsKKworICAgIGZ1bmN0aW9uIGxvZyhtKSB7CisgICAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdyZXN1bHRzJykuaW5uZXJIVE1MICs9IG0gKyAnPGJyPic7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gY2FsbGJhY2sxKHF1ZXJ5KSB7CisgICAgICAgIGxvZygiWzFdIC0gcXVlcnkg
IiArIHF1ZXJ5Lm1lZGlhICsgIiBjaGFuZ2VkIHRvICIgKyAocXVlcnkubWF0Y2hlcyA/ICJ0cnVl
IiA6ICJmYWxzZSIpKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjYWxsYmFjazIocXVlcnkpIHsK
KyAgICAgICAgbG9nKCJbMl0gLSBxdWVyeSAiICsgcXVlcnkubWVkaWEgKyAiIGNoYW5nZWQgdG8g
IiArIChxdWVyeS5tYXRjaGVzID8gInRydWUiIDogImZhbHNlIikpOworICAgIH0KKworICAgIGZ1
bmN0aW9uIHJ1blRlc3RzKCkKKyAgICB7CisgICAgICAgIGlmICghd2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHdpbmRvd2VkUXVlcnkg
PSB3aW5kb3cubWF0Y2hNZWRpYSgiKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkiKTsKKyAg
ICAgICAgZmxvYXRpbmdRdWVyeSA9IHdpbmRvdy5tYXRjaE1lZGlhKCIoLXdlYmtpdC12aWV3LW1v
ZGU6IGZsb2F0aW5nKSIpOworICAgICAgICBtaW5pbWl6ZWRRdWVyeSA9IHdpbmRvdy5tYXRjaE1l
ZGlhKCIoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCkiKTsKKyAgICAgICAgbWF4aW1pemVk
UXVlcnkgPSB3aW5kb3cubWF0Y2hNZWRpYSgiKC13ZWJraXQtdmlldy1tb2RlOiBtYXhpbWl6ZWQp
Iik7CisKKyAgICAgICAgd2luZG93ZWRRdWVyeS5hZGRMaXN0ZW5lcihjYWxsYmFjazEpOworICAg
ICAgICBmbG9hdGluZ1F1ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNrMSk7CisgICAgICAgIG1pbmlt
aXplZFF1ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNrMSk7CisgICAgICAgIG1heGltaXplZFF1ZXJ5
LmFkZExpc3RlbmVyKGNhbGxiYWNrMSk7CisKKyAgICAgICAgd2luZG93ZWRRdWVyeS5hZGRMaXN0
ZW5lcihjYWxsYmFjazIpOworICAgICAgICBmbG9hdGluZ1F1ZXJ5LmFkZExpc3RlbmVyKGNhbGxi
YWNrMik7CisgICAgICAgIG1pbmltaXplZFF1ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNrMik7Cisg
ICAgICAgIG1heGltaXplZFF1ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNrMik7CisKKyAgICAgICAg
bG9nKCItLS0tLS0tLS0tLS0tIG1pbmltaXplZCAtLS0tLS0tLS0tLS0tIik7CisgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCJtaW5pbWl6ZWQiKTsK
KyAgICAgICAgbG9nKCItLS0tLS0tLS0tLS0tIG1heGltaXplZCAtLS0tLS0tLS0tLS0tIik7Cisg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCJtYXhp
bWl6ZWQiKTsKKyAgICAgICAgbG9nKCItLS0tLS0tLS0tLS0tIHdpbmRvd2VkIC0tLS0tLS0tLS0t
LS0iKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1
cmUoIndpbmRvd2VkIik7CisgICAgICAgIGxvZygiLS0tLS0tLS0tLS0tLSBmbG9hdGluZyAtLS0t
LS0tLS0tLS0tIik7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFZpZXdNb2RlTWVk
aWFGZWF0dXJlKCJmbG9hdGluZyIpOworICAgIH0KKworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eSBvbmxvYWQ9InJ1blRlc3RzKCkiPgorICAgIDxwPlRlc3QgdGhlIE1lZGlhUXVlcnlMaXN0IGlu
dGVyZmFjZTogPGEgaHJlZj0iaHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3Nzb20tdmlldy8jdGhl
LW1lZGlhcXVlcnlsaXN0LWludGVyZmFjZSIgdGl0bGU9IkNTU09NIFZpZXcgTW9kdWxlIj5odHRw
Oi8vZGV2LnczLm9yZy9jc3N3Zy9jc3NvbS12aWV3LyN0aGUtbWVkaWFxdWVyeWxpc3QtaW50ZXJm
YWNlPC9hPi48L3A+CisgICAgPHA+VGVzdGluZyBhZGRMaXN0ZW5lciBpbiBkaWZmZXJlbnQgTWVk
aWFRdWVyeUxpc3Qgb2JqZWN0cyBhbmQgdGhlIGNhbGxiYWNrIGNhbGwgc2VxdWVuY2U8L3A+Cisg
ICAgPGRpdiBpZD0icmVzdWx0cyI+CisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAzLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMjRlMjA2Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAz
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQxIEBACitUZXN0IHRoZSBNZWRpYVF1ZXJ5TGlzdCBp
bnRlcmZhY2U6IGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzc29tLXZpZXcvI3RoZS1tZWRpYXF1
ZXJ5bGlzdC1pbnRlcmZhY2UuCisKK1Rlc3RpbmcgcmVtb3ZlTGlzdGVuZXIgaW4gZGlmZmVyZW50
IE1lZGlhUXVlcnlMaXN0IG9iamVjdHMgYW5kIHRoZSBjYWxsYmFjayBjYWxsIHNlcXVlbmNlCisK
K2FkZGluZyB3aW5kb3dlZFsxXSwgbWluaW1pemVkWzFdLCB3aW5kb3dlZFsyXSBhbmQgbWluaW1p
emVkWzJdCisKKy0tLS0tLS0tLS0tLS0gbWluaW1pemVkIC0tLS0tLS0tLS0tLS0KK1sxXSAtIHF1
ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQgdG8gZmFsc2UKK1sxXSAt
IHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSBjaGFuZ2VkIHRvIHRydWUKK1sy
XSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQgdG8gZmFsc2UK
K1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSBjaGFuZ2VkIHRvIHRy
dWUKKy0tLS0tLS0tLS0tLS0gd2luZG93ZWQgLS0tLS0tLS0tLS0tLQorWzFdIC0gcXVlcnkgKC13
ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0byB0cnVlCitbMV0gLSBxdWVyeSAo
LXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCkgY2hhbmdlZCB0byBmYWxzZQorWzJdIC0gcXVl
cnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0byB0cnVlCitbMl0gLSBx
dWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCkgY2hhbmdlZCB0byBmYWxzZQorCisK
K3JlbW92aW5nIHdpbmRvd2VkWzFdIGFuZCBtaW5pbWl6ZWRbMl0KKworLS0tLS0tLS0tLS0tLSBt
aW5pbWl6ZWQgLS0tLS0tLS0tLS0tLQorWzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBt
aW5pbWl6ZWQpIGNoYW5nZWQgdG8gdHJ1ZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2Rl
OiB3aW5kb3dlZCkgY2hhbmdlZCB0byBmYWxzZQorLS0tLS0tLS0tLS0tLSB3aW5kb3dlZCAtLS0t
LS0tLS0tLS0tCitbMV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCkgY2hh
bmdlZCB0byBmYWxzZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkg
Y2hhbmdlZCB0byB0cnVlCisKKworYWRkaW5nIHdpbmRvd2VkWzFdIGFuZCBtaW5pbWl6ZWRbMl0K
KworLS0tLS0tLS0tLS0tLSBtaW5pbWl6ZWQgLS0tLS0tLS0tLS0tLQorWzFdIC0gcXVlcnkgKC13
ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQpIGNoYW5nZWQgdG8gdHJ1ZQorWzJdIC0gcXVlcnkg
KC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0byBmYWxzZQorWzFdIC0gcXVl
cnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0byBmYWxzZQorWzJdIC0g
cXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQpIGNoYW5nZWQgdG8gdHJ1ZQorLS0t
LS0tLS0tLS0tLSB3aW5kb3dlZCAtLS0tLS0tLS0tLS0tCitbMV0gLSBxdWVyeSAoLXdlYmtpdC12
aWV3LW1vZGU6IG1pbmltaXplZCkgY2hhbmdlZCB0byBmYWxzZQorWzJdIC0gcXVlcnkgKC13ZWJr
aXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0byB0cnVlCitbMV0gLSBxdWVyeSAoLXdl
YmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFuZ2VkIHRvIHRydWUKK1syXSAtIHF1ZXJ5ICgt
d2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSBjaGFuZ2VkIHRvIGZhbHNlCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMy5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAzLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjJkNDA4ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMy5odG1sCkBAIC0wLDAgKzEsNzAg
QEAKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+VGVzdCBDU1NPTSBWaWV3IG1vZHVsZTogTWVkaWFR
dWVyeUxpc3QgaW50ZXJmYWNlPC90aXRsZT4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisKKzwv
c3R5bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgor
ICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworICAgIGZ1bmN0aW9uIGxvZyhtKSB7CisgICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHRzJykuaW5uZXJIVE1MICs9IG0gKyAnPGJy
Pic7CisgICAgfQorCisgICAgZnVuY3Rpb24gY2FsbGJhY2sxKHF1ZXJ5KSB7CisgICAgICAgIGxv
ZygiWzFdIC0gcXVlcnkgIiArIHF1ZXJ5Lm1lZGlhICsgIiBjaGFuZ2VkIHRvICIgKyAocXVlcnku
bWF0Y2hlcyA/ICJ0cnVlIiA6ICJmYWxzZSIpKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjYWxs
YmFjazIocXVlcnkpIHsKKyAgICAgICAgbG9nKCJbMl0gLSBxdWVyeSAiICsgcXVlcnkubWVkaWEg
KyAiIGNoYW5nZWQgdG8gIiArIChxdWVyeS5tYXRjaGVzID8gInRydWUiIDogImZhbHNlIikpOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3RzKCkKKyAgICB7CisgICAgICAgIGlmICghd2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAg
IHdpbmRvd2VkUXVlcnkgPSB3aW5kb3cubWF0Y2hNZWRpYSgiKC13ZWJraXQtdmlldy1tb2RlOiB3
aW5kb3dlZCkiKTsKKyAgICAgICAgbWluaW1pemVkUXVlcnkgPSB3aW5kb3cubWF0Y2hNZWRpYSgi
KC13ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQpIik7CisKKyAgICAgICAgbG9nKCJhZGRpbmcg
d2luZG93ZWRbMV0sIG1pbmltaXplZFsxXSwgd2luZG93ZWRbMl0gYW5kIG1pbmltaXplZFsyXTxi
cj4iKTsKKyAgICAgICAgd2luZG93ZWRRdWVyeS5hZGRMaXN0ZW5lcihjYWxsYmFjazEpOworICAg
ICAgICBtaW5pbWl6ZWRRdWVyeS5hZGRMaXN0ZW5lcihjYWxsYmFjazEpOworICAgICAgICB3aW5k
b3dlZFF1ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNrMik7CisgICAgICAgIG1pbmltaXplZFF1ZXJ5
LmFkZExpc3RlbmVyKGNhbGxiYWNrMik7CisKKyAgICAgICAgbG9nKCItLS0tLS0tLS0tLS0tIG1p
bmltaXplZCAtLS0tLS0tLS0tLS0tIik7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNl
dFZpZXdNb2RlTWVkaWFGZWF0dXJlKCJtaW5pbWl6ZWQiKTsKKyAgICAgICAgbG9nKCItLS0tLS0t
LS0tLS0tIHdpbmRvd2VkIC0tLS0tLS0tLS0tLS0iKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoIndpbmRvd2VkIik7CisKKyAgICAgICAgbG9n
KCI8YnI+PGJyPnJlbW92aW5nIHdpbmRvd2VkWzFdIGFuZCBtaW5pbWl6ZWRbMl08YnI+Iik7Cisg
ICAgICAgIHdpbmRvd2VkUXVlcnkucmVtb3ZlTGlzdGVuZXIoY2FsbGJhY2sxKTsKKyAgICAgICAg
bWluaW1pemVkUXVlcnkucmVtb3ZlTGlzdGVuZXIoY2FsbGJhY2syKTsKKworICAgICAgICBsb2co
Ii0tLS0tLS0tLS0tLS0gbWluaW1pemVkIC0tLS0tLS0tLS0tLS0iKTsKKyAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoIm1pbmltaXplZCIpOworICAg
ICAgICBsb2coIi0tLS0tLS0tLS0tLS0gd2luZG93ZWQgLS0tLS0tLS0tLS0tLSIpOworICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSgid2luZG93ZWQi
KTsKKworICAgICAgICBsb2coIjxicj48YnI+YWRkaW5nIHdpbmRvd2VkWzFdIGFuZCBtaW5pbWl6
ZWRbMl08YnI+Iik7CisgICAgICAgIHdpbmRvd2VkUXVlcnkuYWRkTGlzdGVuZXIoY2FsbGJhY2sx
KTsKKyAgICAgICAgbWluaW1pemVkUXVlcnkuYWRkTGlzdGVuZXIoY2FsbGJhY2syKTsKKworICAg
ICAgICBsb2coIi0tLS0tLS0tLS0tLS0gbWluaW1pemVkIC0tLS0tLS0tLS0tLS0iKTsKKyAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoIm1pbmltaXpl
ZCIpOworICAgICAgICBsb2coIi0tLS0tLS0tLS0tLS0gd2luZG93ZWQgLS0tLS0tLS0tLS0tLSIp
OworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSgi
d2luZG93ZWQiKTsKKworICAgIH0KKworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9
InJ1blRlc3RzKCkiPgorICAgIDxwPlRlc3QgdGhlIE1lZGlhUXVlcnlMaXN0IGludGVyZmFjZTog
PGEgaHJlZj0iaHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3Nzb20tdmlldy8jdGhlLW1lZGlhcXVl
cnlsaXN0LWludGVyZmFjZSIgdGl0bGU9IkNTU09NIFZpZXcgTW9kdWxlIj5odHRwOi8vZGV2Lncz
Lm9yZy9jc3N3Zy9jc3NvbS12aWV3LyN0aGUtbWVkaWFxdWVyeWxpc3QtaW50ZXJmYWNlPC9hPi48
L3A+CisgICAgPHA+VGVzdGluZyByZW1vdmVMaXN0ZW5lciBpbiBkaWZmZXJlbnQgTWVkaWFRdWVy
eUxpc3Qgb2JqZWN0cyBhbmQgdGhlIGNhbGxiYWNrIGNhbGwgc2VxdWVuY2U8L3A+CisgICAgPGRp
diBpZD0icmVzdWx0cyI+CisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKaW5kZXgg
ZWYzMGM0OS4uM2UyODA0YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dApAQCAtMjQ5OCw4ICsyNDk4LDEwIEBAIEJVRzM4NTc4
IDogcGx1Z2lucy9vdmVycmlkZS1ub2RlLW1ldGhvZC5odG1sID0gVEVYVAogQlVHMzg2NTMgTUFD
IDogZWRpdGluZy9zZWxlY3Rpb24vZmluZC15ZW5zaWduLWFuZC1iYWNrc2xhc2guaHRtbCA9IFRF
WFQKIEJVRzM4NjU2IDogZmFzdC9tZWRpYS9wcmludC1yZXN0b3Jlcy1wcmV2aW91cy1tZWRpYXR5
cGUuaHRtbCA9IFRFWFQKIAotLy8gTmVlZHMgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Vmlld01v
ZGVNZWRpYUZlYXR1cmUoKSAoaW1wbGVtZW50ZWQgb24gUXQgb25seSkKKy8vIE5lZWRzIGxheW91
dFRlc3RDb250cm9sbGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCkKIEJVRzQwNjgwIFNLSVAg
OiBmYXN0L21lZGlhL3ZpZXctbW9kZS1tZWRpYS1mZWF0dXJlLmh0bWwgPSBGQUlMCitCVUc0MDY4
MCBTS0lQIDogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAyLmh0bWwgPSBGQUlMCitCVUc0
MDY4MCBTS0lQIDogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAzLmh0bWwgPSBGQUlMCiAK
IC8vIFVua25vd24gZmxha2luZXNzLgogQlVHMzg3MDYgOiBzdmcvY3VzdG9tL2RlZXAtZHluYW1p
Yy11cGRhdGVzLnN2ZyA9IElNQUdFK1RFWFQgSU1BR0UgUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tp
cHBlZAppbmRleCA4ZGE1NzE5Li5mYTU5MWNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZApA
QCAtMTQwLDggKzE0MCwxMCBAQCBodHRwL3Rlc3RzL3BsdWdpbnMvcGx1Z2luLWRvY3VtZW50LWhh
cy1mb2N1cy5odG1sCiAjIE1pc3NlcyBzZXRNZWRpYVR5cGUoKSBhbmQgaW1wbGVtZW50YXRpb24K
IGZhc3QvbWVkaWEvcHJpbnQtcmVzdG9yZXMtcHJldmlvdXMtbWVkaWF0eXBlLmh0bWwKIAotIyB2
aWV3IG1vZGUgbWVkaWEgZmVhdHVyZQorIyBOZWVkcyBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRW
aWV3TW9kZU1lZGlhRmVhdHVyZSgpCiBmYXN0L21lZGlhL3ZpZXctbW9kZS1tZWRpYS1mZWF0dXJl
Lmh0bWwKK2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMi5odG1sCitmYXN0L21lZGlhL21l
ZGlhLXF1ZXJ5LWxpc3QtMDMuaHRtbAogCiAjIFRlc3QgaXMgZmxha3kgYW5kIHRodXMgbm90IHVz
ZWZ1bCB1bnRpbCBmaXhlZC4KICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTM2NjQyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCmluZGV4IDI0NzBlNDUuLjRiZThkMmIg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCkBAIC04NDcsOCArODQ3LDEwIEBAIGZhc3QvZG9t
L0hUTUxNZXRlckVsZW1lbnQvbWV0ZXItb3B0aW11bXMuaHRtbAogZmFzdC9kb20vSFRNTE1ldGVy
RWxlbWVudC9tZXRlci1zdHlsZXMuaHRtbAogZmFzdC9kb20vSFRNTE1ldGVyRWxlbWVudC9tZXRl
ci1zdHlsZXMtY2hhbmdpbmctcHNldWRvLmh0bWwKIAotIyB2aWV3IG1vZGUgbWVkaWEgZmVhdHVy
ZQorIyBOZWVkcyBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSgp
CiBmYXN0L21lZGlhL3ZpZXctbW9kZS1tZWRpYS1mZWF0dXJlLmh0bWwKK2Zhc3QvbWVkaWEvbWVk
aWEtcXVlcnktbGlzdC0wMi5odG1sCitmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMuaHRt
bAogCiAjIE5lZWQgZXhwZWN0YXRpb25zLiBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTM2NDYxCiBmYXN0L3JlcGFpbnQvb3ZlcmZsb3ctc2Nyb2xsLWJvZHktYXBw
ZWFyLmh0bWwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggZWE2MmNjNi4uZTIwNWRmYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5OCBAQAorMjAxMC0wOS0wMiAgTHVp
eiBBZ29zdGluaSAgPGx1aXouYWdvc3RpbmlAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNZWRpYSBsaXN0ZW5lcnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3MjA1CisKKyAgICAg
ICAgQXMgc3BlY2lmaWVkIGF0IGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzc29tLXZpZXcvI2V4
dGVuc2lvbnMtdG8tdGhlLXdpbmRvdy1pbnRlcmZhY2UuCisKKyAgICAgICAgVjggYW5kIEpTIGNv
ZGUgZ2VuZXJhdG9ycyBjaGFuZ2VkIHRvIGFjY2VwdCB2b2lkIGNhbGxiYWNrcy4KKworICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgorCisgICAgICAgIE5ldyBpbnRlcmZhY2Vz
IE1lZGlhUXVlcnlMaXN0IGFuZCBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLgorCisgICAgICAgICog
Y3NzL01lZGlhUXVlcnlMaXN0LmlkbDogQWRkZWQuCisgICAgICAgICogY3NzL01lZGlhUXVlcnlM
aXN0TGlzdGVuZXIuaWRsOiBBZGRlZC4KKworICAgICAgICBNZWRpYVF1ZXJ5TGlzdExzaXRlbmVy
IGlzIGEgY2FsbGJhY2suIEEgY3VzdG9tIG1ldGhvZCBpcyBuZWVkZWQgdG8gaW1wbGVtZW50Cisg
ICAgICAgIGNhbGxiYWNrIGNvbXBhcmlzb24uCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU01l
ZGlhUXVlcnlMaXN0TGlzdGVuZXJDdXN0b20uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
Omhhc05vVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6SlNNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
Ojppc0VxdWFsKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyQ3VzdG9tLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpWOE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXI6OmlzRXF1YWwpOgorCisgICAgICAgIENsYXNzcyBNZWRpYVF1ZXJ5TGlz
dCBhbmQgTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci4KKworICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5
TGlzdC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeUxpc3Q6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdDo6TWVkaWFRdWVyeUxpc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeUxpc3Q6On5NZWRpYVF1ZXJ5TGlzdCk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdDo6bWVkaWEpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFRdWVyeUxpc3Q6OmNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeUxp
c3Q6OmFkZExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlMaXN0OjpyZW1v
dmVMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdDo6ZXZhbHVhdGUp
OgorICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5TGlzdC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUXVlcnlMaXN0OjptYXRjaGVzKToKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUxp
c3RMaXN0ZW5lci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlMaXN0TGlz
dGVuZXI6On5NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKToKKworICAgICAgICBUbyBhdm9pZCBhZGRp
bmcgY29kZSB0byBjbGFzcyBET01XaW5kb3cgYSBuZXcgY2xhc3MgTWVkaWFRdWVyeVZlY3RvciB3
YXMgY3JlYXRlZC4KKyAgICAgICAgVGhpcyBuZXcgY2xhc3MgaXMgdXNlZCBieSBET01XaW5kb3cg
dG8gaW1wbGVtZW50IG1ldGhvZCBtYXRjaE1lZGlhLgorCisgICAgICAgICogY3NzL01lZGlhUXVl
cnlWZWN0b3IuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlMaXN0ZW5l
cjo6TWVkaWFRdWVyeUxpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlMaXN0
ZW5lcjo6fk1lZGlhUXVlcnlMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5
TGlzdGVuZXI6OmV2YWx1YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlWZWN0b3I6
Ok1lZGlhUXVlcnlWZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeVZlY3Rvcjo6
fk1lZGlhUXVlcnlWZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeVZlY3Rvcjo6
dGVybWluYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlWZWN0b3I6Om1lZGlhVHlw
ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5VmVjdG9yOjpwcmVwYXJlRXZhbHVhdG9y
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlWZWN0b3I6Om1hdGNoTWVkaWEpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeVZlY3Rvcjo6YWRkTGlzdGVuZXIpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFRdWVyeVZlY3Rvcjo6cmVtb3ZlTGlzdGVuZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFRdWVyeVZlY3Rvcjo6ZXZhbHVhdGUpOgorICAgICAgICAqIGNzcy9NZWRpYVF1
ZXJ5VmVjdG9yLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeUxpc3RlbmVy
OjpsaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdGVuZXI6OnF1ZXJ5
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlWZWN0b3I6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVF1ZXJ5VmVjdG9yOjpldmFsUm91bmQpOgorCisgICAgICAgIERvY3Vt
ZW50IG5lZWRzIHRvIG5vdGlmeSBET01XaW5kb3cgYWJvdXQgc3R5bGUgY2hhbmdlcy4gRE9NV2lu
ZG93IGltcGxlbWVudHMKKyAgICAgICAgbWV0aG9kIG1hdGNoTWVkaWEgYXMgc3BlY2lmaWVkLgor
CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
OjpzdHlsZVNlbGVjdG9yQ2hhbmdlZCk6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojp+RE9NV2luZG93KToKKyAgICAgICAgKFdlYkNv
cmU6OkRPTVdpbmRvdzo6bWF0Y2hNZWRpYSk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6
OnN0eWxlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmNsZWFyKToKKyAg
ICAgICAgKiBwYWdlL0RPTVdpbmRvdy5oOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojpk
ZWZhdWx0U3RhdHVzKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5pZGw6CisKKyAgICAgICAg
QnVpbGQgc3lzdGVtcyBpc3N1ZXMuCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgor
ICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAg
ICAgKiBXZWJDb3JlLnByaToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvZ29iamVj
dC9HTlVtYWtlZmlsZS5hbToKKworICAgICAgICBUZXN0czogZmFzdC9tZWRpYS9tZWRpYS1xdWVy
eS1saXN0LTAxLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlz
dC0wMi5odG1sCisgICAgICAgICAgICAgICBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMu
aHRtbAorCisKIDIwMTAtMDktMDMgIE5pa29sYXMgWmltbWVybWFubiAgPG56aW1tZXJtYW5uQHJp
bS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGlyayBTY2h1bHplLgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
CmluZGV4IDZmZDFjZGUuLmZkZTNmYmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQorKysgYi9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTI1Nyw2ICsyNTcs
OCBAQCBET01fQ0xBU1NFUyA9IFwKICAgICBMb2NhdGlvbiBcCiAgICAgTWVkaWFFcnJvciBcCiAg
ICAgTWVkaWFMaXN0IFwKKyAgICBNZWRpYVF1ZXJ5TGlzdCBcCisgICAgTWVkaWFRdWVyeUxpc3RM
aXN0ZW5lciBcCiAgICAgTWVtb3J5SW5mbyBcCiAgICAgTWVzc2FnZUNoYW5uZWwgXAogICAgIE1l
c3NhZ2VFdmVudCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbQppbmRleCA5ZjdlZWYzLi4wNGUzZWExIDEwMDY0NAotLS0gYS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTQxMyw2
ICs0MTMsMTAgQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTTWVkaWFFcnJvci5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFM
aXN0LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhTGlzdC5oIFwKKwlEZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFRdWVyeUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTTWVkaWFRdWVyeUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVt
b3J5SW5mby5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZW1vcnlJbmZvLmggXAog
CURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZXNzYWdlQ2hhbm5lbC5jcHAgXApAQCAtNzE5LDYg
KzcyMyw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xv
Y2F0aW9uQ3VzdG9tLmggXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNNYWluVGhyZWFkRXhlY1N0
YXRlLmNwcCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01haW5UaHJlYWRFeGVjU3RhdGUuaCBc
CisJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lZGlhUXVlcnlMaXN0TGlzdGVuZXJDdXN0b20uY3Bw
IFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUNoYW5uZWxDdXN0b20uY3BwIFwKIAlX
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCBcCiAJV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmNwcCBcCkBAIC05MzgsMTEgKzk0MywxNiBA
QCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvY3NzL01lZGlhTGlzdC5jcHAgXAogCVdl
YkNvcmUvY3NzL01lZGlhTGlzdC5oIFwKIAlXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5LmNwcCBcCisJ
V2ViQ29yZS9jc3MvTWVkaWFRdWVyeS5oIFwKIAlXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVh
dG9yLmNwcCBcCiAJV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5oIFwKIAlXZWJDb3Jl
L2Nzcy9NZWRpYVF1ZXJ5RXhwLmNwcCBcCiAJV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cC5oIFwK
LQlXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5LmggXAorCVdlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0
LmNwcCBcCisJV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3QuaCBcCisJV2ViQ29yZS9jc3MvTWVk
aWFRdWVyeUxpc3RMaXN0ZW5lci5oIFwKKwlXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5VmVjdG9yLmNw
cCBcCisJV2ViQ29yZS9jc3MvTWVkaWFRdWVyeVZlY3Rvci5oIFwKIAlXZWJDb3JlL2Nzcy9QYWly
LmggXAogCVdlYkNvcmUvY3NzL1JlY3QuaCBcCiAJV2ViQ29yZS9jc3MvUkdCQ29sb3IuY3BwIFwK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
aW5kZXggNTUwNjg1NC4uYzdhYjE3YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
KysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTE5LDYgKzE5LDggQEAKICAgICAgICAgICAg
ICdjc3MvQ1NTVmFyaWFibGVzUnVsZS5pZGwnLAogICAgICAgICAgICAgJ2Nzcy9Db3VudGVyLmlk
bCcsCiAgICAgICAgICAgICAnY3NzL01lZGlhTGlzdC5pZGwnLAorICAgICAgICAgICAgJ2Nzcy9N
ZWRpYVF1ZXJ5TGlzdC5pZGwnLAorICAgICAgICAgICAgJ2Nzcy9NZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyLmlkbCcsCiAgICAgICAgICAgICAnY3NzL1JlY3QuaWRsJywKICAgICAgICAgICAgICdjc3Mv
UkdCQ29sb3IuaWRsJywKICAgICAgICAgICAgICdjc3MvU3R5bGVNZWRpYS5pZGwnLApAQCAtNzg4
LDYgKzc5MCw3IEBACiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW5zcGVjdG9y
RnJvbnRlbmRIb3N0Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9t
L1Y4SmF2YVNjcmlwdENhbGxGcmFtZUN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOExvY2F0aW9uQ3VzdG9tLmNwcCcsCisgICAgICAgICAgICAnYmluZGluZ3Mv
djgvY3VzdG9tL1Y4TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckN1c3RvbS5jcHAnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE1lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3IuY3BwJywK
ICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhNZXNzYWdlRXZlbnRDdXN0b20uY3Bw
JywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhNZXNzYWdlUG9ydEN1c3RvbS5j
cHAnLApAQCAtMTA0NiwxMSArMTA0OSwxNiBAQAogICAgICAgICAgICAgJ2Nzcy9NZWRpYUxpc3Qu
Y3BwJywKICAgICAgICAgICAgICdjc3MvTWVkaWFMaXN0LmgnLAogICAgICAgICAgICAgJ2Nzcy9N
ZWRpYVF1ZXJ5LmNwcCcsCisgICAgICAgICAgICAnY3NzL01lZGlhUXVlcnkuaCcsCiAgICAgICAg
ICAgICAnY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwJywKICAgICAgICAgICAgICdjc3MvTWVk
aWFRdWVyeUV2YWx1YXRvci5oJywKICAgICAgICAgICAgICdjc3MvTWVkaWFRdWVyeUV4cC5jcHAn
LAogICAgICAgICAgICAgJ2Nzcy9NZWRpYVF1ZXJ5RXhwLmgnLAotICAgICAgICAgICAgJ2Nzcy9N
ZWRpYVF1ZXJ5LmgnLAorICAgICAgICAgICAgJ2Nzcy9NZWRpYVF1ZXJ5TGlzdC5jcHAnLAorICAg
ICAgICAgICAgJ2Nzcy9NZWRpYVF1ZXJ5TGlzdC5oJywKKyAgICAgICAgICAgICdjc3MvTWVkaWFR
dWVyeUxpc3RMaXN0ZW5lci5oJywKKyAgICAgICAgICAgICdjc3MvTWVkaWFRdWVyeVZlY3Rvci5j
cHAnLAorICAgICAgICAgICAgJ2Nzcy9NZWRpYVF1ZXJ5VmVjdG9yLmgnLAogICAgICAgICAgICAg
J2Nzcy9QYWlyLmgnLAogICAgICAgICAgICAgJ2Nzcy9SZWN0LmgnLAogICAgICAgICAgICAgJ2Nz
cy9SR0JDb2xvci5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnByaSBiL1dlYkNv
cmUvV2ViQ29yZS5wcmkKaW5kZXggYTRjNjliMS4uODMyNzQ0YiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9XZWJDb3JlLnByaQorKysgYi9XZWJDb3JlL1dlYkNvcmUucHJpCkBAIC04MSw2ICs4MSw4IEBA
IElETF9CSU5ESU5HUyArPSBcCiAgICAgY3NzL0NTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uLmlkbCBc
CiAgICAgY3NzL0NTU1ZhcmlhYmxlc1J1bGUuaWRsIFwKICAgICBjc3MvTWVkaWFMaXN0LmlkbCBc
CisgICAgY3NzL01lZGlhUXVlcnlMaXN0LmlkbCBcCisgICAgY3NzL01lZGlhUXVlcnlMaXN0TGlz
dGVuZXIuaWRsIFwKICAgICBjc3MvUmVjdC5pZGwgXAogICAgIGNzcy9SR0JDb2xvci5pZGwgXAog
ICAgIGNzcy9TdHlsZU1lZGlhLmlkbCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJv
IGIvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCAzZjIzY2RkLi5mY2Y1ZDNhIDEwMDY0NAotLS0g
YS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTM0Nyw2
ICszNDcsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBiaW5kaW5ncy9qcy9KU0luamVjdGVkU2NyaXB0
SG9zdEN1c3RvbS5jcHAgXAogICAgIGJpbmRpbmdzL2pzL0pTSW5zcGVjdG9yRnJvbnRlbmRIb3N0
Q3VzdG9tLmNwcCBcCiAgICAgYmluZGluZ3MvanMvSlNMb2NhdGlvbkN1c3RvbS5jcHAgXAorICAg
IGJpbmRpbmdzL2pzL0pTTWVkaWFRdWVyeUxpc3RMaXN0ZW5lckN1c3RvbS5jcHAgXAogICAgIGJp
bmRpbmdzL2pzL0pTTmFtZWROb2RlTWFwQ3VzdG9tLmNwcCBcCiAgICAgYmluZGluZ3MvanMvSlNO
YXZpZ2F0b3JDdXN0b20uY3BwICBcCiAgICAgYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcCBc
CkBAIC00NTYsNiArNDU3LDggQEAgU09VUkNFUyArPSBcCiAgICAgY3NzL01lZGlhUXVlcnkuY3Bw
IFwKICAgICBjc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAgXAogICAgIGNzcy9NZWRpYVF1ZXJ5
RXhwLmNwcCBcCisgICAgY3NzL01lZGlhUXVlcnlMaXN0LmNwcCBcCisgICAgY3NzL01lZGlhUXVl
cnlWZWN0b3IuY3BwIFwKICAgICBjc3MvUkdCQ29sb3IuY3BwIFwKICAgICBjc3MvU2hhZG93VmFs
dWUuY3BwIFwKICAgICBjc3MvU3R5bGVCYXNlLmNwcCBcCkBAIC0xMjQwLDYgKzEyNDMsOSBAQCBI
RUFERVJTICs9IFwKICAgICBjc3MvTWVkaWFMaXN0LmggXAogICAgIGNzcy9NZWRpYVF1ZXJ5RXZh
bHVhdG9yLmggXAogICAgIGNzcy9NZWRpYVF1ZXJ5RXhwLmggXAorICAgIGNzcy9NZWRpYVF1ZXJ5
TGlzdC5oIFwKKyAgICBjc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oIFwKKyAgICBjc3MvTWVk
aWFRdWVyeVZlY3Rvci5oIFwKICAgICBjc3MvTWVkaWFRdWVyeS5oIFwKICAgICBjc3MvUkdCQ29s
b3IuaCBcCiAgICAgY3NzL1NoYWRvd1ZhbHVlLmggXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCBjOGI4OGVjLi43MTU0NjU3IDEwMDY0NAotLS0gYS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTE2MCw2ICs1MTYwLDE2IEBACiAJCUQy
M0NBNTZDMEFCMEVCOEQwMDUxMDhBNSAvKiBSYW5nZUV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDIzQ0E1NkIwQUIwRUI4RDAwNTEwOEE1
IC8qIFJhbmdlRXhjZXB0aW9uLmggKi87IH07CiAJCUQzOUQwMDZEMTFGOEUzMDgwMDYwNDFGMiAv
KiBQb3B1cE1lbnVNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEQzOUQwMDZDMTFGOEUzMDgwMDYwNDFGMiAvKiBQb3B1cE1lbnVNYWMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlEMzlEMDA5RDExRjkw
N0U2MDA2MDQxRjIgLyogU2VhcmNoUG9wdXBNZW51TWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMzlEMDA5QzExRjkwN0U2MDA2MDQxRjIgLyogU2Vh
cmNoUG9wdXBNZW51TWFjLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJRDNBOTRBMzgxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQTk0QTMx
MTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdC5jcHAgKi87IH07CisJCUQzQTk0QTM5
MTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNBOTRBMzIxMjJEQUJBQzAwQTM3QkJDIC8qIE1l
ZGlhUXVlcnlMaXN0LmggKi87IH07CisJCUQzQTk0QTNCMTIyREFCQUMwMEEzN0JCQyAvKiBNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBEM0E5NEEzNDEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeUxpc3RMaXN0
ZW5lci5oICovOyB9OworCQlEM0E5NEEzRDEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeVZl
Y3Rvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBE
M0E5NEEzNjEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeVZlY3Rvci5jcHAgKi87IH07CisJ
CUQzQTk0QTNFMTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5VmVjdG9yLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0E5NEEzNzEyMkRBQkFDMDBB
MzdCQkMgLyogTWVkaWFRdWVyeVZlY3Rvci5oICovOyB9OworCQlEM0E5NEE0NjEyMkRDNDBGMDBB
MzdCQkMgLyogSlNNZWRpYVF1ZXJ5TGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBEM0E5NEE0MjEyMkRDNDBGMDBBMzdCQkMgLyogSlNNZWRpYVF1
ZXJ5TGlzdC5jcHAgKi87IH07CisJCUQzQTk0QTQ3MTIyREM0MEYwMEEzN0JCQyAvKiBKU01lZGlh
UXVlcnlMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBEM0E5NEE0MzEyMkRDNDBGMDBBMzdCQkMgLyogSlNNZWRpYVF1ZXJ5TGlzdC5oICovOyB9Owor
CQlEM0E5NEE0ODEyMkRDNDBGMDBBMzdCQkMgLyogSlNNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQTk0QTQ0
MTIyREM0MEYwMEEzN0JCQyAvKiBKU01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwICovOyB9Owor
CQlEM0E5NEE0OTEyMkRDNDBGMDBBMzdCQkMgLyogSlNNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0E5NEE0NTEy
MkRDNDBGMDBBMzdCQkMgLyogSlNNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggKi87IH07CisJCUQz
RkRFRDlDMTIyRUZDNkEwMDhGNTI2RiAvKiBKU01lZGlhUXVlcnlMaXN0TGlzdGVuZXJDdXN0b20u
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNGREVE
OUIxMjJFRkM2QTAwOEY1MjZGIC8qIEpTTWVkaWFRdWVyeUxpc3RMaXN0ZW5lckN1c3RvbS5jcHAg
Ki87IH07CiAJCUQ4QjYxNTJGMTAzMjQ5NTEwMEM4NTU0QSAvKiBDb29raWUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQ4QjYxNTJFMTAzMjQ5NTEwMEM4
NTU0QSAvKiBDb29raWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlEQjIzQzJDQjBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1h
bmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREIy
M0MyQzkwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmNwcCAqLzsgfTsK
IAkJREIyM0MyQ0MwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQjIzQzJDQTBBNTA4
RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuaCAqLzsgfTsKQEAgLTEwOTg2LDYg
KzEwOTk2LDE4IEBACiAJCUQyM0NBNTZCMEFCMEVCOEQwMDUxMDhBNSAvKiBSYW5nZUV4Y2VwdGlv
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmFuZ2VFeGNlcHRpb24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDM5RDAwNkMxMUY4RTMwODAwNjA0MUYyIC8q
IFBvcHVwTWVudU1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQb3B1cE1l
bnVNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDM5RDAwOUMxMUY5MDdFNjAw
NjA0MUYyIC8qIFNlYXJjaFBvcHVwTWVudU1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTZWFyY2hQb3B1cE1lbnVNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRDNBOTRBMzExMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhUXVlcnlMaXN0LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDNBOTRBMzIxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlh
UXVlcnlMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUXVlcnlM
aXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQzQTk0QTMzMTIyREFCQUMwMEEz
N0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTWVkaWFR
dWVyeUxpc3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEM0E5NEEzNDEyMkRB
QkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUQzQTk0QTM1MTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDNBOTRBMzYxMjJEQUJBQzAw
QTM3QkJDIC8qIE1lZGlhUXVlcnlWZWN0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gTWVkaWFRdWVyeVZlY3Rvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUQzQTk0QTM3MTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5VmVjdG9yLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUXVlcnlWZWN0b3IuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDNBOTRBNDIxMjJEQzQwRjAwQTM3QkJDIC8qIEpTTWVk
aWFRdWVyeUxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNN
ZWRpYVF1ZXJ5TGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQzQTk0QTQz
MTIyREM0MEYwMEEzN0JCQyAvKiBKU01lZGlhUXVlcnlMaXN0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTTWVkaWFRdWVyeUxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRDNBOTRBNDQxMjJEQzQwRjAwQTM3QkJDIC8qIEpTTWVkaWFRdWVyeUxpc3RMaXN0
ZW5lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU01lZGlhUXVl
cnlMaXN0TGlzdGVuZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEM0E5NEE0
NTEyMkRDNDBGMDBBMzdCQkMgLyogSlNNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEM0ZERUQ5QjEyMkVGQzZBMDA4RjUyNkYgLyogSlNN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTTWVkaWFRdWVyeUxpc3RMaXN0ZW5lckN1c3RvbS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQ4QjYxNTJFMTAzMjQ5NTEwMEM4NTU0QSAvKiBDb29raWUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29va2llLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCURCMjNDMkM5MEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRk
ZW50Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5k
ZW50T3V0ZGVudENvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQjIz
QzJDQTBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluZGVudE91dGRlbnRDb21tYW5kLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTAyMyw2ICsxNTA0NSwxMCBAQAogCQkJCUJDNjg2QzdB
MEUwQzMzMDEwMERFOEEwOCAvKiBKU0NTU1ZhcmlhYmxlc1J1bGUuY3BwICovLAogCQkJCUJDNjg2
QzdCMEUwQzMzMDEwMERFOEEwOCAvKiBKU0NTU1ZhcmlhYmxlc1J1bGUuaCAqLywKIAkJCQlCQzND
MzlCNDBDMEQzRDhEMDA1RjREN0EgLyogSlNNZWRpYUxpc3QuY3BwICovLAorCQkJCUQzQTk0QTQy
MTIyREM0MEYwMEEzN0JCQyAvKiBKU01lZGlhUXVlcnlMaXN0LmNwcCAqLywKKwkJCQlEM0E5NEE0
MzEyMkRDNDBGMDBBMzdCQkMgLyogSlNNZWRpYVF1ZXJ5TGlzdC5oICovLAorCQkJCUQzQTk0QTQ0
MTIyREM0MEYwMEEzN0JCQyAvKiBKU01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwICovLAorCQkJ
CUQzQTk0QTQ1MTIyREM0MEYwMEEzN0JCQyAvKiBKU01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCAq
LywKIAkJCQlCQzNDMzlCNTBDMEQzRDhEMDA1RjREN0EgLyogSlNNZWRpYUxpc3QuaCAqLywKIAkJ
CQlCQ0ZFMkYwRjBDMUI1ODM3MDAyMDIzNUYgLyogSlNSZWN0LmNwcCAqLywKIAkJCQlCQ0ZFMkYx
MDBDMUI1ODM3MDAyMDIzNUYgLyogSlNSZWN0LmggKi8sCkBAIC0xNjMwMiw2ICsxNjMyOCw3IEBA
CiAJCQkJNDlFRUNGNzExMDUwOEQ5QzAwMDk5RkFCIC8qIEpTSW50OEFycmF5Q3VzdG9tLmNwcCAq
LywKIAkJCQkxQzVGQUVFNjBEQ0ZEQTY4MDBENThGNzggLyogSlNKYXZhU2NyaXB0Q2FsbEZyYW1l
Q3VzdG9tLmNwcCAqLywKIAkJCQlCQ0UxQzQzRjBEOTgzMEY0MDAzQjAyRjIgLyogSlNMb2NhdGlv
bkN1c3RvbS5jcHAgKi8sCisJCQkJRDNGREVEOUIxMjJFRkM2QTAwOEY1MjZGIC8qIEpTTWVkaWFR
dWVyeUxpc3RMaXN0ZW5lckN1c3RvbS5jcHAgKi8sCiAJCQkJRTFBNUY5OUEwRTdFQUEyNTAwQUY4
NUVBIC8qIEpTTWVzc2FnZUNoYW5uZWxDdXN0b20uY3BwICovLAogCQkJCTQxMEI3RTcxMTA0NUZB
QjAwMEQ4MjI0RiAvKiBKU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAgKi8sCiAJCQkJRTFBREVENDYw
RTc2QjhERDAwNEExQTVFIC8qIEpTTWVzc2FnZVBvcnRDdXN0b20uY3BwICovLApAQCAtMTcwMzAs
NiArMTcwNTcsMTMgQEAKIAkJCQk0RTE5NTkyNjBBMzlEQUNDMDAyMjBGRTUgLyogTWVkaWFRdWVy
eUV2YWx1YXRvci5oICovLAogCQkJCTRFMTk1OTI3MEEzOURBQ0MwMDIyMEZFNSAvKiBNZWRpYVF1
ZXJ5RXhwLmNwcCAqLywKIAkJCQk0RTE5NTkyODBBMzlEQUNDMDAyMjBGRTUgLyogTWVkaWFRdWVy
eUV4cC5oICovLAorCQkJCUQzQTk0QTMxMTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlz
dC5jcHAgKi8sCisJCQkJRDNBOTRBMzIxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0
LmggKi8sCisJCQkJRDNBOTRBMzMxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0Lmlk
bCAqLywKKwkJCQlEM0E5NEEzNDEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeUxpc3RMaXN0
ZW5lci5oICovLAorCQkJCUQzQTk0QTM1MTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyLmlkbCAqLywKKwkJCQlEM0E5NEEzNjEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFR
dWVyeVZlY3Rvci5jcHAgKi8sCisJCQkJRDNBOTRBMzcxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlh
UXVlcnlWZWN0b3IuaCAqLywKIAkJCQlBODBFNkNEMTBBMTk4OUNBMDA3RkI4QzUgLyogUGFpci5o
ICovLAogCQkJCTkzQ0E0QzlGMDlERjkzRkEwMERGODY3NyAvKiBxdWlya3MuY3NzICovLAogCQkJ
CUJDNDM2OEU3MEMyMjZFMzIwMDVFRkI1RiAvKiBSZWN0LmggKi8sCkBAIC0yMDQzMiw2ICsyMDQ2
NiwxMSBAQAogCQkJCTg5ODc4NUI5MTIyQ0EyQTcwMDNBQUJEQSAvKiBKU01ldGFkYXRhQ2FsbGJh
Y2suaCBpbiBIZWFkZXJzICovLAogCQkJCTg5ODc4NUYxMTIyRTFFODcwMDNBQUJEQSAvKiBKU0Zp
bGVFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTg5ODc4NUY1MTIyRTFFQUMwMDNBQUJE
QSAvKiBKU0ZpbGVSZWFkZXJTeW5jLmggaW4gSGVhZGVycyAqLywKKwkJCQlEM0E5NEEzOTEyMkRB
QkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeUxpc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCUQzQTk0
QTNCMTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlEM0E5NEEzRTEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeVZlY3Rvci5o
IGluIEhlYWRlcnMgKi8sCisJCQkJRDNBOTRBNDcxMjJEQzQwRjAwQTM3QkJDIC8qIEpTTWVkaWFR
dWVyeUxpc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCUQzQTk0QTQ5MTIyREM0MEYwMEEzN0JCQyAv
KiBKU01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1
bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjI4OTUsNiAr
MjI5MzQsMTEgQEAKIAkJCQk4OTg3ODVCODEyMkNBMkE3MDAzQUFCREEgLyogSlNNZXRhZGF0YUNh
bGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg5ODc4NUYwMTIyRTFFODcwMDNBQUJEQSAv
KiBKU0ZpbGVFeGNlcHRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODk4Nzg1RjQxMjJFMUVB
QzAwM0FBQkRBIC8qIEpTRmlsZVJlYWRlclN5bmMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRDNB
OTRBMzgxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0LmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCUQzQTk0QTNEMTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5VmVjdG9yLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUQzQTk0QTQ2MTIyREM0MEYwMEEzN0JCQyAvKiBKU01lZGlhUXVl
cnlMaXN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUQzQTk0QTQ4MTIyREM0MEYwMEEzN0JCQyAv
KiBKU01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRDNGREVE
OUMxMjJFRkM2QTAwOEY1MjZGIC8qIEpTTWVkaWFRdWVyeUxpc3RMaXN0ZW5lckN1c3RvbS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNz
aW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9HTlVt
YWtlZmlsZS5hbSBiL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9HTlVtYWtlZmlsZS5hbQppbmRl
eCAxMjgzNWNjLi5mM2VmZjFiIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3Qv
R05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dOVW1ha2VmaWxl
LmFtCkBAIC0xOTIsNiArMTkyLDEwIEBAIHdlYmtpdGd0a19nZG9tX2J1aWx0X3NvdXJjZXMgKz0g
XAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01NZWRpYUVycm9yUHJpdmF0ZS5oIFwK
IAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NTWVkaWFMaXN0LmNwcCBcCiAJRGVyaXZl
ZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTU1lZGlhTGlzdFByaXZhdGUuaCBcCisJRGVyaXZlZFNv
dXJjZXMvd2Via2l0L1dlYktpdERPTU1lZGlhUXVlcnlMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvd2Via2l0L1dlYktpdERPTU1lZGlhUXVlcnlMaXN0UHJpdmF0ZS5oIFwKKwlEZXJpdmVkU291
cmNlcy93ZWJraXQvV2ViS2l0RE9NTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJpdmF0ZS5o
IFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NTWVtb3J5SW5mby5jcHAgXAogCURl
cml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01NZW1vcnlJbmZvUHJpdmF0ZS5oIFwKIAlEZXJp
dmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NTWVzc2FnZVBvcnQuY3BwIFwKQEAgLTI1MCw2ICsy
NTQsOCBAQCB3ZWJraXRndGtfYnVpbHRfaF9hcGkgKz0gXAogCURlcml2ZWRTb3VyY2VzL3dlYmtp
dC9XZWJLaXRET01DU1NTdHlsZVNoZWV0LmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJL
aXRET01DU1NWYWx1ZS5oIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NTWVkaWFM
aXN0LmggXAorCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01NZWRpYVF1ZXJ5TGlzdC5o
IFwKKwlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NTWVkaWFRdWVyeUxpc3RMaXN0ZW5l
ci5oIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NU3R5bGVNZWRpYS5oIFwKIAlE
ZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NU3R5bGVTaGVldC5oIFwKIAlEZXJpdmVkU291
cmNlcy93ZWJraXQvV2ViS2l0RE9NU3R5bGVTaGVldExpc3QuaCBcCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTTWVkaWFRdWVyeUxpc3RMaXN0ZW5lckN1c3RvbS5jcHAgYi9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTTWVkaWFRdWVyeUxpc3RMaXN0ZW5lckN1c3RvbS5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjE0ZWUyNgotLS0gL2Rldi9udWxsCisrKyBi
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ3VzdG9tLmNwcApA
QCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0
aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJKU01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCIKKworI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0FQSUNhc3QuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU1ZhbHVl
UmVmLmg+CisKKyNpbmNsdWRlIDxydW50aW1lL0pTT2JqZWN0Lmg+CisjaW5jbHVkZSA8cnVudGlt
ZS9KU1ZhbHVlLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBKU0M7CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworCitzdGF0aWMgYm9vbCBoYXNOb1ZhbHVlKGNvbnN0IEpTVmFsdWUgdmFsdWUpCit7Cisg
ICAgcmV0dXJuIHZhbHVlID09IEpTQzo6SlNWYWx1ZSgpOworfQorCitib29sIEpTTWVkaWFRdWVy
eUxpc3RMaXN0ZW5lcjo6aXNFcXVhbChNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKiBvdGhlcikKK3sK
KyAgICBKU01lZGlhUXVlcnlMaXN0TGlzdGVuZXIqIHB0ciA9IHN0YXRpY19jYXN0PEpTTWVkaWFR
dWVyeUxpc3RMaXN0ZW5lcio+KG90aGVyKTsKKyAgICBpZiAoIXB0cikKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgaWYgKGhhc05vVmFsdWUobV9kYXRhLT5jYWxsYmFjaygpKSkKKyAgICAg
ICAgcmV0dXJuIGhhc05vVmFsdWUocHRyLT5tX2RhdGEtPmNhbGxiYWNrKCkpOworCisgICAgRXhl
Y1N0YXRlKiBleGVjID0gbV9kYXRhLT5nbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpOworICAg
IHJldHVybiBKU1ZhbHVlSXNFcXVhbCh0b1JlZihleGVjKSwgdG9SZWYoZXhlYywgbV9kYXRhLT5j
YWxsYmFjaygpKSwgdG9SZWYoZXhlYywgcHRyLT5tX2RhdGEtPmNhbGxiYWNrKCkpLCAwKTsKK30K
KworfQorCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRl
eCA4NGUzOTE5Li42NTZiYWY1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySlMucG0KQEAgLTYsNiArNiw3IEBACiAjIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywg
MjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjIENvcHly
aWdodCAoQykgMjAwOSBDYW1lcm9uIE1jQ29ybWFjayA8Y2FtQG1jYy5pZC5hdT4KICMgQ29weXJp
Z2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDEwLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpCiAjCiAjIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIxMTIsNiArMjExMywxNCBAQCBz
dWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgIHB1c2goQGltcGxDb250ZW50LCAiXG4jZW5k
aWYgLy8gJHtjb25kaXRpb25hbFN0cmluZ31cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKIH0K
IAorc3ViIEdldE5hdGl2ZVR5cGVGb3JDYWxsYmFja3MKK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0
OworICAgIG15ICRpc1BhcmFtZXRlciA9IHNoaWZ0OworICAgIHJldHVybiAidm9pZCIgaWYgKCR0
eXBlIGVxICJ2b2lkIikgYW5kICEkaXNQYXJhbWV0ZXI7CisgICAgcmV0dXJuIEdldE5hdGl2ZVR5
cGUoJHR5cGUpOworfQorCiBzdWIgR2VuZXJhdGVDYWxsYmFja0hlYWRlcgogewogICAgIG15ICRv
YmplY3QgPSBzaGlmdDsKQEAgLTIxNDgsMTEgKzIxNTcsMTIgQEAgc3ViIEdlbmVyYXRlQ2FsbGJh
Y2tIZWFkZXIKICAgICAgICAgZm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7JGRhdGFOb2RlLT5mdW5j
dGlvbnN9KSB7CiAgICAgICAgICAgICBteSBAcGFyYW1zID0gQHskZnVuY3Rpb24tPnBhcmFtZXRl
cnN9OwogICAgICAgICAgICAgaWYgKCEkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IkN1c3RvbSJ9ICYmCi0gICAgICAgICAgICAgICAgIShHZXROYXRpdmVUeXBlKCRm
dW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlKSBlcSAiYm9vbCIpKSB7CisgICAgICAgICAgICAgICAg
ISgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSBlcSAiYm9vbGVhbiIpICYmCisgICAgICAgICAg
ICAgICAgISgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSBlcSAidm9pZCIpKSB7CiAgICAgICAg
ICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBDT01QSUxFX0FTU0VSVChmYWxzZSki
KTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAg
ICB2aXJ0dWFsICIgLiBHZXROYXRpdmVUeXBlKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlKSAu
ICIgIiAuICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lIC4gIigiKTsKKyAgICAgICAgICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCAiIC4gR2V0TmF0aXZlVHlwZUZvckNhbGxi
YWNrcygkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSwgMCkgLiAiICIgLiAkZnVuY3Rpb24tPnNp
Z25hdHVyZS0+bmFtZSAuICIoIik7CiAKICAgICAgICAgICAgIG15IEBhcmdzID0gKCk7CiAgICAg
ICAgICAgICBmb3JlYWNoIG15ICRwYXJhbSAoQHBhcmFtcykgewpAQCAtMjIyNywxMiArMjIzNywx
MiBAQCBzdWIgR2VuZXJhdGVDYWxsYmFja0ltcGxlbWVudGF0aW9uCiAgICAgICAgIGZvcmVhY2gg
bXkgJGZ1bmN0aW9uIChAeyRkYXRhTm9kZS0+ZnVuY3Rpb25zfSkgewogICAgICAgICAgICAgbXkg
QHBhcmFtcyA9IEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfTsKICAgICAgICAgICAgIGlmICgkZnVu
Y3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbSJ9IHx8Ci0gICAg
ICAgICAgICAgICAgIShHZXROYXRpdmVUeXBlKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlKSBl
cSAiYm9vbCIpKSB7CisgICAgICAgICAgICAgICAgKCEoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5
cGUgZXEgImJvb2xlYW4iKSAmJiAhKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlIGVxICJ2b2lk
IikpKSB7CiAgICAgICAgICAgICAgICAgbmV4dDsKICAgICAgICAgICAgIH0KIAogICAgICAgICAg
ICAgQWRkSW5jbHVkZXNGb3JUeXBlKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlKTsKLSAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiXG4iIC4gR2V0TmF0aXZlVHlwZSgkZnVuY3Rpb24t
PnNpZ25hdHVyZS0+dHlwZSkgLiAiICR7Y2xhc3NOYW1lfTo6IiAuICRmdW5jdGlvbi0+c2lnbmF0
dXJlLT5uYW1lIC4gIigiKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiXG4iIC4g
R2V0TmF0aXZlVHlwZUZvckNhbGxiYWNrcygkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSwgMCkg
LiAiICR7Y2xhc3NOYW1lfTo6IiAuICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lIC4gIigiKTsK
IAogICAgICAgICAgICAgbXkgQGFyZ3MgPSAoKTsKICAgICAgICAgICAgIGZvcmVhY2ggbXkgJHBh
cmFtIChAcGFyYW1zKSB7CkBAIC0yMjQ0LDI0ICsyMjU0LDM5IEBAIHN1YiBHZW5lcmF0ZUNhbGxi
YWNrSW1wbGVtZW50YXRpb24KIAogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4i
KTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICghY2FuSW52b2tlQ2Fs
bGJhY2soKSlcbiIpOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJl
dHVybiB0cnVlO1xuXG4iKTsKKyAgICAgICAgICAgIGlmIChHZXROYXRpdmVUeXBlKCRmdW5jdGlv
bi0+c2lnbmF0dXJlLT50eXBlKSBlcSAiYm9vbCIpIHsKKyAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuIHRydWU7XG5cbiIpOworICAgICAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJu
O1xuXG4iKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIFJlZlB0cjwkY2xhc3NOYW1lPiBwcm90ZWN0KHRoaXMpO1xuXG4iKTsKICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgIEpTTG9jayBsb2NrKFNpbGVuY2VBc3NlcnRpb25zT25s
eSk7XG5cbiIpOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgRXhlY1N0YXRl
KiBleGVjID0gbV9kYXRhLT5nbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpO1xuIik7CisgICAg
ICAgICAgICBmb3JlYWNoIG15ICRwYXJhbSAoQHBhcmFtcykgeworICAgICAgICAgICAgICAgIGlm
ICghKCRwYXJhbS0+dHlwZSBlcSAiYm9vbGVhbiIpKSB7CisgICAgICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIEV4ZWNTdGF0ZSogZXhlYyA9IG1fZGF0YS0+Z2xvYmFsT2Jq
ZWN0KCktPmdsb2JhbEV4ZWMoKTtcbiIpOworICAgICAgICAgICAgICAgICAgICBsYXN0OworICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGFyZ3M7XG4iKTsKIAogICAgICAgICAgICAg
Zm9yZWFjaCBteSAkcGFyYW0gKEBwYXJhbXMpIHsKICAgICAgICAgICAgICAgICBteSAkcGFyYW1O
YW1lID0gJHBhcmFtLT5uYW1lOwotICAgICAgICAgICAgICAgIGlmICgkcGFyYW0tPnR5cGUgZXEg
IkRPTVN0cmluZyIpIHsKLSAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgYXJncy5hcHBlbmQoanNTdHJpbmcoZXhlYywgJHtwYXJhbU5hbWV9KSk7XG4iKTsKKyAgICAg
ICAgICAgICAgICBpZiAoJHBhcmFtLT50eXBlIGVxICJib29sZWFuIikgeworICAgICAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBhcmdzLmFwcGVuZChqc0Jvb2xlYW4oJHtw
YXJhbU5hbWV9KSk7XG4iKTsKICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBhcmdzLmFwcGVuZCh0b0pTKGV4ZWMsICR7
cGFyYW1OYW1lfSkpO1xuIik7CisgICAgICAgICAgICAgICAgICAgIGlmICgkcGFyYW0tPnR5cGUg
ZXEgIkRPTVN0cmluZyIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgIGFyZ3MuYXBwZW5kKGpzU3RyaW5nKGV4ZWMsICR7cGFyYW1OYW1lfSkpO1xuIik7
CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICBhcmdzLmFwcGVuZCh0b0pTKGV4ZWMsICR7cGFyYW1OYW1l
fSkpO1xuIik7CisgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICB9CiAKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiXG4gICAgYm9vbCBy
YWlzZWRFeGNlcHRpb24gPSBmYWxzZTtcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgbV9kYXRhLT5pbnZva2VDYWxsYmFjayhhcmdzLCAmcmFpc2VkRXhjZXB0aW9uKTtc
biIpOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuICFyYWlzZWRF
eGNlcHRpb247XG4iKTsKKyAgICAgICAgICAgIGlmIChHZXROYXRpdmVUeXBlKCRmdW5jdGlvbi0+
c2lnbmF0dXJlLT50eXBlKSBlcSAiYm9vbCIpIHsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICByZXR1cm4gIXJhaXNlZEV4Y2VwdGlvbjtcbiIpOworICAgICAgICAgICAg
fQogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG4iKTsKICAgICAgICAgfQogICAg
IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgu
cG0gYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCmluZGV4IDAy
ODE2OWYuLjBiNTlkOTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9yVjgucG0KKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JWOC5wbQpAQCAtNiw2ICs2LDcgQEAKICMgQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1
dGVyLCBJbmMuCiAjIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAwOSBHb29nbGUgSW5jLgog
IyBDb3B5cmlnaHQgKEMpIDIwMDkgQ2FtZXJvbiBNY0Nvcm1hY2sgPGNhbUBtY2MuaWQuYXU+Cisj
IENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlh
cnkoLWllcykKICMKICMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgogIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjIxMiwxNSArMjIxMywxNiBAQCBFTkQKICAg
ICAgICAgZm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7JGRhdGFOb2RlLT5mdW5jdGlvbnN9KSB7CiAg
ICAgICAgICAgICBteSBAcGFyYW1zID0gQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9OwogICAgICAg
ICAgICAgaWYgKCEkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1
c3RvbSJ9ICYmCi0gICAgICAgICAgICAgICAgIShHZXROYXRpdmVUeXBlKCRmdW5jdGlvbi0+c2ln
bmF0dXJlLT50eXBlKSBlcSAiYm9vbCIpKSB7Ci0gICAgICAgICAgICAgICAgICAgIHB1c2goQGhl
YWRlckNvbnRlbnQsICIgICAgQ09NUElMRV9BU1NFUlQoZmFsc2UpIik7CisgICAgICAgICAgICAg
ICAgISgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSBlcSAiYm9vbGVhbiIpICYmCisgICAgICAg
ICAgICAgICAgISgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSBlcSAidm9pZCIpKSB7CisgICAg
ICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBDT01QSUxFX0FTU0VSVChmYWxz
ZSkiKTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
IiAgICB2aXJ0dWFsICIgLiBHZXROYXRpdmVUeXBlRm9yQ2FsbGJhY2tzKCRmdW5jdGlvbi0+c2ln
bmF0dXJlLT50eXBlKSAuICIgIiAuICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lIC4gIigiKTsK
KyAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCAiIC4gR2V0TmF0
aXZlVHlwZUZvckNhbGxiYWNrcygkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSwgMCkgLiAiICIg
LiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZSAuICIoIik7CiAKICAgICAgICAgICAgIG15IEBh
cmdzID0gKCk7CiAgICAgICAgICAgICBmb3JlYWNoIG15ICRwYXJhbSAoQHBhcmFtcykgewotICAg
ICAgICAgICAgICAgIHB1c2goQGFyZ3MsIEdldE5hdGl2ZVR5cGVGb3JDYWxsYmFja3MoJHBhcmFt
LT50eXBlKSAuICIgIiAuICRwYXJhbS0+bmFtZSk7CisgICAgICAgICAgICAgICAgcHVzaChAYXJn
cywgR2V0TmF0aXZlVHlwZUZvckNhbGxiYWNrcygkcGFyYW0tPnR5cGUsIDEpIC4gIiAiIC4gJHBh
cmFtLT5uYW1lKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRl
bnQsIGpvaW4oIiwgIiwgQGFyZ3MpKTsKICAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQs
ICIpO1xuIik7CkBAIC0yMjgzLDM3ICsyMjg1LDUzIEBAIEVORAogICAgICAgICBmb3JlYWNoIG15
ICRmdW5jdGlvbiAoQHskZGF0YU5vZGUtPmZ1bmN0aW9uc30pIHsKICAgICAgICAgICAgIG15IEBw
YXJhbXMgPSBAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc307CiAgICAgICAgICAgICBpZiAoJGZ1bmN0
aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b20ifSB8fAotICAgICAg
ICAgICAgICAgICEoR2V0TmF0aXZlVHlwZUZvckNhbGxiYWNrcygkZnVuY3Rpb24tPnNpZ25hdHVy
ZS0+dHlwZSkgZXEgImJvb2wiKSkgeworICAgICAgICAgICAgICAgICghKCRmdW5jdGlvbi0+c2ln
bmF0dXJlLT50eXBlIGVxICJib29sZWFuIikgJiYgISgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlw
ZSBlcSAidm9pZCIpKSkgewogICAgICAgICAgICAgICAgIG5leHQ7CiAgICAgICAgICAgICB9CiAK
ICAgICAgICAgICAgIEFkZEluY2x1ZGVzRm9yVHlwZSgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlw
ZSk7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIlxuIiAuIEdldE5hdGl2ZVR5cGVG
b3JDYWxsYmFja3MoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUpIC4gIiAke2NsYXNzTmFtZX06
OiIgLiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZSAuICIoIik7CisgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIlxuIiAuIEdldE5hdGl2ZVR5cGVGb3JDYWxsYmFja3MoJGZ1bmN0aW9u
LT5zaWduYXR1cmUtPnR5cGUsIDApIC4gIiAke2NsYXNzTmFtZX06OiIgLiAkZnVuY3Rpb24tPnNp
Z25hdHVyZS0+bmFtZSAuICIoIik7CiAKICAgICAgICAgICAgIG15IEBhcmdzID0gKCk7CiAgICAg
ICAgICAgICBmb3JlYWNoIG15ICRwYXJhbSAoQHBhcmFtcykgewogICAgICAgICAgICAgICAgIEFk
ZEluY2x1ZGVzRm9yVHlwZSgkcGFyYW0tPnR5cGUpOwotICAgICAgICAgICAgICAgIHB1c2goQGFy
Z3MsIEdldE5hdGl2ZVR5cGVGb3JDYWxsYmFja3MoJHBhcmFtLT50eXBlKSAuICIgIiAuICRwYXJh
bS0+bmFtZSk7CisgICAgICAgICAgICAgICAgcHVzaChAYXJncywgR2V0TmF0aXZlVHlwZUZvckNh
bGxiYWNrcygkcGFyYW0tPnR5cGUsIDEpIC4gIiAiIC4gJHBhcmFtLT5uYW1lKTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCBqb2luKCIsICIsIEBhcmdzKSk7
CiAKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiKVxuIik7CiAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgaWYgKCFjYW5JbnZva2VDYWxsYmFjaygpKVxuIik7Ci0gICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuIHRydWU7XG5cbiIpOworICAgICAgICAgICAgaWYg
KCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlIGVxICJib29sZWFuIikgeworICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4gdHJ1ZTtcblxuIik7CisgICAg
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
ICAgICByZXR1cm47XG5cbiIpOworICAgICAgICAgICAgfQogICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgdjg6OkhhbmRsZVNjb3BlIGhhbmRsZVNjb3BlO1xuXG4iKTsKICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IHY4
Q29udGV4dCA9IHRvVjhDb250ZXh0KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgbV93b3JsZENv
bnRleHQpO1xuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAodjhD
b250ZXh0LklzRW1wdHkoKSlcbiIpOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgICAgIHJldHVybiB0cnVlO1xuXG4iKTsKKyAgICAgICAgICAgIGlmICgkZnVuY3Rpb24tPnNp
Z25hdHVyZS0+dHlwZSBlcSAiYm9vbGVhbiIpIHsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICAgICAgcmV0dXJuIHRydWU7XG5cbiIpOworICAgICAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuO1xu
XG4iKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IHY4OjpDb250ZXh0OjpTY29wZSBzY29wZSh2OENvbnRleHQpO1xuXG4iKTsKIAogICAgICAgICAg
ICAgQGFyZ3MgPSAoKTsKICAgICAgICAgICAgIGZvcmVhY2ggbXkgJHBhcmFtIChAcGFyYW1zKSB7
CiAgICAgICAgICAgICAgICAgbXkgJHBhcmFtTmFtZSA9ICRwYXJhbS0+bmFtZTsKLSAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gJHtw
YXJhbU5hbWV9SGFuZGxlID0gdG9WOCgke3BhcmFtTmFtZX0pO1xuIik7CisgICAgICAgICAgICAg
ICAgaWYgKCRwYXJhbS0+dHlwZSBlcSAiYm9vbGVhbiIpIHsKKyAgICAgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+ICR7cGFyYW1OYW1l
fUhhbmRsZSA9IHY4Qm9vbGVhbigke3BhcmFtTmFtZX0pO1xuIik7CisgICAgICAgICAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgdjg6
OkhhbmRsZTx2ODo6VmFsdWU+ICR7cGFyYW1OYW1lfUhhbmRsZSA9IHRvVjgoJHtwYXJhbU5hbWV9
KTtcbiIpOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICBpZiAoJHtwYXJhbU5hbWV9SGFuZGxlLklzRW1wdHkoKSkge1xuIik7CiAgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIENSQVNIKCk7XG4iKTsKLSAg
ICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuIHRydWU7XG4i
KTsKKyAgICAgICAgICAgICAgICBpZiAoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUgZXEgImJv
b2xlYW4iKSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAg
ICByZXR1cm4gdHJ1ZTtcblxuIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybjtcblxuIik7Cisg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IH1cbiIpOwogICAgICAgICAgICAgICAgIHB1c2goQGFyZ3MsICIgICAgICAgICR7cGFyYW1OYW1l
fUhhbmRsZSIpOwogICAgICAgICAgICAgfQpAQCAtMjMyMiw3ICsyMzQwLDExIEBAIEVORAogICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIGpvaW4oIixcbiIsIEBhcmdzKSk7CiAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIlxuICAgIH07XG5cbiIpOwogICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgYm9vbCBjYWxsYmFja1JldHVyblZhbHVlID0gZmFsc2U7XG4i
KTsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiAhaW52b2tlQ2Fs
bGJhY2sobV9jYWxsYmFjaywgIiAuIHNjYWxhcihAcGFyYW1zKSAuICIsIGFyZ3YsIGNhbGxiYWNr
UmV0dXJuVmFsdWUsIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7XG4iKTsKKyAgICAgICAgICAg
IGlmICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSBlcSAiYm9vbGVhbiIpIHsKKyAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gIWludm9rZUNhbGxiYWNrKG1f
Y2FsbGJhY2ssICIgLiBzY2FsYXIoQHBhcmFtcykgLiAiLCBhcmd2LCBjYWxsYmFja1JldHVyblZh
bHVlLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpO1xuIik7CisgICAgICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGludm9rZUNhbGxiYWNr
KG1fY2FsbGJhY2ssICIgLiBzY2FsYXIoQHBhcmFtcykgLiAiLCBhcmd2LCBjYWxsYmFja1JldHVy
blZhbHVlLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpO1xuIik7CisgICAgICAgICAgICB9CiAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cbiIpOwogICAgICAgICB9CiAgICAgfQpA
QCAtMjgyMyw3ICsyODQ1LDkgQEAgc3ViIEdldE5hdGl2ZVR5cGUKIHN1YiBHZXROYXRpdmVUeXBl
Rm9yQ2FsbGJhY2tzCiB7CiAgICAgbXkgJHR5cGUgPSBzaGlmdDsKKyAgICBteSAkaXNQYXJhbWV0
ZXIgPSBzaGlmdDsKICAgICByZXR1cm4gImNvbnN0IFN0cmluZyYiIGlmICR0eXBlIGVxICJET01T
dHJpbmciOworICAgIHJldHVybiAidm9pZCIgaWYgKCR0eXBlIGVxICJ2b2lkIikgYW5kICEkaXNQ
YXJhbWV0ZXI7CiAKICAgICAjIENhbGxiYWNrcyB1c2UgcmF3IHBvaW50ZXJzLCBzbyBwYXNzIGlz
UGFyYW1ldGVyID0gMQogICAgIHJldHVybiBHZXROYXRpdmVUeXBlKCR0eXBlLCAxKTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVkaWFRdWVyeUxpc3RMaXN0ZW5l
ckN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE1lZGlhUXVlcnlMaXN0
TGlzdGVuZXJDdXN0b20uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIx
ODIxNTgKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXJDdXN0b20uY3BwCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5
KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlY4TWVkaWFRdWVy
eUxpc3RMaXN0ZW5lci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Jvb2wgVjhNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyOjppc0VxdWFsKE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqIG90aGVyKQor
eworICAgIFY4TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciogcHRyID0gc3RhdGljX2Nhc3Q8VjhNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyKj4ob3RoZXIpOworICAgIHJldHVybiBwdHIgJiYgbV9jYWxsYmFj
ay0+RXF1YWxzKHB0ci0+bV9jYWxsYmFjayk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
Y3NzL01lZGlhUXVlcnlMaXN0LmNwcCBiL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0LmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOTdlYTVjCi0tLSAvZGV2L251bGwK
KysrIGIvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3QuY3BwCkBAIC0wLDAgKzEsODcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlh
UXVlcnlMaXN0LmgiCisKKyNpbmNsdWRlICJNZWRpYUxpc3QuaCIKKyNpbmNsdWRlICJNZWRpYVF1
ZXJ5RXZhbHVhdG9yLmgiCisjaW5jbHVkZSAiTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oIgorI2lu
Y2x1ZGUgIk1lZGlhUXVlcnlWZWN0b3IuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNz
UmVmUHRyPE1lZGlhUXVlcnlMaXN0PiBNZWRpYVF1ZXJ5TGlzdDo6Y3JlYXRlKFBhc3NSZWZQdHI8
TWVkaWFRdWVyeVZlY3Rvcj4gdmVjdG9yLCBQYXNzUmVmUHRyPE1lZGlhTGlzdD4gbWVkaWEsIGJv
b2wgbWF0Y2hlcykKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1lZGlhUXVlcnlMaXN0KHZl
Y3RvciwgbWVkaWEsIG1hdGNoZXMpKTsKK30KKworTWVkaWFRdWVyeUxpc3Q6Ok1lZGlhUXVlcnlM
aXN0KFBhc3NSZWZQdHI8TWVkaWFRdWVyeVZlY3Rvcj4gdmVjdG9yLCBQYXNzUmVmUHRyPE1lZGlh
TGlzdD4gbWVkaWEsIGJvb2wgbWF0Y2hlcykKKyAgICA6IG1fdmVjdG9yKHZlY3RvcikKKyAgICAs
IG1fbWVkaWEobWVkaWEpCisgICAgLCBtX2V2YWxSb3VuZChtX3ZlY3Rvci0+ZXZhbFJvdW5kKCkp
CisgICAgLCBtX2NoYW5nZVJvdW5kKG1fZXZhbFJvdW5kIC0gMSkKKyAgICAsIG1fbWF0Y2hlcyht
YXRjaGVzKQoreworfQorCitNZWRpYVF1ZXJ5TGlzdDo6fk1lZGlhUXVlcnlMaXN0KCkKK3sKK30K
KworU3RyaW5nIE1lZGlhUXVlcnlMaXN0OjptZWRpYSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
bWVkaWEtPm1lZGlhVGV4dCgpOworfQorCitib29sIE1lZGlhUXVlcnlMaXN0OjpjaGFuZ2VkKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV92ZWN0b3ItPmV2YWxSb3VuZCgpID09IG1fY2hhbmdlUm91
bmQ7Cit9CisKK3ZvaWQgTWVkaWFRdWVyeUxpc3Q6OmFkZExpc3RlbmVyKFBhc3NSZWZQdHI8TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lcj4gbGlzdGVuZXIpCit7CisgICAgbV92ZWN0b3ItPmFkZExpc3Rl
bmVyKGxpc3RlbmVyLCB0aGlzKTsKK30KKwordm9pZCBNZWRpYVF1ZXJ5TGlzdDo6cmVtb3ZlTGlz
dGVuZXIoUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyPiBsaXN0ZW5lcikKK3sKKyAg
ICBtX3ZlY3Rvci0+cmVtb3ZlTGlzdGVuZXIobGlzdGVuZXIsIHRoaXMpOworfQorCit2b2lkIE1l
ZGlhUXVlcnlMaXN0OjpldmFsdWF0ZShNZWRpYVF1ZXJ5RXZhbHVhdG9yKiBldmFsdWF0b3IpCit7
CisgICAgaWYgKG1fZXZhbFJvdW5kID09IG1fdmVjdG9yLT5ldmFsUm91bmQoKSB8fCAhZXZhbHVh
dG9yKQorICAgICAgICByZXR1cm47CisgICAgbV9ldmFsUm91bmQgPSBtX3ZlY3Rvci0+ZXZhbFJv
dW5kKCk7CisKKyAgICBib29sIG5ld1ZhbHVlID0gZXZhbHVhdG9yLT5ldmFsKG1fbWVkaWEuZ2V0
KCkpOworICAgIGlmIChuZXdWYWx1ZSAhPSBtX21hdGNoZXMpIHsKKyAgICAgICAgbV9tYXRjaGVz
ID0gbmV3VmFsdWU7CisgICAgICAgIG1fY2hhbmdlUm91bmQgPSBtX2V2YWxSb3VuZDsKKyAgICB9
Cit9CisKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0LmggYi9XZWJD
b3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjdmMzI3YjgKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlz
dC5oCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNZWRp
YVF1ZXJ5TGlzdF9oCisjZGVmaW5lIE1lZGlhUXVlcnlMaXN0X2gKKworI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgTWVkaWFMaXN0OworY2xhc3MgTWVkaWFRdWVyeUxpc3RMaXN0ZW5l
cjsKK2NsYXNzIE1lZGlhUXVlcnlFdmFsdWF0b3I7CitjbGFzcyBNZWRpYVF1ZXJ5VmVjdG9yOwor
CitjbGFzcyBNZWRpYVF1ZXJ5TGlzdCA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhUXVlcnlMaXN0
PiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3Q+IGNyZWF0
ZShQYXNzUmVmUHRyPE1lZGlhUXVlcnlWZWN0b3I+LCBQYXNzUmVmUHRyPE1lZGlhTGlzdD4sIGJv
b2wgbWF0Y2hlcyk7CisgICAgfk1lZGlhUXVlcnlMaXN0KCk7CisgICAgU3RyaW5nIG1lZGlhKCkg
Y29uc3Q7CisgICAgYm9vbCBtYXRjaGVzKCkgY29uc3QgeyByZXR1cm4gbV9tYXRjaGVzOyB9CisK
KyAgICB2b2lkIGFkZExpc3RlbmVyKFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4p
OworICAgIHZvaWQgcmVtb3ZlTGlzdGVuZXIoUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyPik7CisKKyAgICB2b2lkIGV2YWx1YXRlKE1lZGlhUXVlcnlFdmFsdWF0b3IqKTsKKyAgICBi
b29sIGNoYW5nZWQoKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBNZWRpYVF1ZXJ5TGlzdChQYXNz
UmVmUHRyPE1lZGlhUXVlcnlWZWN0b3I+LCBQYXNzUmVmUHRyPE1lZGlhTGlzdD4sIGJvb2wgbWF0
Y2hlcyk7CisKKyAgICBSZWZQdHI8TWVkaWFRdWVyeVZlY3Rvcj4gbV92ZWN0b3I7CisgICAgUmVm
UHRyPE1lZGlhTGlzdD4gbV9tZWRpYTsKKyAgICBpbnQgbV9ldmFsUm91bmQ7CisgICAgaW50IG1f
Y2hhbmdlUm91bmQ7CisgICAgaW50IG1fbWF0Y2hlczsKKyAgICBWZWN0b3I8aW50PiBtX2xpc3Rl
bmVyczsKK307CisKK30KKworI2VuZGlmIC8vIE1lZGlhUXVlcnlMaXN0X2gKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0LmlkbCBiL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlM
aXN0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNjVlNWY3Ci0tLSAv
ZGV2L251bGwKKysrIGIvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3QuaWRsCkBAIC0wLDAgKzEs
MzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIHZpZXcgeworICAgIGludGVyZmFj
ZSBNZWRpYVF1ZXJ5TGlzdCB7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcg
bWVkaWE7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIG1hdGNoZXM7CisgICAg
ICAgIHZvaWQgYWRkTGlzdGVuZXIoaW4gW0NhbGxiYWNrXSBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
IGxpc3RlbmVyKTsKKyAgICAgICAgdm9pZCByZW1vdmVMaXN0ZW5lcihpbiBbQ2FsbGJhY2tdIE1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXIgbGlzdGVuZXIpOworICAgIH07Cit9CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggYi9XZWJDb3JlL2Nzcy9NZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTlh
OWM3YQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0TGlzdGVu
ZXIuaApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENv
cnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTWVk
aWFRdWVyeUxpc3RMaXN0ZW5lcl9oCisjZGVmaW5lIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJfaAor
CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBNZWRpYVF1ZXJ5TGlzdDsKKworY2xhc3MgTWVkaWFRdWVyeUxpc3RMaXN0ZW5lciA6IHB1
YmxpYyBSZWZDb3VudGVkPE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+IHsKK3B1YmxpYzoKKyAgICB2
aXJ0dWFsIH5NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKCkge30KKyAgICB2aXJ0dWFsIHZvaWQgcXVl
cnlDaGFuZ2VkKE1lZGlhUXVlcnlMaXN0KikgPSAwOworICAgIHZpcnR1YWwgYm9vbCBpc0VxdWFs
KE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqIG90aGVyKSA9IDA7Cit9OworCit9CisKKyNlbmRpZiAv
LyBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL01lZGlh
UXVlcnlMaXN0TGlzdGVuZXIuaWRsIGIvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5l
ci5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTNlODZmZAotLS0gL2Rl
di9udWxsCisrKyBiL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaWRsCkBAIC0w
LDAgKzEsMzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24g
YW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIHZpZXcgeworICAgIGlu
dGVyZmFjZSBbQ2FsbGJhY2tdIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIgeworICAgICAgICB2b2lk
IHF1ZXJ5Q2hhbmdlZChpbiBNZWRpYVF1ZXJ5TGlzdCBtcWwpOworICAgICAgICBbQ3VzdG9tXSBi
b29sZWFuIGlzRXF1YWwoaW4gTWVkaWFRdWVyeUxpc3RMaXN0ZW5lciBvdGhlcik7CisgICAgfTsK
K30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlWZWN0b3IuY3BwIGIvV2ViQ29y
ZS9jc3MvTWVkaWFRdWVyeVZlY3Rvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMTNlNGU2MQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlW
ZWN0b3IuY3BwCkBAIC0wLDAgKzEsMTU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5v
a2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRpYVF1ZXJ5VmVjdG9yLmgiCisKKyNpbmNsdWRl
ICJDU1NTdHlsZVNlbGVjdG9yLmgiCisjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUgIkZy
YW1lLmgiCisjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAiTWVkaWFMaXN0LmgiCisj
aW5jbHVkZSAiTWVkaWFRdWVyeUV2YWx1YXRvci5oIgorI2luY2x1ZGUgIk1lZGlhUXVlcnlMaXN0
LmgiCisjaW5jbHVkZSAiTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK01lZGlhUXVlcnlMaXN0ZW5lcjo6TWVkaWFRdWVyeUxpc3RlbmVyKFBhc3NSZWZQ
dHI8TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4gbGlzdGVuZXIsIFBhc3NSZWZQdHI8TWVkaWFRdWVy
eUxpc3Q+IHF1ZXJ5KQorICAgIDogbV9saXN0ZW5lcihsaXN0ZW5lcikKKyAgICAsIG1fcXVlcnko
cXVlcnkpCit7Cit9CisKK01lZGlhUXVlcnlMaXN0ZW5lcjo6fk1lZGlhUXVlcnlMaXN0ZW5lcigp
Cit7Cit9CisKK3ZvaWQgTWVkaWFRdWVyeUxpc3RlbmVyOjpldmFsdWF0ZShNZWRpYVF1ZXJ5RXZh
bHVhdG9yKiBldmFsdWF0b3IpCit7CisgICAgbV9xdWVyeS0+ZXZhbHVhdGUoZXZhbHVhdG9yKTsK
KyAgICBpZiAobV9xdWVyeS0+Y2hhbmdlZCgpKQorICAgICAgICBtX2xpc3RlbmVyLT5xdWVyeUNo
YW5nZWQobV9xdWVyeS5nZXQoKSk7Cit9CisKK01lZGlhUXVlcnlWZWN0b3I6Ok1lZGlhUXVlcnlW
ZWN0b3IoRnJhbWUqIGZyYW1lKQorICAgIDogbV9mcmFtZShmcmFtZSkKKyAgICAsIG1fZXZhbFJv
dW5kKDApCisgICAgLCBtX3Rlcm1pbmF0ZWQoZmFsc2UpCit7Cit9CisKK01lZGlhUXVlcnlWZWN0
b3I6On5NZWRpYVF1ZXJ5VmVjdG9yKCkKK3sKK30KKwordm9pZCBNZWRpYVF1ZXJ5VmVjdG9yOjp0
ZXJtaW5hdGUoKQoreworICAgIG1fdGVybWluYXRlZCA9IHRydWU7CisgICAgZGVsZXRlQWxsVmFs
dWVzKG1fbGlzdGVuZXJzKTsKKyAgICBtX2xpc3RlbmVycy5jbGVhcigpOworfQorCitTdHJpbmcg
TWVkaWFRdWVyeVZlY3Rvcjo6bWVkaWFUeXBlKCkgY29uc3QKK3sKKyAgICBGcmFtZVZpZXcqIHZp
ZXcgPSBtX2ZyYW1lID8gbV9mcmFtZS0+dmlldygpIDogMDsKKyAgICBpZiAodmlldykKKyAgICAg
ICAgcmV0dXJuIHZpZXctPm1lZGlhVHlwZSgpOworCisgICAgcmV0dXJuIFN0cmluZygpOworfQor
CitQYXNzT3duUHRyPE1lZGlhUXVlcnlFdmFsdWF0b3I+IE1lZGlhUXVlcnlWZWN0b3I6OnByZXBh
cmVFdmFsdWF0b3IoKSBjb25zdAoreworICAgIGlmICghbV9mcmFtZSkKKyAgICAgICAgcmV0dXJu
IDA7CisKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBtX2ZyYW1lLT5kb2N1bWVudCgpOworICAg
IGlmICghZG9jdW1lbnQpCisgICAgICAgIHJldHVybiAwOworCisgICAgRWxlbWVudCogZG9jdW1l
bnRFbGVtZW50ID0gZG9jdW1lbnQtPmRvY3VtZW50RWxlbWVudCgpOworICAgIGlmICghZG9jdW1l
bnRFbGVtZW50KQorICAgICAgICByZXR1cm4gMDsKKworICAgIENTU1N0eWxlU2VsZWN0b3IqIHN0
eWxlU2VsZWN0b3IgPSBkb2N1bWVudC0+c3R5bGVTZWxlY3RvcigpOworICAgIGlmICghc3R5bGVT
ZWxlY3RvcikKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IHJv
b3RTdHlsZSA9IHN0eWxlU2VsZWN0b3ItPnN0eWxlRm9yRWxlbWVudChkb2N1bWVudEVsZW1lbnQs
IDAgLypkZWZhdWx0UGFyZW50Ki8sIGZhbHNlIC8qYWxsb3dTaGFyaW5nKi8sIHRydWUgLypyZXNv
bHZlRm9yUm9vdERlZmF1bHQqLyk7CisKKyAgICByZXR1cm4gbmV3IE1lZGlhUXVlcnlFdmFsdWF0
b3IobWVkaWFUeXBlKCksIG1fZnJhbWUsIHJvb3RTdHlsZS5nZXQoKSk7Cit9CisKK1Bhc3NSZWZQ
dHI8TWVkaWFRdWVyeUxpc3Q+IE1lZGlhUXVlcnlWZWN0b3I6Om1hdGNoTWVkaWEoY29uc3QgU3Ry
aW5nJiBxdWVyeSkKK3sKKyAgICBpZiAobV90ZXJtaW5hdGVkKQorICAgICAgICByZXR1cm4gMDsK
KworICAgIFJlZlB0cjxNZWRpYUxpc3Q+IG1lZGlhID0gTWVkaWFMaXN0OjpjcmVhdGUocXVlcnks
IGZhbHNlKTsKKyAgICBPd25QdHI8TWVkaWFRdWVyeUV2YWx1YXRvcj4gZXZhbHVhdG9yKHByZXBh
cmVFdmFsdWF0b3IoKSk7CisgICAgYm9vbCBtYXRjaGVzID0gZXZhbHVhdG9yICYmIGV2YWx1YXRv
ci0+ZXZhbChtZWRpYS5nZXQoKSk7CisKKyAgICByZXR1cm4gTWVkaWFRdWVyeUxpc3Q6OmNyZWF0
ZSh0aGlzLCBtZWRpYSwgbWF0Y2hlcyk7Cit9CisKK3ZvaWQgTWVkaWFRdWVyeVZlY3Rvcjo6YWRk
TGlzdGVuZXIoUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyPiBsaXN0ZW5lciwgUGFz
c1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdD4gcXVlcnkpCit7CisgICAgaWYgKG1fdGVybWluYXRlZCkK
KyAgICAgICAgcmV0dXJuOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2xpc3RlbmVy
cy5zaXplKCk7ICsraSkgeworICAgICAgICBpZiAobV9saXN0ZW5lcnNbaV0tPmxpc3RlbmVyKCkt
PmlzRXF1YWwobGlzdGVuZXIuZ2V0KCkpICYmIG1fbGlzdGVuZXJzW2ldLT5xdWVyeSgpID09IHF1
ZXJ5LmdldCgpKQorICAgICAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fbGlzdGVuZXJz
LmFwcGVuZChuZXcgTWVkaWFRdWVyeUxpc3RlbmVyKGxpc3RlbmVyLCBxdWVyeSkpOworfQorCit2
b2lkIE1lZGlhUXVlcnlWZWN0b3I6OnJlbW92ZUxpc3RlbmVyKFBhc3NSZWZQdHI8TWVkaWFRdWVy
eUxpc3RMaXN0ZW5lcj4gbGlzdGVuZXIsIFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3Q+IHF1ZXJ5
KQoreworICAgIGlmIChtX3Rlcm1pbmF0ZWQpCisgICAgICAgIHJldHVybjsKKworICAgIGZvciAo
aW50IGkgPSBtX2xpc3RlbmVycy5zaXplKCkgLSAxOyBpID49IDA7IC0taSkgeworICAgICAgICBp
ZiAobV9saXN0ZW5lcnNbaV0tPmxpc3RlbmVyKCktPmlzRXF1YWwobGlzdGVuZXIuZ2V0KCkpICYm
IG1fbGlzdGVuZXJzW2ldLT5xdWVyeSgpID09IHF1ZXJ5LmdldCgpKSB7CisgICAgICAgICAgICBk
ZWxldGUgbV9saXN0ZW5lcnNbaV07CisgICAgICAgICAgICBtX2xpc3RlbmVycy5yZW1vdmUoaSk7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgTWVkaWFR
dWVyeVZlY3Rvcjo6ZXZhbHVhdGUoKQoreworICAgIEFTU0VSVCghbV90ZXJtaW5hdGVkKTsKKwor
ICAgICsrbV9ldmFsUm91bmQ7CisgICAgT3duUHRyPE1lZGlhUXVlcnlFdmFsdWF0b3I+IGV2YWx1
YXRvciA9IHByZXBhcmVFdmFsdWF0b3IoKTsKKyAgICBpZiAoIWV2YWx1YXRvcikKKyAgICAgICAg
cmV0dXJuOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9saXN0ZW5lcnMuc2l6ZSgpOyAr
K2kpCisgICAgICAgIG1fbGlzdGVuZXJzW2ldLT5ldmFsdWF0ZShldmFsdWF0b3IuZ2V0KCkpOwor
fQorCit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5VmVjdG9yLmggYi9XZWJD
b3JlL2Nzcy9NZWRpYVF1ZXJ5VmVjdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uZTM5NTljMQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlW
ZWN0b3IuaApAQCAtMCwwICsxLDgxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lh
IENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
TWVkaWFRdWVyeVZlY3Rvcl9oCisjZGVmaW5lIE1lZGlhUXVlcnlWZWN0b3JfaAorCisjaW5jbHVk
ZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBGcmFtZTsKK2NsYXNzIE1lZGlhUXVlcnlMaXN0Owor
Y2xhc3MgTWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjsKK2NsYXNzIE1lZGlhUXVlcnlFdmFsdWF0b3I7
CisKK2NsYXNzIE1lZGlhUXVlcnlMaXN0ZW5lciB7CitwdWJsaWM6CisgICAgTWVkaWFRdWVyeUxp
c3RlbmVyKFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4sIFBhc3NSZWZQdHI8TWVk
aWFRdWVyeUxpc3Q+KTsKKyAgICB+TWVkaWFRdWVyeUxpc3RlbmVyKCk7CisKKyAgICB2b2lkIGV2
YWx1YXRlKE1lZGlhUXVlcnlFdmFsdWF0b3IqKTsKKworICAgIE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXIqIGxpc3RlbmVyKCkgeyByZXR1cm4gbV9saXN0ZW5lci5nZXQoKTsgfQorICAgIE1lZGlhUXVl
cnlMaXN0KiBxdWVyeSgpIHsgcmV0dXJuIG1fcXVlcnkuZ2V0KCk7IH0KKworcHJpdmF0ZToKKyAg
ICBSZWZQdHI8TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4gbV9saXN0ZW5lcjsKKyAgICBSZWZQdHI8
TWVkaWFRdWVyeUxpc3Q+IG1fcXVlcnk7Cit9OworCitjbGFzcyBNZWRpYVF1ZXJ5VmVjdG9yIDog
cHVibGljIFJlZkNvdW50ZWQ8TWVkaWFRdWVyeVZlY3Rvcj4geworcHVibGljOgorICAgIHN0YXRp
YyBQYXNzUmVmUHRyPE1lZGlhUXVlcnlWZWN0b3I+IGNyZWF0ZShGcmFtZSogZnJhbWUpIHsgcmV0
dXJuIGFkb3B0UmVmKG5ldyBNZWRpYVF1ZXJ5VmVjdG9yKGZyYW1lKSk7IH0KKyAgICB+TWVkaWFR
dWVyeVZlY3RvcigpOworICAgIHZvaWQgdGVybWluYXRlKCk7CisKKyAgICB2b2lkIGFkZExpc3Rl
bmVyKFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4sIFBhc3NSZWZQdHI8TWVkaWFR
dWVyeUxpc3Q+KTsKKyAgICB2b2lkIHJlbW92ZUxpc3RlbmVyKFBhc3NSZWZQdHI8TWVkaWFRdWVy
eUxpc3RMaXN0ZW5lcj4sIFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3Q+KTsKKworICAgIFBhc3NS
ZWZQdHI8TWVkaWFRdWVyeUxpc3Q+IG1hdGNoTWVkaWEoY29uc3QgU3RyaW5nJik7CisgICAgaW50
IGV2YWxSb3VuZCgpIGNvbnN0IHsgcmV0dXJuIG1fZXZhbFJvdW5kOyB9CisgICAgdm9pZCBldmFs
dWF0ZSgpOworcHJpdmF0ZToKKyAgICBNZWRpYVF1ZXJ5VmVjdG9yKEZyYW1lKik7CisgICAgUGFz
c093blB0cjxNZWRpYVF1ZXJ5RXZhbHVhdG9yPiBwcmVwYXJlRXZhbHVhdG9yKCkgY29uc3Q7Cisg
ICAgU3RyaW5nIG1lZGlhVHlwZSgpIGNvbnN0OworCisgICAgRnJhbWUqIG1fZnJhbWU7CisgICAg
VmVjdG9yPE1lZGlhUXVlcnlMaXN0ZW5lcio+IG1fbGlzdGVuZXJzOworICAgIGludCBtX2V2YWxS
b3VuZDsKKyAgICBib29sIG1fdGVybWluYXRlZDsKK307CisKK30KKworI2VuZGlmIC8vIE1lZGlh
UXVlcnlWZWN0b3JfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGRiZjQ0N2QuLjg3MTAxMjUgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
QEAgLTI4MzUsNiArMjgzNSw5IEBAIHZvaWQgRG9jdW1lbnQ6OnN0eWxlU2VsZWN0b3JDaGFuZ2Vk
KFN0eWxlU2VsZWN0b3JVcGRhdGVGbGFnIHVwZGF0ZUZsYWcpCiAgICAgICAgIGlmICh2aWV3KCkp
CiAgICAgICAgICAgICB2aWV3KCktPnNjaGVkdWxlUmVsYXlvdXQoKTsKICAgICB9CisKKyAgICBp
ZiAoZG9tV2luZG93KCkpCisgICAgICAgIGRvbVdpbmRvdygpLT5zdHlsZUNoYW5nZWQoKTsKIH0K
IAogdm9pZCBEb2N1bWVudDo6YWRkU3R5bGVTaGVldENhbmRpZGF0ZU5vZGUoTm9kZSogbm9kZSwg
Ym9vbCBjcmVhdGVkQnlQYXJzZXIpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93
LmNwcCBiL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IGVmYjgyYmIuLjViM2E5OGYg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAw
NiwgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTY1LDcgKzY2LDggQEAKICNpbmNs
dWRlICJJbnNwZWN0b3JUaW1lbGluZUFnZW50LmgiCiAjaW5jbHVkZSAiS1VSTC5oIgogI2luY2x1
ZGUgIkxvY2F0aW9uLmgiCi0jaW5jbHVkZSAiU3R5bGVNZWRpYS5oIgorI2luY2x1ZGUgIk1lZGlh
UXVlcnlMaXN0LmgiCisjaW5jbHVkZSAiTWVkaWFRdWVyeVZlY3Rvci5oIgogI2luY2x1ZGUgIk1l
c3NhZ2VFdmVudC5oIgogI2luY2x1ZGUgIk5hdmlnYXRvci5oIgogI2luY2x1ZGUgIk5vdGlmaWNh
dGlvbkNlbnRlci5oIgpAQCAtODEsNiArODMsNyBAQAogI2luY2x1ZGUgIlN0b3JhZ2UuaCIKICNp
bmNsdWRlICJTdG9yYWdlQXJlYS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VOYW1lc3BhY2UuaCIKKyNp
bmNsdWRlICJTdHlsZU1lZGlhLmgiCiAjaW5jbHVkZSAiU3VkZGVuVGVybWluYXRpb24uaCIKICNp
bmNsdWRlICJXZWJLaXRQb2ludC5oIgogI2luY2x1ZGUgPGFsZ29yaXRobT4KQEAgLTQwMSw2ICs0
MDQsOSBAQCBET01XaW5kb3c6On5ET01XaW5kb3coKQogCiAgICAgcmVtb3ZlQWxsVW5sb2FkRXZl
bnRMaXN0ZW5lcnModGhpcyk7CiAgICAgcmVtb3ZlQWxsQmVmb3JlVW5sb2FkRXZlbnRMaXN0ZW5l
cnModGhpcyk7CisKKyAgICBpZiAobV9tZWRpYVF1ZXJpZXMpCisgICAgICAgIG1fbWVkaWFRdWVy
aWVzLT50ZXJtaW5hdGUoKTsKIH0KIAogU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogRE9NV2luZG93
OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QKQEAgLTQwOCw2ICs0MTQsMTkgQEAgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogRE9NV2luZG93OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkg
Y29uc3QKICAgICByZXR1cm4gZG9jdW1lbnQoKTsKIH0KIAorUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5
TGlzdD4gRE9NV2luZG93OjptYXRjaE1lZGlhKGNvbnN0IFN0cmluZyYgbWVkaWEpCit7CisgICAg
aWYgKCFtX21lZGlhUXVlcmllcykKKyAgICAgICAgbV9tZWRpYVF1ZXJpZXMgPSBNZWRpYVF1ZXJ5
VmVjdG9yOjpjcmVhdGUobV9mcmFtZSk7CisgICAgcmV0dXJuIG1fbWVkaWFRdWVyaWVzLT5tYXRj
aE1lZGlhKG1lZGlhKTsKK30KKwordm9pZCBET01XaW5kb3c6OnN0eWxlQ2hhbmdlZCgpCit7Cisg
ICAgaWYgKG1fbWVkaWFRdWVyaWVzKQorICAgICAgICBtX21lZGlhUXVlcmllcy0+ZXZhbHVhdGUo
KTsKK30KKwogdm9pZCBET01XaW5kb3c6OmRpc2Nvbm5lY3RGcmFtZSgpCiB7CiAgICAgbV9mcmFt
ZSA9IDA7CkBAIC01MDAsNiArNTE5LDEyIEBAIHZvaWQgRE9NV2luZG93OjpjbGVhcigpCiAgICAg
bV9pZGJGYWN0b3J5ID0gMDsKICAgICBtX2lkYktleVJhbmdlID0gMDsKICNlbmRpZgorCisgICAg
aWYgKG1fbWVkaWFRdWVyaWVzKSB7CisgICAgICAgIG1fbWVkaWFRdWVyaWVzLT50ZXJtaW5hdGUo
KTsKKyAgICAgICAgbV9tZWRpYVF1ZXJpZXMuY2xlYXIoKTsKKyAgICB9CisKIH0KIAogI2lmIEVO
QUJMRShPUklFTlRBVElPTl9FVkVOVFMpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmggYi9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKaW5kZXggODk0YWEwOC4uMGFkMWM1YiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCisrKyBiL1dlYkNvcmUvcGFnZS9E
T01XaW5kb3cuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIw
MDcsIDIwMDkgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjEsMTAgKzYyLDEyIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICBjbGFzcyBJbnNwZWN0b3JUaW1lbGluZUFnZW50OwogICAgIGNsYXNz
IExvY2FsRmlsZVN5c3RlbTsKICAgICBjbGFzcyBMb2NhdGlvbjsKLSAgICBjbGFzcyBTdHlsZU1l
ZGlhOworICAgIGNsYXNzIE1lZGlhUXVlcnlMaXN0OworICAgIGNsYXNzIE1lZGlhUXVlcnlWZWN0
b3I7CiAgICAgY2xhc3MgTmF2aWdhdG9yOwogICAgIGNsYXNzIE5vZGU7CiAgICAgY2xhc3MgTm90
aWZpY2F0aW9uQ2VudGVyOworICAgIGNsYXNzIFN0eWxlTWVkaWE7CiAKICNpZiBFTkFCTEUoV0VC
X1RJTUlORykKICAgICBjbGFzcyBQZXJmb3JtYW5jZTsKQEAgLTEwMCw2ICsxMDMsOSBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgdm9pZCBjbGVhcigpOwogCisgICAgICAgIFBhc3NS
ZWZQdHI8TWVkaWFRdWVyeUxpc3Q+IG1hdGNoTWVkaWEoY29uc3QgU3RyaW5nJik7CisgICAgICAg
IHZvaWQgc3R5bGVDaGFuZ2VkKCk7CisKICNpZiBFTkFCTEUoT1JJRU5UQVRJT05fRVZFTlRTKQog
ICAgICAgICAvLyBUaGlzIGlzIHRoZSBpbnRlcmZhY2Ugb3JpZW50YXRpb24gaW4gZGVncmVlcy4g
U29tZSBleGFtcGxlcyBhcmU6CiAgICAgICAgIC8vICAwIGlzIHN0cmFpZ2h0IHVwOyAtOTAgaXMg
d2hlbiB0aGUgZGV2aWNlIGlzIHJvdGF0ZWQgOTAgY2xvY2t3aXNlOwpAQCAtNDU1LDYgKzQ2MSw4
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBTdHJpbmcgbV9zdGF0dXM7CiAgICAg
ICAgIFN0cmluZyBtX2RlZmF1bHRTdGF0dXM7CisKKyAgICAgICAgUmVmUHRyPE1lZGlhUXVlcnlW
ZWN0b3I+IG1fbWVkaWFRdWVyaWVzOwogICAgIH07CiAKICAgICBpbmxpbmUgU3RyaW5nIERPTVdp
bmRvdzo6c3RhdHVzKCkgY29uc3QKQEAgLTQ2NSw3ICs0NzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgaW5saW5lIFN0cmluZyBET01XaW5kb3c6OmRlZmF1bHRTdGF0dXMoKSBjb25zdAog
ICAgIHsKICAgICAgICAgcmV0dXJuIG1fZGVmYXVsdFN0YXR1czsKLSAgICB9IAorICAgIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmlkbCBiL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCmluZGV4IGM3NzVhZTYuLmM5YWYx
OTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCisrKyBiL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuaWRsCkBAIC03NTcsNiArNzU3LDkgQEAgbW9kdWxlIHdpbmRvdyB7CiAg
ICAgICAgIC8vIHdpbmRvdy50b1N0cmluZygpIHJlcXVpcmVzIHNwZWNpYWwgaGFuZGxpbmcgaW4g
VjgKICAgICAgICAgW1Y4RG9Ob3RDaGVja1NpZ25hdHVyZSwgRG9Ob3RDaGVja0RvbWFpblNlY3Vy
aXR5LCBDdXN0b20sIERvbnRFbnVtXSBET01TdHJpbmcgdG9TdHJpbmcoKTsKICNlbmRpZiAvLyBk
ZWZpbmVkKFY4X0JJTkRJTkcpCisKKworICAgICAgICBNZWRpYVF1ZXJ5TGlzdCBtYXRjaE1lZGlh
KGluIERPTVN0cmluZyBxdWVyeSk7CiAgICAgfTsKIAogfQotLSAKMS43LjIuMgoK
</data>
<flag name="review"
          id="55534"
          type_id="1"
          status="-"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66993</attachid>
            <date>2010-09-08 20:14:15 -0700</date>
            <delta_ts>2010-09-09 16:51:57 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-Media-listeners.patch</filename>
            <type>text/plain</type>
            <size>80540</size>
            <attacher name="Luiz Agostini">luiz</attacher>
            
              <data encoding="base64">RnJvbSAwNWQ1ZGQzNzk2MzkxNTBhYzZiZTczYTVkOTdiNGRjZWZhODU2NDkzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWl6IEFnb3N0aW5pIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IEZyaSwgMyBTZXAgMjAxMCAxMTozMDo0MSAtMDMwMApTdWJqZWN0OiBbUEFU
Q0hdIE1lZGlhIGxpc3RlbmVycwogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTM3MjA1CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCldlYkNvcmU6CgpBcyBzcGVj
aWZpZWQgYXQgaHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3Nzb20tdmlldy8jZXh0ZW5zaW9ucy10
by10aGUtd2luZG93LWludGVyZmFjZS4KClY4IGFuZCBKUyBjb2RlIGdlbmVyYXRvcnMgY2hhbmdl
ZCB0byBhY2NlcHQgdm9pZCBjYWxsYmFja3MuCgoqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtOgoqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgoKTmV3IGlu
dGVyZmFjZXMgTWVkaWFRdWVyeUxpc3QgYW5kIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuCgoqIGNz
cy9NZWRpYVF1ZXJ5TGlzdC5pZGw6IEFkZGVkLgoqIGNzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
LmlkbDogQWRkZWQuCgpNZWRpYVF1ZXJ5TGlzdExzaXRlbmVyIGlzIGEgY2FsbGJhY2suIEEgY3Vz
dG9tIG1ldGhvZCBpcyBuZWVkZWQgdG8gaW1wbGVtZW50CmNhbGxiYWNrIGNvbXBhcmlzb24uCgoq
IGJpbmRpbmdzL2pzL0pTTWVkaWFRdWVyeUxpc3RMaXN0ZW5lckN1c3RvbS5jcHA6IEFkZGVkLgoo
V2ViQ29yZTo6SlNNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjppc0VxdWFsKToKKiBiaW5kaW5ncy92
OC9jdXN0b20vVjhNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ3VzdG9tLmNwcDogQWRkZWQuCihXZWJD
b3JlOjpWOE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OmlzRXF1YWwpOgoKQ2xhc3NzIE1lZGlhUXVl
cnlMaXN0IGFuZCBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLgoKKiBjc3MvTWVkaWFRdWVyeUxpc3Qu
Y3BwOiBBZGRlZC4KKFdlYkNvcmU6Ok1lZGlhUXVlcnlMaXN0OjpjcmVhdGUpOgooV2ViQ29yZTo6
TWVkaWFRdWVyeUxpc3Q6Ok1lZGlhUXVlcnlMaXN0KToKKFdlYkNvcmU6Ok1lZGlhUXVlcnlMaXN0
Ojp+TWVkaWFRdWVyeUxpc3QpOgooV2ViQ29yZTo6TWVkaWFRdWVyeUxpc3Q6Om1lZGlhKToKKFdl
YkNvcmU6Ok1lZGlhUXVlcnlMaXN0OjpjaGFuZ2VkKToKKFdlYkNvcmU6Ok1lZGlhUXVlcnlMaXN0
OjphZGRMaXN0ZW5lcik6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdDo6cmVtb3ZlTGlzdGVuZXIp
OgooV2ViQ29yZTo6TWVkaWFRdWVyeUxpc3Q6OmV2YWx1YXRlKToKKiBjc3MvTWVkaWFRdWVyeUxp
c3QuaDogQWRkZWQuCihXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdDo6bWF0Y2hlcyk6CiogY3NzL01l
ZGlhUXVlcnlMaXN0TGlzdGVuZXIuaDogQWRkZWQuCihXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyOjp+TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcik6CgpUbyBhdm9pZCBhZGRpbmcgY29kZSB0
byBjbGFzcyBET01XaW5kb3cgYSBuZXcgY2xhc3MgTWVkaWFRdWVyeVZlY3RvciB3YXMgY3JlYXRl
ZC4KVGhpcyBuZXcgY2xhc3MgaXMgdXNlZCBieSBET01XaW5kb3cgdG8gaW1wbGVtZW50IG1ldGhv
ZCBtYXRjaE1lZGlhLgoKKiBjc3MvTWVkaWFRdWVyeVZlY3Rvci5jcHA6IEFkZGVkLgooV2ViQ29y
ZTo6TWVkaWFRdWVyeUxpc3RlbmVyOjpNZWRpYVF1ZXJ5TGlzdGVuZXIpOgooV2ViQ29yZTo6TWVk
aWFRdWVyeUxpc3RlbmVyOjp+TWVkaWFRdWVyeUxpc3RlbmVyKToKKFdlYkNvcmU6Ok1lZGlhUXVl
cnlMaXN0ZW5lcjo6ZXZhbHVhdGUpOgooV2ViQ29yZTo6TWVkaWFRdWVyeVZlY3Rvcjo6TWVkaWFR
dWVyeVZlY3Rvcik6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5VmVjdG9yOjp+TWVkaWFRdWVyeVZlY3Rv
cik6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5VmVjdG9yOjp0ZXJtaW5hdGUpOgooV2ViQ29yZTo6TWVk
aWFRdWVyeVZlY3Rvcjo6bWVkaWFUeXBlKToKKFdlYkNvcmU6Ok1lZGlhUXVlcnlWZWN0b3I6OnBy
ZXBhcmVFdmFsdWF0b3IpOgooV2ViQ29yZTo6TWVkaWFRdWVyeVZlY3Rvcjo6bWF0Y2hNZWRpYSk6
CihXZWJDb3JlOjpNZWRpYVF1ZXJ5VmVjdG9yOjphZGRMaXN0ZW5lcik6CihXZWJDb3JlOjpNZWRp
YVF1ZXJ5VmVjdG9yOjpyZW1vdmVMaXN0ZW5lcik6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5VmVjdG9y
OjpldmFsdWF0ZSk6CiogY3NzL01lZGlhUXVlcnlWZWN0b3IuaDogQWRkZWQuCihXZWJDb3JlOjpN
ZWRpYVF1ZXJ5TGlzdGVuZXI6Omxpc3RlbmVyKToKKFdlYkNvcmU6Ok1lZGlhUXVlcnlMaXN0ZW5l
cjo6cXVlcnkpOgooV2ViQ29yZTo6TWVkaWFRdWVyeVZlY3Rvcjo6Y3JlYXRlKToKKFdlYkNvcmU6
Ok1lZGlhUXVlcnlWZWN0b3I6OmV2YWxSb3VuZCk6CgpEb2N1bWVudCBuZWVkcyB0byBub3RpZnkg
RE9NV2luZG93IGFib3V0IHN0eWxlIGNoYW5nZXMuIERPTVdpbmRvdyBpbXBsZW1lbnRzCm1ldGhv
ZCBtYXRjaE1lZGlhIGFzIHNwZWNpZmllZC4KCiogZG9tL0RvY3VtZW50LmNwcDoKKFdlYkNvcmU6
OkRvY3VtZW50OjpzdHlsZVNlbGVjdG9yQ2hhbmdlZCk6CiogcGFnZS9ET01XaW5kb3cuY3BwOgoo
V2ViQ29yZTo6RE9NV2luZG93Ojp+RE9NV2luZG93KToKKFdlYkNvcmU6OkRPTVdpbmRvdzo6bWF0
Y2hNZWRpYSk6CihXZWJDb3JlOjpET01XaW5kb3c6OnN0eWxlQ2hhbmdlZCk6CihXZWJDb3JlOjpE
T01XaW5kb3c6OmNsZWFyKToKKiBwYWdlL0RPTVdpbmRvdy5oOgooV2ViQ29yZTo6RE9NV2luZG93
OjpkZWZhdWx0U3RhdHVzKToKKiBwYWdlL0RPTVdpbmRvdy5pZGw6CgpCdWlsZCBzeXN0ZW1zIGlz
c3Vlcy4KCiogRGVyaXZlZFNvdXJjZXMubWFrZToKKiBHTlVtYWtlZmlsZS5hbToKKiBXZWJDb3Jl
Lmd5cGk6CiogV2ViQ29yZS5wcmk6CiogV2ViQ29yZS5wcm86CiogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgoqIGJpbmRpbmdzL2dvYmplY3QvR05VbWFrZWZpbGUuYW06CgpUZXN0
czogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAxLmh0bWwKICAgICAgIGZhc3QvbWVkaWEv
bWVkaWEtcXVlcnktbGlzdC0wMi5odG1sCiAgICAgICBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxp
c3QtMDMuaHRtbAoKTGF5b3V0VGVzdHM6CgpNZWRpYVF1ZXJ5TGlzdCB0ZXN0cy4KCiogZmFzdC9t
ZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAxLWV4cGVjdGVkLnR4dDogQWRkZWQuCiogZmFzdC9tZWRp
YS9tZWRpYS1xdWVyeS1saXN0LTAxLmh0bWw6IEFkZGVkLgoqIGZhc3QvbWVkaWEvbWVkaWEtcXVl
cnktbGlzdC0wMi1leHBlY3RlZC50eHQ6IEFkZGVkLgoqIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnkt
bGlzdC0wMi5odG1sOiBBZGRlZC4KKiBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKiBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMuaHRtbDog
QWRkZWQuCiogcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0OgoqIHBsYXRm
b3JtL21hYy9Ta2lwcGVkOgoqIHBsYXRmb3JtL3dpbi9Ta2lwcGVkOgotLS0KIExheW91dFRlc3Rz
L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxOSArKysKIC4uLi9m
YXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDEtZXhwZWN0ZWQudHh0ICAgIHwgICAxNSArKwog
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAxLmh0bWwgICAgfCAgIDUy
ICsrKysrKysKIC4uLi9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDItZXhwZWN0ZWQudHh0
ICAgIHwgICAyNSArKysKIExheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0w
Mi5odG1sICAgIHwgICA2MSArKysrKysrKwogLi4uL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlz
dC0wMy1leHBlY3RlZC50eHQgICAgfCAgIDQxICsrKysrCiBMYXlvdXRUZXN0cy9mYXN0L21lZGlh
L21lZGlhLXF1ZXJ5LWxpc3QtMDMuaHRtbCAgICB8ICAgNzAgKysrKysrKysrCiAuLi4vcGxhdGZv
cm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0ICAgICAgICB8ICAgIDQgKy0KIExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkICAgICAgICAgICAgICAgICAgIHwgICAgNCArLQog
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQgICAgICAgICAgICAgICAgICAgfCAgICA0
ICstCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAgOTQgKysrKysrKysrKysrCiBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgIDIgKwogV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAgIDEyICsrLQogV2ViQ29yZS9XZWJDb3JlLmd5cGkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEwICstCiBXZWJDb3JlL1dlYkNvcmUucHJpICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKwogV2ViQ29yZS9XZWJDb3JlLnBy
byAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA2ICsKIFdlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qICAgICAgICAgIHwgICA0NCArKysrKysKIFdlYkNv
cmUvYmluZGluZ3MvZ29iamVjdC9HTlVtYWtlZmlsZS5hbSAgICAgICAgICAgIHwgICAgNiArCiAu
Li4vYmluZGluZ3MvanMvSlNNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ3VzdG9tLmNwcCB8ICAgNTkg
KysrKysrKysKIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gICAg
ICAgIHwgICAyNyArKystCiBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4
LnBtICAgICAgICB8ICAgNDYgKysrKystLQogLi4uL3Y4L2N1c3RvbS9WOE1lZGlhUXVlcnlMaXN0
TGlzdGVuZXJDdXN0b20uY3BwICAgfCAgIDQ1ICsrKysrKwogV2ViQ29yZS9jc3MvTWVkaWFRdWVy
eUxpc3QuY3BwICAgICAgICAgICAgICAgICAgICAgfCAgIDg3ICsrKysrKysrKysrCiBXZWJDb3Jl
L2Nzcy9NZWRpYVF1ZXJ5TGlzdC5oICAgICAgICAgICAgICAgICAgICAgICB8ICAgNjYgKysrKysr
KysKIFdlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0LmlkbCAgICAgICAgICAgICAgICAgICAgIHwg
ICAzMyArKysrCiBXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggICAgICAgICAg
ICAgICB8ICAgNTIgKysrKysrKwogV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5p
ZGwgICAgICAgICAgICAgfCAgIDMyICsrKysKIFdlYkNvcmUvY3NzL01lZGlhUXVlcnlWZWN0b3Iu
Y3BwICAgICAgICAgICAgICAgICAgIHwgIDE1NyArKysrKysrKysrKysrKysrKysrKwogV2ViQ29y
ZS9jc3MvTWVkaWFRdWVyeVZlY3Rvci5oICAgICAgICAgICAgICAgICAgICAgfCAgIDgxICsrKysr
KysrKysKIFdlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwgICAgMyArCiBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgMjcgKysrKy0KIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuaCAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgICAxMiArKy0KIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAgMyArCiAzMyBmaWxlcyBjaGFuZ2VkLCAxMTc2IGluc2Vy
dGlvbnMoKyksIDI1IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3Rz
L2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMS1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDEuaHRtbAog
Y3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlz
dC0wMi1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L21l
ZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDIuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRl
c3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMy1leHBlY3RlZC50eHQKIGNyZWF0ZSBt
b2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMuaHRt
bAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvYmluZGluZ3MvanMvSlNNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyQ3VzdG9tLmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvYmluZGluZ3Mv
djgvY3VzdG9tL1Y4TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckN1c3RvbS5jcHAKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0
NCBXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29y
ZS9jc3MvTWVkaWFRdWVyeUxpc3QuaWRsCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9jc3Mv
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9jc3Mv
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5pZGwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL2Nz
cy9NZWRpYVF1ZXJ5VmVjdG9yLmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvY3NzL01l
ZGlhUXVlcnlWZWN0b3IuaAoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmMzkxZDMxLi5mZWUwZmY1IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjIgQEAKKzIwMTAtMDktMDIgIEx1aXogQWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5i
b3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTWVkaWEgbGlzdGVuZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zNzIwNQorCisgICAgICAgIE1lZGlhUXVlcnlMaXN0IHRlc3RzLgorCisgICAg
ICAgICogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAxLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAxLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMi1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMi5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMuaHRtbDog
QWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0
OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL3dp
bi9Ta2lwcGVkOgorCiAyMDEwLTA5LTA4ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4K
IAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAxLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZWJhM2Y1Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAxLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDE1IEBACitUZXN0IHRoZSBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U6IGh0dHA6
Ly9kZXYudzMub3JnL2Nzc3dnL2Nzc29tLXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZh
Y2UuCisKKyJzY3JlZW4iIGV2YWx1YXRlcyB0byB0cnVlOiBQQVNTCisicHJvamVjdGlvbiIgZXZh
bHVhdGVzIHRvIGZhbHNlOiBQQVNTCisiYWxsIGFuZCAoY29sb3IpIiBldmFsdWF0ZXMgdG8gdHJ1
ZTogUEFTUworIm5vdCBwcm9qZWN0aW9uIGFuZCAoY29sb3IpIiBldmFsdWF0ZXMgdG8gdHJ1ZTog
UEFTUworIihjb2xvcikiIGV2YWx1YXRlcyB0byB0cnVlOiBQQVNTCisiKGNvbG9yIiBldmFsdWF0
ZXMgdG8gZmFsc2U6IFBBU1MKKyJjb2xvciIgZXZhbHVhdGVzIHRvIGZhbHNlOiBQQVNTCisiZ2Fy
YmFnZSIgZXZhbHVhdGVzIHRvIGZhbHNlOiBQQVNTCisiKG1pbi1kZXZpY2Utd2lkdGg6IDEwMHB4
KSIgZXZhbHVhdGVzIHRvIHRydWU6IFBBU1MKKyIobWluLWRldmljZS13aWR0aDogNTAwMDBweCki
IGV2YWx1YXRlcyB0byBmYWxzZTogUEFTUworIigtd2Via2l0LWFuaW1hdGlvbjogMSkiIGV2YWx1
YXRlcyB0byB0cnVlOiBQQVNTCisiKC13ZWJraXQtdHJhbnNmb3JtLTJkKSIgZXZhbHVhdGVzIHRv
IHRydWU6IFBBU1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1x
dWVyeS1saXN0LTAxLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxp
c3QtMDEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zM2RjYzY3Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0
LTAxLmh0bWwKQEAgLTAsMCArMSw1MiBAQAorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5UZXN0IENT
U09NIFZpZXcgbW9kdWxlOiBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U8L3RpdGxlPgorPHN0eWxl
IHR5cGU9InRleHQvY3NzIj4KKworPC9zdHlsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBjaGFyc2V0PSJ1dGYtOCI+CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgICAgZnVu
Y3Rpb24gbG9nKG0pCisgICAgeworICAgICAgICB2YXIgcmVzdWx0cyA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdyZXN1bHRzJyk7CisgICAgICAgIHJlc3VsdHMuaW5uZXJIVE1MICs9IG0gKyAn
PGJyPic7CisgICAgfQorCisgICAgZnVuY3Rpb24gdGVzdFF1ZXJ5KHF1ZXJ5LCBleHBlY3RlZCkK
KyAgICB7CisgICAgICAgIHZhciBpc1RydWUgPSB3aW5kb3cubWF0Y2hNZWRpYShxdWVyeSkubWF0
Y2hlczsKKyAgICAgICAgdmFyIG1lc3NhZ2UgPSAnXCInICsgcXVlcnkgKyAnXCIgZXZhbHVhdGVz
IHRvICcgKyAoaXNUcnVlID8gJ3RydWUnIDogJ2ZhbHNlJyk7CisgICAgICAgIG1lc3NhZ2UgKz0g
KGlzVHJ1ZSA9PSBleHBlY3RlZCkgPyAnOiBQQVNTJyA6ICc6IEZBSUwnOworICAgICAgICBsb2co
bWVzc2FnZSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdHMoKQorICAgIHsKKyAgICAg
ICAgdGVzdFF1ZXJ5KCdzY3JlZW4nLCB0cnVlKTsKKyAgICAgICAgdGVzdFF1ZXJ5KCdwcm9qZWN0
aW9uJywgZmFsc2UpOworCisgICAgICAgIHRlc3RRdWVyeSgnYWxsIGFuZCAoY29sb3IpJywgdHJ1
ZSk7CisgICAgICAgIHRlc3RRdWVyeSgnbm90IHByb2plY3Rpb24gYW5kIChjb2xvciknLCB0cnVl
KTsKKyAgICAgICAgdGVzdFF1ZXJ5KCcoY29sb3IpJywgdHJ1ZSk7CisgICAgICAgIHRlc3RRdWVy
eSgnKGNvbG9yJywgZmFsc2UpOworICAgICAgICB0ZXN0UXVlcnkoJ2NvbG9yJywgZmFsc2UpOwor
CisgICAgICAgIHRlc3RRdWVyeSgnZ2FyYmFnZScsIGZhbHNlKTsKKworICAgICAgICB0ZXN0UXVl
cnkoJyhtaW4tZGV2aWNlLXdpZHRoOiAxMDBweCknLCB0cnVlKTsKKyAgICAgICAgdGVzdFF1ZXJ5
KCcobWluLWRldmljZS13aWR0aDogNTAwMDBweCknLCBmYWxzZSk7CisKKyAgICAgICAgdGVzdFF1
ZXJ5KCcoLXdlYmtpdC1hbmltYXRpb246IDEpJywgdHJ1ZSk7CisgICAgICAgIHRlc3RRdWVyeSgn
KC13ZWJraXQtdHJhbnNmb3JtLTJkKScsIHRydWUpOworICAgIH0KKworPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3RzKCkiPgorICAgIDxwPlRlc3QgdGhlIE1lZGlhUXVl
cnlMaXN0IGludGVyZmFjZTogPGEgaHJlZj0iaHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3Nzb20t
dmlldy8jdGhlLW1lZGlhcXVlcnlsaXN0LWludGVyZmFjZSIgdGl0bGU9IkNTU09NIFZpZXcgTW9k
dWxlIj5odHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9jc3NvbS12aWV3LyN0aGUtbWVkaWFxdWVyeWxp
c3QtaW50ZXJmYWNlPC9hPi48L3A+CisgICAgPGRpdiBpZD0icmVzdWx0cyI+CisgICAgPC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21l
ZGlhLXF1ZXJ5LWxpc3QtMDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9t
ZWRpYS1xdWVyeS1saXN0LTAyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi42MzY0M2Q4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI1IEBACitU
ZXN0IHRoZSBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U6IGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dn
L2Nzc29tLXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2UuCisKK1Rlc3RpbmcgYWRk
TGlzdGVuZXIgaW4gZGlmZmVyZW50IE1lZGlhUXVlcnlMaXN0IG9iamVjdHMgYW5kIHRoZSBjYWxs
YmFjayBjYWxsIHNlcXVlbmNlCisKKy0tLS0tLS0tLS0tLS0gbWluaW1pemVkIC0tLS0tLS0tLS0t
LS0KK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQgdG8g
ZmFsc2UKK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSBjaGFuZ2Vk
IHRvIHRydWUKK1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5n
ZWQgdG8gZmFsc2UKK1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSBj
aGFuZ2VkIHRvIHRydWUKKy0tLS0tLS0tLS0tLS0gbWF4aW1pemVkIC0tLS0tLS0tLS0tLS0KK1sx
XSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSBjaGFuZ2VkIHRvIGZhbHNl
CitbMV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1heGltaXplZCkgY2hhbmdlZCB0byB0
cnVlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCkgY2hhbmdlZCB0
byBmYWxzZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtYXhpbWl6ZWQpIGNoYW5n
ZWQgdG8gdHJ1ZQorLS0tLS0tLS0tLS0tLSB3aW5kb3dlZCAtLS0tLS0tLS0tLS0tCitbMV0gLSBx
dWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFuZ2VkIHRvIHRydWUKK1sxXSAt
IHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWF4aW1pemVkKSBjaGFuZ2VkIHRvIGZhbHNlCitb
Ml0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFuZ2VkIHRvIHRydWUK
K1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWF4aW1pemVkKSBjaGFuZ2VkIHRvIGZh
bHNlCistLS0tLS0tLS0tLS0tIGZsb2F0aW5nIC0tLS0tLS0tLS0tLS0KK1sxXSAtIHF1ZXJ5ICgt
d2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQgdG8gZmFsc2UKK1sxXSAtIHF1ZXJ5
ICgtd2Via2l0LXZpZXctbW9kZTogZmxvYXRpbmcpIGNoYW5nZWQgdG8gdHJ1ZQorWzJdIC0gcXVl
cnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0byBmYWxzZQorWzJdIC0g
cXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBmbG9hdGluZykgY2hhbmdlZCB0byB0cnVlCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMi5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAyLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGRlY2U0MwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMi5odG1sCkBAIC0wLDAg
KzEsNjEgQEAKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+VGVzdCBDU1NPTSBWaWV3IG1vZHVsZTog
TWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlPC90aXRsZT4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+
CisKKzwvc3R5bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRm
LTgiPgorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworICAgIGZ1bmN0aW9uIGxvZyhtKSB7Cisg
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHRzJykuaW5uZXJIVE1MICs9IG0g
KyAnPGJyPic7CisgICAgfQorCisgICAgZnVuY3Rpb24gY2FsbGJhY2sxKHF1ZXJ5KSB7CisgICAg
ICAgIGxvZygiWzFdIC0gcXVlcnkgIiArIHF1ZXJ5Lm1lZGlhICsgIiBjaGFuZ2VkIHRvICIgKyAo
cXVlcnkubWF0Y2hlcyA/ICJ0cnVlIiA6ICJmYWxzZSIpKTsKKyAgICB9CisKKyAgICBmdW5jdGlv
biBjYWxsYmFjazIocXVlcnkpIHsKKyAgICAgICAgbG9nKCJbMl0gLSBxdWVyeSAiICsgcXVlcnku
bWVkaWEgKyAiIGNoYW5nZWQgdG8gIiArIChxdWVyeS5tYXRjaGVzID8gInRydWUiIDogImZhbHNl
IikpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3RzKCkKKyAgICB7CisgICAgICAgIGlm
ICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgcmV0dXJuOworCisg
ICAgICAgIHdpbmRvd2VkUXVlcnkgPSB3aW5kb3cubWF0Y2hNZWRpYSgiKC13ZWJraXQtdmlldy1t
b2RlOiB3aW5kb3dlZCkiKTsKKyAgICAgICAgZmxvYXRpbmdRdWVyeSA9IHdpbmRvdy5tYXRjaE1l
ZGlhKCIoLXdlYmtpdC12aWV3LW1vZGU6IGZsb2F0aW5nKSIpOworICAgICAgICBtaW5pbWl6ZWRR
dWVyeSA9IHdpbmRvdy5tYXRjaE1lZGlhKCIoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCki
KTsKKyAgICAgICAgbWF4aW1pemVkUXVlcnkgPSB3aW5kb3cubWF0Y2hNZWRpYSgiKC13ZWJraXQt
dmlldy1tb2RlOiBtYXhpbWl6ZWQpIik7CisKKyAgICAgICAgd2luZG93ZWRRdWVyeS5hZGRMaXN0
ZW5lcihjYWxsYmFjazEpOworICAgICAgICBmbG9hdGluZ1F1ZXJ5LmFkZExpc3RlbmVyKGNhbGxi
YWNrMSk7CisgICAgICAgIG1pbmltaXplZFF1ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNrMSk7Cisg
ICAgICAgIG1heGltaXplZFF1ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNrMSk7CisKKyAgICAgICAg
d2luZG93ZWRRdWVyeS5hZGRMaXN0ZW5lcihjYWxsYmFjazIpOworICAgICAgICBmbG9hdGluZ1F1
ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNrMik7CisgICAgICAgIG1pbmltaXplZFF1ZXJ5LmFkZExp
c3RlbmVyKGNhbGxiYWNrMik7CisgICAgICAgIG1heGltaXplZFF1ZXJ5LmFkZExpc3RlbmVyKGNh
bGxiYWNrMik7CisKKyAgICAgICAgbG9nKCItLS0tLS0tLS0tLS0tIG1pbmltaXplZCAtLS0tLS0t
LS0tLS0tIik7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFZpZXdNb2RlTWVkaWFG
ZWF0dXJlKCJtaW5pbWl6ZWQiKTsKKyAgICAgICAgbG9nKCItLS0tLS0tLS0tLS0tIG1heGltaXpl
ZCAtLS0tLS0tLS0tLS0tIik7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFZpZXdN
b2RlTWVkaWFGZWF0dXJlKCJtYXhpbWl6ZWQiKTsKKyAgICAgICAgbG9nKCItLS0tLS0tLS0tLS0t
IHdpbmRvd2VkIC0tLS0tLS0tLS0tLS0iKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
c2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoIndpbmRvd2VkIik7CisgICAgICAgIGxvZygiLS0tLS0t
LS0tLS0tLSBmbG9hdGluZyAtLS0tLS0tLS0tLS0tIik7CisgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCJmbG9hdGluZyIpOworICAgIH0KKworPC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3RzKCkiPgorICAgIDxwPlRlc3Qg
dGhlIE1lZGlhUXVlcnlMaXN0IGludGVyZmFjZTogPGEgaHJlZj0iaHR0cDovL2Rldi53My5vcmcv
Y3Nzd2cvY3Nzb20tdmlldy8jdGhlLW1lZGlhcXVlcnlsaXN0LWludGVyZmFjZSIgdGl0bGU9IkNT
U09NIFZpZXcgTW9kdWxlIj5odHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9jc3NvbS12aWV3LyN0aGUt
bWVkaWFxdWVyeWxpc3QtaW50ZXJmYWNlPC9hPi48L3A+CisgICAgPHA+VGVzdGluZyBhZGRMaXN0
ZW5lciBpbiBkaWZmZXJlbnQgTWVkaWFRdWVyeUxpc3Qgb2JqZWN0cyBhbmQgdGhlIGNhbGxiYWNr
IGNhbGwgc2VxdWVuY2U8L3A+CisgICAgPGRpdiBpZD0icmVzdWx0cyI+CisgICAgPC9kaXY+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlh
LXF1ZXJ5LWxpc3QtMDMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRp
YS1xdWVyeS1saXN0LTAzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5mMjRlMjA2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YS9tZWRpYS1xdWVyeS1saXN0LTAzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQxIEBACitUZXN0
IHRoZSBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U6IGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nz
c29tLXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2UuCisKK1Rlc3RpbmcgcmVtb3Zl
TGlzdGVuZXIgaW4gZGlmZmVyZW50IE1lZGlhUXVlcnlMaXN0IG9iamVjdHMgYW5kIHRoZSBjYWxs
YmFjayBjYWxsIHNlcXVlbmNlCisKK2FkZGluZyB3aW5kb3dlZFsxXSwgbWluaW1pemVkWzFdLCB3
aW5kb3dlZFsyXSBhbmQgbWluaW1pemVkWzJdCisKKy0tLS0tLS0tLS0tLS0gbWluaW1pemVkIC0t
LS0tLS0tLS0tLS0KK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNo
YW5nZWQgdG8gZmFsc2UKK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVk
KSBjaGFuZ2VkIHRvIHRydWUKK1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93
ZWQpIGNoYW5nZWQgdG8gZmFsc2UKK1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWlu
aW1pemVkKSBjaGFuZ2VkIHRvIHRydWUKKy0tLS0tLS0tLS0tLS0gd2luZG93ZWQgLS0tLS0tLS0t
LS0tLQorWzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0
byB0cnVlCitbMV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCkgY2hhbmdl
ZCB0byBmYWxzZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hh
bmdlZCB0byB0cnVlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCkg
Y2hhbmdlZCB0byBmYWxzZQorCisKK3JlbW92aW5nIHdpbmRvd2VkWzFdIGFuZCBtaW5pbWl6ZWRb
Ml0KKworLS0tLS0tLS0tLS0tLSBtaW5pbWl6ZWQgLS0tLS0tLS0tLS0tLQorWzFdIC0gcXVlcnkg
KC13ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQpIGNoYW5nZWQgdG8gdHJ1ZQorWzJdIC0gcXVl
cnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0byBmYWxzZQorLS0tLS0t
LS0tLS0tLSB3aW5kb3dlZCAtLS0tLS0tLS0tLS0tCitbMV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3
LW1vZGU6IG1pbmltaXplZCkgY2hhbmdlZCB0byBmYWxzZQorWzJdIC0gcXVlcnkgKC13ZWJraXQt
dmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0byB0cnVlCisKKworYWRkaW5nIHdpbmRvd2Vk
WzFdIGFuZCBtaW5pbWl6ZWRbMl0KKworLS0tLS0tLS0tLS0tLSBtaW5pbWl6ZWQgLS0tLS0tLS0t
LS0tLQorWzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQpIGNoYW5nZWQg
dG8gdHJ1ZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdl
ZCB0byBmYWxzZQorWzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hh
bmdlZCB0byBmYWxzZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQp
IGNoYW5nZWQgdG8gdHJ1ZQorLS0tLS0tLS0tLS0tLSB3aW5kb3dlZCAtLS0tLS0tLS0tLS0tCitb
MV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCkgY2hhbmdlZCB0byBmYWxz
ZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0byB0
cnVlCitbMV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFuZ2VkIHRv
IHRydWUKK1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSBjaGFuZ2Vk
IHRvIGZhbHNlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVl
cnktbGlzdC0wMy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0
LTAzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjJkNDA4ZAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0w
My5odG1sCkBAIC0wLDAgKzEsNzAgQEAKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+VGVzdCBDU1NP
TSBWaWV3IG1vZHVsZTogTWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlPC90aXRsZT4KKzxzdHlsZSB0
eXBlPSJ0ZXh0L2NzcyI+CisKKzwvc3R5bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCIgY2hhcnNldD0idXRmLTgiPgorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworICAgIGZ1bmN0
aW9uIGxvZyhtKSB7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHRzJyku
aW5uZXJIVE1MICs9IG0gKyAnPGJyPic7CisgICAgfQorCisgICAgZnVuY3Rpb24gY2FsbGJhY2sx
KHF1ZXJ5KSB7CisgICAgICAgIGxvZygiWzFdIC0gcXVlcnkgIiArIHF1ZXJ5Lm1lZGlhICsgIiBj
aGFuZ2VkIHRvICIgKyAocXVlcnkubWF0Y2hlcyA/ICJ0cnVlIiA6ICJmYWxzZSIpKTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBjYWxsYmFjazIocXVlcnkpIHsKKyAgICAgICAgbG9nKCJbMl0gLSBx
dWVyeSAiICsgcXVlcnkubWVkaWEgKyAiIGNoYW5nZWQgdG8gIiArIChxdWVyeS5tYXRjaGVzID8g
InRydWUiIDogImZhbHNlIikpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3RzKCkKKyAg
ICB7CisgICAgICAgIGlmICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAg
ICAgcmV0dXJuOworCisgICAgICAgIHdpbmRvd2VkUXVlcnkgPSB3aW5kb3cubWF0Y2hNZWRpYSgi
KC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkiKTsKKyAgICAgICAgbWluaW1pemVkUXVlcnkg
PSB3aW5kb3cubWF0Y2hNZWRpYSgiKC13ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQpIik7CisK
KyAgICAgICAgbG9nKCJhZGRpbmcgd2luZG93ZWRbMV0sIG1pbmltaXplZFsxXSwgd2luZG93ZWRb
Ml0gYW5kIG1pbmltaXplZFsyXTxicj4iKTsKKyAgICAgICAgd2luZG93ZWRRdWVyeS5hZGRMaXN0
ZW5lcihjYWxsYmFjazEpOworICAgICAgICBtaW5pbWl6ZWRRdWVyeS5hZGRMaXN0ZW5lcihjYWxs
YmFjazEpOworICAgICAgICB3aW5kb3dlZFF1ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNrMik7Cisg
ICAgICAgIG1pbmltaXplZFF1ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNrMik7CisKKyAgICAgICAg
bG9nKCItLS0tLS0tLS0tLS0tIG1pbmltaXplZCAtLS0tLS0tLS0tLS0tIik7CisgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCJtaW5pbWl6ZWQiKTsK
KyAgICAgICAgbG9nKCItLS0tLS0tLS0tLS0tIHdpbmRvd2VkIC0tLS0tLS0tLS0tLS0iKTsKKyAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoIndpbmRv
d2VkIik7CisKKyAgICAgICAgbG9nKCI8YnI+PGJyPnJlbW92aW5nIHdpbmRvd2VkWzFdIGFuZCBt
aW5pbWl6ZWRbMl08YnI+Iik7CisgICAgICAgIHdpbmRvd2VkUXVlcnkucmVtb3ZlTGlzdGVuZXIo
Y2FsbGJhY2sxKTsKKyAgICAgICAgbWluaW1pemVkUXVlcnkucmVtb3ZlTGlzdGVuZXIoY2FsbGJh
Y2syKTsKKworICAgICAgICBsb2coIi0tLS0tLS0tLS0tLS0gbWluaW1pemVkIC0tLS0tLS0tLS0t
LS0iKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1
cmUoIm1pbmltaXplZCIpOworICAgICAgICBsb2coIi0tLS0tLS0tLS0tLS0gd2luZG93ZWQgLS0t
LS0tLS0tLS0tLSIpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9kZU1l
ZGlhRmVhdHVyZSgid2luZG93ZWQiKTsKKworICAgICAgICBsb2coIjxicj48YnI+YWRkaW5nIHdp
bmRvd2VkWzFdIGFuZCBtaW5pbWl6ZWRbMl08YnI+Iik7CisgICAgICAgIHdpbmRvd2VkUXVlcnku
YWRkTGlzdGVuZXIoY2FsbGJhY2sxKTsKKyAgICAgICAgbWluaW1pemVkUXVlcnkuYWRkTGlzdGVu
ZXIoY2FsbGJhY2syKTsKKworICAgICAgICBsb2coIi0tLS0tLS0tLS0tLS0gbWluaW1pemVkIC0t
LS0tLS0tLS0tLS0iKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Vmlld01vZGVN
ZWRpYUZlYXR1cmUoIm1pbmltaXplZCIpOworICAgICAgICBsb2coIi0tLS0tLS0tLS0tLS0gd2lu
ZG93ZWQgLS0tLS0tLS0tLS0tLSIpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRW
aWV3TW9kZU1lZGlhRmVhdHVyZSgid2luZG93ZWQiKTsKKworICAgIH0KKworPC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3RzKCkiPgorICAgIDxwPlRlc3QgdGhlIE1lZGlh
UXVlcnlMaXN0IGludGVyZmFjZTogPGEgaHJlZj0iaHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3Nz
b20tdmlldy8jdGhlLW1lZGlhcXVlcnlsaXN0LWludGVyZmFjZSIgdGl0bGU9IkNTU09NIFZpZXcg
TW9kdWxlIj5odHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9jc3NvbS12aWV3LyN0aGUtbWVkaWFxdWVy
eWxpc3QtaW50ZXJmYWNlPC9hPi48L3A+CisgICAgPHA+VGVzdGluZyByZW1vdmVMaXN0ZW5lciBp
biBkaWZmZXJlbnQgTWVkaWFRdWVyeUxpc3Qgb2JqZWN0cyBhbmQgdGhlIGNhbGxiYWNrIGNhbGwg
c2VxdWVuY2U8L3A+CisgICAgPGRpdiBpZD0icmVzdWx0cyI+CisgICAgPC9kaXY+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0
X2V4cGVjdGF0aW9ucy50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4
cGVjdGF0aW9ucy50eHQKaW5kZXggZjkwYWQyMC4uMzAzZjUyZSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dApAQCAtMjUxMSw4
ICsyNTExLDEwIEBAIEJVRzM4NTc4IDogcGx1Z2lucy9vdmVycmlkZS1ub2RlLW1ldGhvZC5odG1s
ID0gVEVYVAogQlVHMzg2NTMgTUFDIDogZWRpdGluZy9zZWxlY3Rpb24vZmluZC15ZW5zaWduLWFu
ZC1iYWNrc2xhc2guaHRtbCA9IFRFWFQKIEJVRzM4NjU2IDogZmFzdC9tZWRpYS9wcmludC1yZXN0
b3Jlcy1wcmV2aW91cy1tZWRpYXR5cGUuaHRtbCA9IFRFWFQKIAotLy8gTmVlZHMgbGF5b3V0VGVz
dENvbnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoKSAoaW1wbGVtZW50ZWQgb24gUXQg
b25seSkKKy8vIE5lZWRzIGxheW91dFRlc3RDb250cm9sbGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0
dXJlKCkKIEJVRzQwNjgwIFNLSVAgOiBmYXN0L21lZGlhL3ZpZXctbW9kZS1tZWRpYS1mZWF0dXJl
Lmh0bWwgPSBGQUlMCitCVUc0MDY4MCBTS0lQIDogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0
LTAyLmh0bWwgPSBGQUlMCitCVUc0MDY4MCBTS0lQIDogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1s
aXN0LTAzLmh0bWwgPSBGQUlMCiAKIC8vIFVua25vd24gZmxha2luZXNzLgogQlVHMzg3MDYgOiBz
dmcvY3VzdG9tL2RlZXAtZHluYW1pYy11cGRhdGVzLnN2ZyA9IElNQUdFK1RFWFQgSU1BR0UgUEFT
UwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAppbmRleCA4ZGE1NzE5Li5mYTU5MWNkIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvU2tpcHBlZApAQCAtMTQwLDggKzE0MCwxMCBAQCBodHRwL3Rlc3RzL3BsdWdp
bnMvcGx1Z2luLWRvY3VtZW50LWhhcy1mb2N1cy5odG1sCiAjIE1pc3NlcyBzZXRNZWRpYVR5cGUo
KSBhbmQgaW1wbGVtZW50YXRpb24KIGZhc3QvbWVkaWEvcHJpbnQtcmVzdG9yZXMtcHJldmlvdXMt
bWVkaWF0eXBlLmh0bWwKIAotIyB2aWV3IG1vZGUgbWVkaWEgZmVhdHVyZQorIyBOZWVkcyBsYXlv
dXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSgpCiBmYXN0L21lZGlhL3Zp
ZXctbW9kZS1tZWRpYS1mZWF0dXJlLmh0bWwKK2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0w
Mi5odG1sCitmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMuaHRtbAogCiAjIFRlc3QgaXMg
Zmxha3kgYW5kIHRodXMgbm90IHVzZWZ1bCB1bnRpbCBmaXhlZC4KICMgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM2NjQyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCmlu
ZGV4IGI0M2U1MmMuLjJlZThhYjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dp
bi9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCkBAIC04NDgs
OCArODQ4LDEwIEBAIGZhc3QvZG9tL0hUTUxNZXRlckVsZW1lbnQvbWV0ZXItcGVyY2VudC1zaXpl
Lmh0bWwKIGZhc3QvZG9tL0hUTUxNZXRlckVsZW1lbnQvbWV0ZXItc3R5bGVzLmh0bWwKIGZhc3Qv
ZG9tL0hUTUxNZXRlckVsZW1lbnQvbWV0ZXItc3R5bGVzLWNoYW5naW5nLXBzZXVkby5odG1sCiAK
LSMgdmlldyBtb2RlIG1lZGlhIGZlYXR1cmUKKyMgTmVlZHMgbGF5b3V0VGVzdENvbnRyb2xsZXIu
c2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoKQogZmFzdC9tZWRpYS92aWV3LW1vZGUtbWVkaWEtZmVh
dHVyZS5odG1sCitmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDIuaHRtbAorZmFzdC9tZWRp
YS9tZWRpYS1xdWVyeS1saXN0LTAzLmh0bWwKIAogIyBOZWVkIGV4cGVjdGF0aW9ucy4gU2VlIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNjQ2MQogZmFzdC9yZXBhaW50
L292ZXJmbG93LXNjcm9sbC1ib2R5LWFwcGVhci5odG1sCmRpZmYgLS1naXQgYS9XZWJDb3JlL0No
YW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGMxNTU0ZTEuLjQ5Yzk1MmMgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsOTcgQEAKKzIwMTAtMDktMDIgIEx1aXogQWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5i
b3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTWVkaWEgbGlzdGVuZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zNzIwNQorCisgICAgICAgIEFzIHNwZWNpZmllZCBhdCBodHRwOi8vZGV2Lncz
Lm9yZy9jc3N3Zy9jc3NvbS12aWV3LyNleHRlbnNpb25zLXRvLXRoZS13aW5kb3ctaW50ZXJmYWNl
LgorCisgICAgICAgIFY4IGFuZCBKUyBjb2RlIGdlbmVyYXRvcnMgY2hhbmdlZCB0byBhY2NlcHQg
dm9pZCBjYWxsYmFja3MuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbToK
KworICAgICAgICBOZXcgaW50ZXJmYWNlcyBNZWRpYVF1ZXJ5TGlzdCBhbmQgTWVkaWFRdWVyeUxp
c3RMaXN0ZW5lci4KKworICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5TGlzdC5pZGw6IEFkZGVkLgor
ICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmlkbDogQWRkZWQuCisKKyAgICAg
ICAgTWVkaWFRdWVyeUxpc3RMc2l0ZW5lciBpcyBhIGNhbGxiYWNrLiBBIGN1c3RvbSBtZXRob2Qg
aXMgbmVlZGVkIHRvIGltcGxlbWVudAorICAgICAgICBjYWxsYmFjayBjb21wYXJpc29uLgorCisg
ICAgICAgICogYmluZGluZ3MvanMvSlNNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ3VzdG9tLmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpKU01lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OmlzRXF1
YWwpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXJDdXN0b20uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlY4TWVkaWFRdWVyeUxpc3RM
aXN0ZW5lcjo6aXNFcXVhbCk6CisKKyAgICAgICAgQ2xhc3NzIE1lZGlhUXVlcnlMaXN0IGFuZCBN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLgorCisgICAgICAgICogY3NzL01lZGlhUXVlcnlMaXN0LmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdDo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlMaXN0OjpNZWRpYVF1ZXJ5TGlzdCk6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdDo6fk1lZGlhUXVlcnlMaXN0KToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUXVlcnlMaXN0OjptZWRpYSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1
ZXJ5TGlzdDo6Y2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdDo6YWRk
TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeUxpc3Q6OnJlbW92ZUxpc3Rl
bmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlMaXN0OjpldmFsdWF0ZSk6CisgICAg
ICAgICogY3NzL01lZGlhUXVlcnlMaXN0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFRdWVyeUxpc3Q6Om1hdGNoZXMpOgorICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6
fk1lZGlhUXVlcnlMaXN0TGlzdGVuZXIpOgorCisgICAgICAgIFRvIGF2b2lkIGFkZGluZyBjb2Rl
IHRvIGNsYXNzIERPTVdpbmRvdyBhIG5ldyBjbGFzcyBNZWRpYVF1ZXJ5VmVjdG9yIHdhcyBjcmVh
dGVkLgorICAgICAgICBUaGlzIG5ldyBjbGFzcyBpcyB1c2VkIGJ5IERPTVdpbmRvdyB0byBpbXBs
ZW1lbnQgbWV0aG9kIG1hdGNoTWVkaWEuCisKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeVZlY3Rv
ci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeUxpc3RlbmVyOjpNZWRp
YVF1ZXJ5TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeUxpc3RlbmVyOjp+
TWVkaWFRdWVyeUxpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlMaXN0ZW5l
cjo6ZXZhbHVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeVZlY3Rvcjo6TWVkaWFR
dWVyeVZlY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5VmVjdG9yOjp+TWVkaWFR
dWVyeVZlY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5VmVjdG9yOjp0ZXJtaW5h
dGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeVZlY3Rvcjo6bWVkaWFUeXBlKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlWZWN0b3I6OnByZXBhcmVFdmFsdWF0b3IpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeVZlY3Rvcjo6bWF0Y2hNZWRpYSk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVF1ZXJ5VmVjdG9yOjphZGRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVF1ZXJ5VmVjdG9yOjpyZW1vdmVMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVF1ZXJ5VmVjdG9yOjpldmFsdWF0ZSk6CisgICAgICAgICogY3NzL01lZGlhUXVlcnlWZWN0
b3IuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdGVuZXI6Omxpc3Rl
bmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlMaXN0ZW5lcjo6cXVlcnkpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeVZlY3Rvcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUXVlcnlWZWN0b3I6OmV2YWxSb3VuZCk6CisKKyAgICAgICAgRG9jdW1lbnQgbmVl
ZHMgdG8gbm90aWZ5IERPTVdpbmRvdyBhYm91dCBzdHlsZSBjaGFuZ2VzLiBET01XaW5kb3cgaW1w
bGVtZW50cworICAgICAgICBtZXRob2QgbWF0Y2hNZWRpYSBhcyBzcGVjaWZpZWQuCisKKyAgICAg
ICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnN0eWxl
U2VsZWN0b3JDaGFuZ2VkKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpET01XaW5kb3c6On5ET01XaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6RE9N
V2luZG93OjptYXRjaE1lZGlhKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6c3R5bGVD
aGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6Y2xlYXIpOgorICAgICAgICAq
IHBhZ2UvRE9NV2luZG93Lmg6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmRlZmF1bHRT
dGF0dXMpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmlkbDoKKworICAgICAgICBCdWlsZCBz
eXN0ZW1zIGlzc3Vlcy4KKworICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAg
ICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdl
YkNvcmUucHJpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9nb2JqZWN0L0dOVW1h
a2VmaWxlLmFtOgorCisgICAgICAgIFRlc3RzOiBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3Qt
MDEuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAyLmh0
bWwKKyAgICAgICAgICAgICAgIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMy5odG1sCisK
KwogMjAxMC0wOS0wOCAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlIGIvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDZmZDFjZGUuLmZk
ZTNmYmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTI1Nyw2ICsyNTcsOCBAQCBET01fQ0xBU1NFUyA9
IFwKICAgICBMb2NhdGlvbiBcCiAgICAgTWVkaWFFcnJvciBcCiAgICAgTWVkaWFMaXN0IFwKKyAg
ICBNZWRpYVF1ZXJ5TGlzdCBcCisgICAgTWVkaWFRdWVyeUxpc3RMaXN0ZW5lciBcCiAgICAgTWVt
b3J5SW5mbyBcCiAgICAgTWVzc2FnZUNoYW5uZWwgXAogICAgIE1lc3NhZ2VFdmVudCBcCmRpZmYg
LS1naXQgYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpp
bmRleCAwZjU3NDEzLi5jN2JlNzY2IDEwMDY0NAotLS0gYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFt
CisrKyBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTQxNSw2ICs0MTUsMTAgQEAgd2ViY29y
ZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFFcnJv
ci5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFMaXN0LmNwcCBcCiAJRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTTWVkaWFRdWVyeUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFR
dWVyeUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhUXVlcnlMaXN0TGlz
dGVuZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFRdWVyeUxpc3RMaXN0
ZW5lci5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVtb3J5SW5mby5jcHAgXAogCURl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZW1vcnlJbmZvLmggXAogCURlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNNZXNzYWdlQ2hhbm5lbC5jcHAgXApAQCAtNzIxLDYgKzcyNSw3IEBAIHdlYmNvcmVf
c291cmNlcyArPSBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xvY2F0aW9uQ3VzdG9tLmggXAog
CVdlYkNvcmUvYmluZGluZ3MvanMvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmNwcCBcCiAJV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU01haW5UaHJlYWRFeGVjU3RhdGUuaCBcCisJV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU01lZGlhUXVlcnlMaXN0TGlzdGVuZXJDdXN0b20uY3BwIFwKIAlXZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTWVzc2FnZUNoYW5uZWxDdXN0b20uY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pz
L0pTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3Nh
Z2VQb3J0Q3VzdG9tLmNwcCBcCkBAIC05NDAsMTEgKzk0NSwxNiBAQCB3ZWJjb3JlX3NvdXJjZXMg
Kz0gXAogCVdlYkNvcmUvY3NzL01lZGlhTGlzdC5jcHAgXAogCVdlYkNvcmUvY3NzL01lZGlhTGlz
dC5oIFwKIAlXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5LmNwcCBcCisJV2ViQ29yZS9jc3MvTWVkaWFR
dWVyeS5oIFwKIAlXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcCBcCiAJV2ViQ29y
ZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5oIFwKIAlXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXhw
LmNwcCBcCiAJV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cC5oIFwKLQlXZWJDb3JlL2Nzcy9NZWRp
YVF1ZXJ5LmggXAorCVdlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0LmNwcCBcCisJV2ViQ29yZS9j
c3MvTWVkaWFRdWVyeUxpc3QuaCBcCisJV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5l
ci5oIFwKKwlXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5VmVjdG9yLmNwcCBcCisJV2ViQ29yZS9jc3Mv
TWVkaWFRdWVyeVZlY3Rvci5oIFwKIAlXZWJDb3JlL2Nzcy9QYWlyLmggXAogCVdlYkNvcmUvY3Nz
L1JlY3QuaCBcCiAJV2ViQ29yZS9jc3MvUkdCQ29sb3IuY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggYzc1OTc5NC4uNTcy
YzA4MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKQEAgLTE5LDYgKzE5LDggQEAKICAgICAgICAgICAgICdjc3MvQ1NTVmFyaWFibGVz
UnVsZS5pZGwnLAogICAgICAgICAgICAgJ2Nzcy9Db3VudGVyLmlkbCcsCiAgICAgICAgICAgICAn
Y3NzL01lZGlhTGlzdC5pZGwnLAorICAgICAgICAgICAgJ2Nzcy9NZWRpYVF1ZXJ5TGlzdC5pZGwn
LAorICAgICAgICAgICAgJ2Nzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmlkbCcsCiAgICAgICAg
ICAgICAnY3NzL1JlY3QuaWRsJywKICAgICAgICAgICAgICdjc3MvUkdCQ29sb3IuaWRsJywKICAg
ICAgICAgICAgICdjc3MvU3R5bGVNZWRpYS5pZGwnLApAQCAtNzg4LDYgKzc5MCw3IEBACiAgICAg
ICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW5zcGVjdG9yRnJvbnRlbmRIb3N0Q3VzdG9t
LmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4SmF2YVNjcmlwdENhbGxG
cmFtZUN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOExvY2F0
aW9uQ3VzdG9tLmNwcCcsCisgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVkaWFR
dWVyeUxpc3RMaXN0ZW5lckN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOE1lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3IuY3BwJywKICAgICAgICAgICAgICdiaW5k
aW5ncy92OC9jdXN0b20vVjhNZXNzYWdlRXZlbnRDdXN0b20uY3BwJywKICAgICAgICAgICAgICdi
aW5kaW5ncy92OC9jdXN0b20vVjhNZXNzYWdlUG9ydEN1c3RvbS5jcHAnLApAQCAtMTA0NiwxMSAr
MTA0OSwxNiBAQAogICAgICAgICAgICAgJ2Nzcy9NZWRpYUxpc3QuY3BwJywKICAgICAgICAgICAg
ICdjc3MvTWVkaWFMaXN0LmgnLAogICAgICAgICAgICAgJ2Nzcy9NZWRpYVF1ZXJ5LmNwcCcsCisg
ICAgICAgICAgICAnY3NzL01lZGlhUXVlcnkuaCcsCiAgICAgICAgICAgICAnY3NzL01lZGlhUXVl
cnlFdmFsdWF0b3IuY3BwJywKICAgICAgICAgICAgICdjc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5o
JywKICAgICAgICAgICAgICdjc3MvTWVkaWFRdWVyeUV4cC5jcHAnLAogICAgICAgICAgICAgJ2Nz
cy9NZWRpYVF1ZXJ5RXhwLmgnLAotICAgICAgICAgICAgJ2Nzcy9NZWRpYVF1ZXJ5LmgnLAorICAg
ICAgICAgICAgJ2Nzcy9NZWRpYVF1ZXJ5TGlzdC5jcHAnLAorICAgICAgICAgICAgJ2Nzcy9NZWRp
YVF1ZXJ5TGlzdC5oJywKKyAgICAgICAgICAgICdjc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5o
JywKKyAgICAgICAgICAgICdjc3MvTWVkaWFRdWVyeVZlY3Rvci5jcHAnLAorICAgICAgICAgICAg
J2Nzcy9NZWRpYVF1ZXJ5VmVjdG9yLmgnLAogICAgICAgICAgICAgJ2Nzcy9QYWlyLmgnLAogICAg
ICAgICAgICAgJ2Nzcy9SZWN0LmgnLAogICAgICAgICAgICAgJ2Nzcy9SR0JDb2xvci5jcHAnLApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnByaSBiL1dlYkNvcmUvV2ViQ29yZS5wcmkKaW5k
ZXggYTRjNjliMS4uODMyNzQ0YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnByaQorKysg
Yi9XZWJDb3JlL1dlYkNvcmUucHJpCkBAIC04MSw2ICs4MSw4IEBAIElETF9CSU5ESU5HUyArPSBc
CiAgICAgY3NzL0NTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uLmlkbCBcCiAgICAgY3NzL0NTU1Zhcmlh
Ymxlc1J1bGUuaWRsIFwKICAgICBjc3MvTWVkaWFMaXN0LmlkbCBcCisgICAgY3NzL01lZGlhUXVl
cnlMaXN0LmlkbCBcCisgICAgY3NzL01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaWRsIFwKICAgICBj
c3MvUmVjdC5pZGwgXAogICAgIGNzcy9SR0JDb2xvci5pZGwgXAogICAgIGNzcy9TdHlsZU1lZGlh
LmlkbCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvV2ViQ29yZS9XZWJDb3Jl
LnBybwppbmRleCBlYTZlOTAxLi42MThiM2FiIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUu
cHJvCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTM0Nyw2ICszNDcsNyBAQCBTT1VSQ0VT
ICs9IFwKICAgICBiaW5kaW5ncy9qcy9KU0luamVjdGVkU2NyaXB0SG9zdEN1c3RvbS5jcHAgXAog
ICAgIGJpbmRpbmdzL2pzL0pTSW5zcGVjdG9yRnJvbnRlbmRIb3N0Q3VzdG9tLmNwcCBcCiAgICAg
YmluZGluZ3MvanMvSlNMb2NhdGlvbkN1c3RvbS5jcHAgXAorICAgIGJpbmRpbmdzL2pzL0pTTWVk
aWFRdWVyeUxpc3RMaXN0ZW5lckN1c3RvbS5jcHAgXAogICAgIGJpbmRpbmdzL2pzL0pTTmFtZWRO
b2RlTWFwQ3VzdG9tLmNwcCBcCiAgICAgYmluZGluZ3MvanMvSlNOYXZpZ2F0b3JDdXN0b20uY3Bw
ICBcCiAgICAgYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcCBcCkBAIC00NTYsNiArNDU3LDgg
QEAgU09VUkNFUyArPSBcCiAgICAgY3NzL01lZGlhUXVlcnkuY3BwIFwKICAgICBjc3MvTWVkaWFR
dWVyeUV2YWx1YXRvci5jcHAgXAogICAgIGNzcy9NZWRpYVF1ZXJ5RXhwLmNwcCBcCisgICAgY3Nz
L01lZGlhUXVlcnlMaXN0LmNwcCBcCisgICAgY3NzL01lZGlhUXVlcnlWZWN0b3IuY3BwIFwKICAg
ICBjc3MvUkdCQ29sb3IuY3BwIFwKICAgICBjc3MvU2hhZG93VmFsdWUuY3BwIFwKICAgICBjc3Mv
U3R5bGVCYXNlLmNwcCBcCkBAIC0xMjQyLDYgKzEyNDUsOSBAQCBIRUFERVJTICs9IFwKICAgICBj
c3MvTWVkaWFMaXN0LmggXAogICAgIGNzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmggXAogICAgIGNz
cy9NZWRpYVF1ZXJ5RXhwLmggXAorICAgIGNzcy9NZWRpYVF1ZXJ5TGlzdC5oIFwKKyAgICBjc3Mv
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oIFwKKyAgICBjc3MvTWVkaWFRdWVyeVZlY3Rvci5oIFwK
ICAgICBjc3MvTWVkaWFRdWVyeS5oIFwKICAgICBjc3MvUkdCQ29sb3IuaCBcCiAgICAgY3NzL1No
YWRvd1ZhbHVlLmggXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCBhNTI0MzllLi4xY2QwNjliIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtNTE2Nyw2ICs1MTY3LDE2IEBACiAJCUQyM0NBNTZDMEFCMEVCOEQwMDUx
MDhBNSAvKiBSYW5nZUV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRDIzQ0E1NkIwQUIwRUI4RDAwNTEwOEE1IC8qIFJhbmdlRXhjZXB0aW9u
LmggKi87IH07CiAJCUQzOUQwMDZEMTFGOEUzMDgwMDYwNDFGMiAvKiBQb3B1cE1lbnVNYWMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzOUQwMDZDMTFG
OEUzMDgwMDYwNDFGMiAvKiBQb3B1cE1lbnVNYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlEMzlEMDA5RDExRjkwN0U2MDA2MDQxRjIgLyogU2Vh
cmNoUG9wdXBNZW51TWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBEMzlEMDA5QzExRjkwN0U2MDA2MDQxRjIgLyogU2VhcmNoUG9wdXBNZW51TWFjLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRDNBOTRB
MzgxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQTk0QTMxMTIyREFCQUMwMEEzN0JCQyAv
KiBNZWRpYVF1ZXJ5TGlzdC5jcHAgKi87IH07CisJCUQzQTk0QTM5MTIyREFCQUMwMEEzN0JCQyAv
KiBNZWRpYVF1ZXJ5TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRDNBOTRBMzIxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0LmggKi87
IH07CisJCUQzQTk0QTNCMTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0E5NEEz
NDEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oICovOyB9OworCQlE
M0E5NEEzRDEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeVZlY3Rvci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0E5NEEzNjEyMkRBQkFDMDBB
MzdCQkMgLyogTWVkaWFRdWVyeVZlY3Rvci5jcHAgKi87IH07CisJCUQzQTk0QTNFMTIyREFCQUMw
MEEzN0JCQyAvKiBNZWRpYVF1ZXJ5VmVjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBEM0E5NEEzNzEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVy
eVZlY3Rvci5oICovOyB9OworCQlEM0E5NEE0NjEyMkRDNDBGMDBBMzdCQkMgLyogSlNNZWRpYVF1
ZXJ5TGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBEM0E5NEE0MjEyMkRDNDBGMDBBMzdCQkMgLyogSlNNZWRpYVF1ZXJ5TGlzdC5jcHAgKi87IH07
CisJCUQzQTk0QTQ3MTIyREM0MEYwMEEzN0JCQyAvKiBKU01lZGlhUXVlcnlMaXN0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0E5NEE0MzEyMkRDNDBG
MDBBMzdCQkMgLyogSlNNZWRpYVF1ZXJ5TGlzdC5oICovOyB9OworCQlEM0E5NEE0ODEyMkRDNDBG
MDBBMzdCQkMgLyogSlNNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQTk0QTQ0MTIyREM0MEYwMEEzN0JCQyAv
KiBKU01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwICovOyB9OworCQlEM0E5NEE0OTEyMkRDNDBG
MDBBMzdCQkMgLyogSlNNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0E5NEE0NTEyMkRDNDBGMDBBMzdCQkMgLyog
SlNNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggKi87IH07CisJCUQzRkRFRDlDMTIyRUZDNkEwMDhG
NTI2RiAvKiBKU01lZGlhUXVlcnlMaXN0TGlzdGVuZXJDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNGREVEOUIxMjJFRkM2QTAwOEY1MjZG
IC8qIEpTTWVkaWFRdWVyeUxpc3RMaXN0ZW5lckN1c3RvbS5jcHAgKi87IH07CiAJCUQ4QjYxNTJG
MTAzMjQ5NTEwMEM4NTU0QSAvKiBDb29raWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEQ4QjYxNTJFMTAzMjQ5NTEwMEM4NTU0QSAvKiBDb29raWUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlEQjIzQzJD
QjBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREIyM0MyQzkwQTUwOEQyOTAwMjQ4
OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmNwcCAqLzsgfTsKIAkJREIyM0MyQ0MwQTUwOEQy
OTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQjIzQzJDQTBBNTA4RDI5MDAyNDg5RUIgLyogSW5k
ZW50T3V0ZGVudENvbW1hbmQuaCAqLzsgfTsKQEAgLTExMDAwLDYgKzExMDEwLDE4IEBACiAJCUQy
M0NBNTZCMEFCMEVCOEQwMDUxMDhBNSAvKiBSYW5nZUV4Y2VwdGlvbi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUmFuZ2VFeGNlcHRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRDM5RDAwNkMxMUY4RTMwODAwNjA0MUYyIC8qIFBvcHVwTWVudU1hYy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQb3B1cE1lbnVNYWMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDM5RDAwOUMxMUY5MDdFNjAwNjA0MUYyIC8qIFNlYXJjaFBv
cHVwTWVudU1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZWFyY2hQb3B1
cE1lbnVNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDNBOTRBMzExMjJEQUJB
QzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IE1lZGlhUXVlcnlMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRDNBOTRBMzIxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUXVlcnlMaXN0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUQzQTk0QTMzMTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5
TGlzdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTWVkaWFRdWVyeUxpc3QuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEM0E5NEEzNDEyMkRBQkFDMDBBMzdCQkMgLyogTWVk
aWFRdWVyeUxpc3RMaXN0ZW5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQz
QTk0QTM1MTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDNBOTRBMzYxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVl
cnlWZWN0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFR
dWVyeVZlY3Rvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQzQTk0QTM3MTIy
REFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5VmVjdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE1lZGlhUXVlcnlWZWN0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRDNBOTRBNDIxMjJEQzQwRjAwQTM3QkJDIC8qIEpTTWVkaWFRdWVyeUxpc3QuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNZWRpYVF1ZXJ5TGlzdC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQzQTk0QTQzMTIyREM0MEYwMEEzN0JCQyAv
KiBKU01lZGlhUXVlcnlMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
TWVkaWFRdWVyeUxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDNBOTRBNDQx
MjJEQzQwRjAwQTM3QkJDIC8qIEpTTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEM0E5NEE0NTEyMkRDNDBGMDBBMzdCQkMg
LyogSlNNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlEM0ZERUQ5QjEyMkVGQzZBMDA4RjUyNkYgLyogSlNNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVk
aWFRdWVyeUxpc3RMaXN0ZW5lckN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUQ4QjYxNTJFMTAzMjQ5NTEwMEM4NTU0QSAvKiBDb29raWUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQ29va2llLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CURCMjNDMkM5MEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5kZW50T3V0ZGVudENvbW1hbmQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQjIzQzJDQTBBNTA4RDI5MDAyNDg5
RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEluZGVudE91dGRlbnRDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0xNTA0Myw2ICsxNTA2NSwxMCBAQAogCQkJCUJDNjg2QzdBMEUwQzMzMDEwMERFOEEwOCAv
KiBKU0NTU1ZhcmlhYmxlc1J1bGUuY3BwICovLAogCQkJCUJDNjg2QzdCMEUwQzMzMDEwMERFOEEw
OCAvKiBKU0NTU1ZhcmlhYmxlc1J1bGUuaCAqLywKIAkJCQlCQzNDMzlCNDBDMEQzRDhEMDA1RjRE
N0EgLyogSlNNZWRpYUxpc3QuY3BwICovLAorCQkJCUQzQTk0QTQyMTIyREM0MEYwMEEzN0JCQyAv
KiBKU01lZGlhUXVlcnlMaXN0LmNwcCAqLywKKwkJCQlEM0E5NEE0MzEyMkRDNDBGMDBBMzdCQkMg
LyogSlNNZWRpYVF1ZXJ5TGlzdC5oICovLAorCQkJCUQzQTk0QTQ0MTIyREM0MEYwMEEzN0JCQyAv
KiBKU01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwICovLAorCQkJCUQzQTk0QTQ1MTIyREM0MEYw
MEEzN0JCQyAvKiBKU01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCAqLywKIAkJCQlCQzNDMzlCNTBD
MEQzRDhEMDA1RjREN0EgLyogSlNNZWRpYUxpc3QuaCAqLywKIAkJCQlCQ0ZFMkYwRjBDMUI1ODM3
MDAyMDIzNUYgLyogSlNSZWN0LmNwcCAqLywKIAkJCQlCQ0ZFMkYxMDBDMUI1ODM3MDAyMDIzNUYg
LyogSlNSZWN0LmggKi8sCkBAIC0xNjMyMiw2ICsxNjM0OCw3IEBACiAJCQkJNDlFRUNGNzExMDUw
OEQ5QzAwMDk5RkFCIC8qIEpTSW50OEFycmF5Q3VzdG9tLmNwcCAqLywKIAkJCQkxQzVGQUVFNjBE
Q0ZEQTY4MDBENThGNzggLyogSlNKYXZhU2NyaXB0Q2FsbEZyYW1lQ3VzdG9tLmNwcCAqLywKIAkJ
CQlCQ0UxQzQzRjBEOTgzMEY0MDAzQjAyRjIgLyogSlNMb2NhdGlvbkN1c3RvbS5jcHAgKi8sCisJ
CQkJRDNGREVEOUIxMjJFRkM2QTAwOEY1MjZGIC8qIEpTTWVkaWFRdWVyeUxpc3RMaXN0ZW5lckN1
c3RvbS5jcHAgKi8sCiAJCQkJRTFBNUY5OUEwRTdFQUEyNTAwQUY4NUVBIC8qIEpTTWVzc2FnZUNo
YW5uZWxDdXN0b20uY3BwICovLAogCQkJCTQxMEI3RTcxMTA0NUZBQjAwMEQ4MjI0RiAvKiBKU01l
c3NhZ2VFdmVudEN1c3RvbS5jcHAgKi8sCiAJCQkJRTFBREVENDYwRTc2QjhERDAwNEExQTVFIC8q
IEpTTWVzc2FnZVBvcnRDdXN0b20uY3BwICovLApAQCAtMTcwNDgsNiArMTcwNzUsMTMgQEAKIAkJ
CQk0RTE5NTkyNjBBMzlEQUNDMDAyMjBGRTUgLyogTWVkaWFRdWVyeUV2YWx1YXRvci5oICovLAog
CQkJCTRFMTk1OTI3MEEzOURBQ0MwMDIyMEZFNSAvKiBNZWRpYVF1ZXJ5RXhwLmNwcCAqLywKIAkJ
CQk0RTE5NTkyODBBMzlEQUNDMDAyMjBGRTUgLyogTWVkaWFRdWVyeUV4cC5oICovLAorCQkJCUQz
QTk0QTMxMTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdC5jcHAgKi8sCisJCQkJRDNB
OTRBMzIxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0LmggKi8sCisJCQkJRDNBOTRB
MzMxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0LmlkbCAqLywKKwkJCQlEM0E5NEEz
NDEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oICovLAorCQkJCUQz
QTk0QTM1MTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmlkbCAqLywK
KwkJCQlEM0E5NEEzNjEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeVZlY3Rvci5jcHAgKi8s
CisJCQkJRDNBOTRBMzcxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlWZWN0b3IuaCAqLywK
IAkJCQlBODBFNkNEMTBBMTk4OUNBMDA3RkI4QzUgLyogUGFpci5oICovLAogCQkJCTkzQ0E0QzlG
MDlERjkzRkEwMERGODY3NyAvKiBxdWlya3MuY3NzICovLAogCQkJCUJDNDM2OEU3MEMyMjZFMzIw
MDVFRkI1RiAvKiBSZWN0LmggKi8sCkBAIC0yMDQ1Nyw2ICsyMDQ5MSwxMSBAQAogCQkJCTk3QkM4
NDlCMTIzNzBBNEIwMDBDNjE2MSAvKiBIVE1MSW5wdXRTdHJlYW0uaCBpbiBIZWFkZXJzICovLAog
CQkJCTk3QkM4NEE1MTIzNzBEQzgwMDBDNjE2MSAvKiBUZXh0Vmlld1NvdXJjZVBhcnNlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTdCQzg0QjQxMjM3MTE4MDAwMEM2MTYxIC8qIFRleHREb2N1bWVu
dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRDNBOTRBMzkxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlh
UXVlcnlMaXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQlEM0E5NEEzQjEyMkRBQkFDMDBBMzdCQkMg
LyogTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRDNBOTRBM0Ux
MjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlWZWN0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUQzQTk0QTQ3MTIyREM0MEYwMEEzN0JCQyAvKiBKU01lZGlhUXVlcnlMaXN0LmggaW4gSGVhZGVy
cyAqLywKKwkJCQlEM0E5NEE0OTEyMkRDNDBGMDBBMzdCQkMgLyogSlNNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBv
c3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTIyOTIzLDYgKzIyOTYyLDExIEBACiAJCQkJOTdC
Qzg0ODMxMjM2RkQ5MzAwMEM2MTYxIC8qIFRleHREb2N1bWVudFBhcnNlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk5N0JDODRBNDEyMzcwREM4MDAwQzYxNjEgLyogVGV4dFZpZXdTb3VyY2VQYXJz
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTdCQzg0QjMxMjM3MTE4MDAwMEM2MTYxIC8qIFRl
eHREb2N1bWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlEM0E5NEEzODEyMkRBQkFDMDBBMzdC
QkMgLyogTWVkaWFRdWVyeUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRDNBOTRBM0QxMjJE
QUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlWZWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
RDNBOTRBNDYxMjJEQzQwRjAwQTM3QkJDIC8qIEpTTWVkaWFRdWVyeUxpc3QuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJRDNBOTRBNDgxMjJEQzQwRjAwQTM3QkJDIC8qIEpTTWVkaWFRdWVyeUxpc3RM
aXN0ZW5lci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlEM0ZERUQ5QzEyMkVGQzZBMDA4RjUyNkYg
LyogSlNNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
KTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29y
ZS9iaW5kaW5ncy9nb2JqZWN0L0dOVW1ha2VmaWxlLmFtCmluZGV4IDEyODM1Y2MuLmYzZWZmMWIg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9HTlVtYWtlZmlsZS5hbQorKysg
Yi9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvR05VbWFrZWZpbGUuYW0KQEAgLTE5Miw2ICsxOTIs
MTAgQEAgd2Via2l0Z3RrX2dkb21fYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMv
d2Via2l0L1dlYktpdERPTU1lZGlhRXJyb3JQcml2YXRlLmggXAogCURlcml2ZWRTb3VyY2VzL3dl
YmtpdC9XZWJLaXRET01NZWRpYUxpc3QuY3BwIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2Vi
S2l0RE9NTWVkaWFMaXN0UHJpdmF0ZS5oIFwKKwlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0
RE9NTWVkaWFRdWVyeUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9N
TWVkaWFRdWVyeUxpc3RQcml2YXRlLmggXAorCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRE
T01NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dl
YktpdERPTU1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcml2YXRlLmggXAogCURlcml2ZWRTb3VyY2Vz
L3dlYmtpdC9XZWJLaXRET01NZW1vcnlJbmZvLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0
L1dlYktpdERPTU1lbW9yeUluZm9Qcml2YXRlLmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9X
ZWJLaXRET01NZXNzYWdlUG9ydC5jcHAgXApAQCAtMjUwLDYgKzI1NCw4IEBAIHdlYmtpdGd0a19i
dWlsdF9oX2FwaSArPSBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTUNTU1N0eWxl
U2hlZXQuaCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTUNTU1ZhbHVlLmggXAog
CURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01NZWRpYUxpc3QuaCBcCisJRGVyaXZlZFNv
dXJjZXMvd2Via2l0L1dlYktpdERPTU1lZGlhUXVlcnlMaXN0LmggXAorCURlcml2ZWRTb3VyY2Vz
L3dlYmtpdC9XZWJLaXRET01NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggXAogCURlcml2ZWRTb3Vy
Y2VzL3dlYmtpdC9XZWJLaXRET01TdHlsZU1lZGlhLmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtp
dC9XZWJLaXRET01TdHlsZVNoZWV0LmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRE
T01TdHlsZVNoZWV0TGlzdC5oIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ3VzdG9tLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5mNjYyMTdiCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU01lZGlhUXVlcnlMaXN0TGlzdGVuZXJDdXN0b20uY3BwCkBAIC0wLDAgKzEsNTkgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkpTTWVk
aWFRdWVyeUxpc3RMaXN0ZW5lci5oIgorCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQVBJQ2Fz
dC5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTVmFsdWVSZWYuaD4KKworI2luY2x1ZGUg
PHJ1bnRpbWUvSlNPYmplY3QuaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTVmFsdWUuaD4KKwordXNp
bmcgbmFtZXNwYWNlIEpTQzsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitpbnQgSlNNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyOjp0eXBlKCkKK3sKKyAgICByZXR1cm4gSlNNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyVHlwZTsKK30KKworYm9vbCBKU01lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OmlzRXF1YWxU
byhNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKiBvdGhlcikKK3sKKyAgICBpZiAoIW90aGVyIHx8IHR5
cGUoKSAhPSBvdGhlci0+dHlwZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBKU01l
ZGlhUXVlcnlMaXN0TGlzdGVuZXIqIHB0ciA9IHN0YXRpY19jYXN0PEpTTWVkaWFRdWVyeUxpc3RM
aXN0ZW5lcio+KG90aGVyKTsKKworICAgIGlmIChtX2RhdGEtPmNhbGxiYWNrKCkgPT0gSlNDOjpK
U1ZhbHVlKCkpCisgICAgICAgIHJldHVybiBwdHItPm1fZGF0YS0+Y2FsbGJhY2soKSA9PSBKU0M6
OkpTVmFsdWUoKTsKKworICAgIEV4ZWNTdGF0ZSogZXhlYyA9IG1fZGF0YS0+Z2xvYmFsT2JqZWN0
KCktPmdsb2JhbEV4ZWMoKTsKKyAgICByZXR1cm4gSlNWYWx1ZUlzRXF1YWwodG9SZWYoZXhlYyks
IHRvUmVmKGV4ZWMsIG1fZGF0YS0+Y2FsbGJhY2soKSksIHRvUmVmKGV4ZWMsIHB0ci0+bV9kYXRh
LT5jYWxsYmFjaygpKSwgMCk7Cit9CisKK30KKwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG0KaW5kZXggMWExMTRhNC4uNjE0NzMzYSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC02LDYgKzYsNyBAQAogIyBDb3B5
cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogIyBDb3B5cmlnaHQgKEMpIDIwMDkgQ2FtZXJvbiBNY0Nvcm1hY2sgPGNh
bUBtY2MuaWQuYXU+CiAjIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQg
MjAxMC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENv
cnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogIwogIyBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAjIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBA
IC0yMTE3LDYgKzIxMTgsMTMgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIlxuI2VuZGlmIC8vICR7Y29uZGl0aW9uYWxTdHJpbmd9XG4iKSBpZiAk
Y29uZGl0aW9uYWxTdHJpbmc7CiB9CiAKK3N1YiBHZXROYXRpdmVUeXBlRm9yQ2FsbGJhY2tzCit7
CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKyAgICByZXR1cm4gInZvaWQiIGlmICgkdHlwZSBlcSAi
dm9pZCIpOworICAgIHJldHVybiBHZXROYXRpdmVUeXBlKCR0eXBlKTsKK30KKwogc3ViIEdlbmVy
YXRlQ2FsbGJhY2tIZWFkZXIKIHsKICAgICBteSAkb2JqZWN0ID0gc2hpZnQ7CkBAIC0yMTUzLDEx
ICsyMTYxLDEyIEBAIHN1YiBHZW5lcmF0ZUNhbGxiYWNrSGVhZGVyCiAgICAgICAgIGZvcmVhY2gg
bXkgJGZ1bmN0aW9uIChAeyRkYXRhTm9kZS0+ZnVuY3Rpb25zfSkgewogICAgICAgICAgICAgbXkg
QHBhcmFtcyA9IEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfTsKICAgICAgICAgICAgIGlmICghJGZ1
bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b20ifSAmJgotICAg
ICAgICAgICAgICAgICEoR2V0TmF0aXZlVHlwZSgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSkg
ZXEgImJvb2wiKSkgeworICAgICAgICAgICAgICAgICEoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5
cGUgZXEgImJvb2xlYW4iKSAmJgorICAgICAgICAgICAgICAgICEoJGZ1bmN0aW9uLT5zaWduYXR1
cmUtPnR5cGUgZXEgInZvaWQiKSkgewogICAgICAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRl
bnQsICIgICAgQ09NUElMRV9BU1NFUlQoZmFsc2UpIik7CiAgICAgICAgICAgICB9CiAKLSAgICAg
ICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCAiIC4gR2V0TmF0aXZlVHlw
ZSgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSkgLiAiICIgLiAkZnVuY3Rpb24tPnNpZ25hdHVy
ZS0+bmFtZSAuICIoIik7CisgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZp
cnR1YWwgIiAuIEdldE5hdGl2ZVR5cGVGb3JDYWxsYmFja3MoJGZ1bmN0aW9uLT5zaWduYXR1cmUt
PnR5cGUpIC4gIiAiIC4gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWUgLiAiKCIpOwogCiAgICAg
ICAgICAgICBteSBAYXJncyA9ICgpOwogICAgICAgICAgICAgZm9yZWFjaCBteSAkcGFyYW0gKEBw
YXJhbXMpIHsKQEAgLTIyMzIsMTIgKzIyNDEsMTIgQEAgc3ViIEdlbmVyYXRlQ2FsbGJhY2tJbXBs
ZW1lbnRhdGlvbgogICAgICAgICBmb3JlYWNoIG15ICRmdW5jdGlvbiAoQHskZGF0YU5vZGUtPmZ1
bmN0aW9uc30pIHsKICAgICAgICAgICAgIG15IEBwYXJhbXMgPSBAeyRmdW5jdGlvbi0+cGFyYW1l
dGVyc307CiAgICAgICAgICAgICBpZiAoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJDdXN0b20ifSB8fAotICAgICAgICAgICAgICAgICEoR2V0TmF0aXZlVHlwZSgk
ZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSkgZXEgImJvb2wiKSkgeworICAgICAgICAgICAgICAg
ICghKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlIGVxICJib29sZWFuIikgJiYgISgkZnVuY3Rp
b24tPnNpZ25hdHVyZS0+dHlwZSBlcSAidm9pZCIpKSkgewogICAgICAgICAgICAgICAgIG5leHQ7
CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIEFkZEluY2x1ZGVzRm9yVHlwZSgkZnVuY3Rp
b24tPnNpZ25hdHVyZS0+dHlwZSk7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIlxu
IiAuIEdldE5hdGl2ZVR5cGUoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUpIC4gIiAke2NsYXNz
TmFtZX06OiIgLiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZSAuICIoIik7CisgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIlxuIiAuIEdldE5hdGl2ZVR5cGVGb3JDYWxsYmFja3MoJGZ1
bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUpIC4gIiAke2NsYXNzTmFtZX06OiIgLiAkZnVuY3Rpb24t
PnNpZ25hdHVyZS0+bmFtZSAuICIoIik7CiAKICAgICAgICAgICAgIG15IEBhcmdzID0gKCk7CiAg
ICAgICAgICAgICBmb3JlYWNoIG15ICRwYXJhbSAoQHBhcmFtcykgewpAQCAtMjI0OSw3ICsyMjU4
LDExIEBAIHN1YiBHZW5lcmF0ZUNhbGxiYWNrSW1wbGVtZW50YXRpb24KIAogICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIGlmICghY2FuSW52b2tlQ2FsbGJhY2soKSlcbiIpOwotICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiB0cnVlO1xuXG4iKTsKKyAgICAgICAgICAgIGlm
IChHZXROYXRpdmVUeXBlKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlKSBlcSAiYm9vbCIpIHsK
KyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuIHRydWU7
XG5cbiIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICAgICAgcmV0dXJuO1xuXG4iKTsKKyAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIFJlZlB0cjwkY2xhc3NOYW1lPiBwcm90ZWN0KHRo
aXMpO1xuXG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEpTTG9jayBs
b2NrKFNpbGVuY2VBc3NlcnRpb25zT25seSk7XG5cbiIpOwogICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgRXhlY1N0YXRlKiBleGVjID0gbV9kYXRhLT5nbG9iYWxPYmplY3QoKS0+
Z2xvYmFsRXhlYygpO1xuIik7CkBAIC0yMjY2LDcgKzIyNzksOSBAQCBzdWIgR2VuZXJhdGVDYWxs
YmFja0ltcGxlbWVudGF0aW9uCiAKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiXG4g
ICAgYm9vbCByYWlzZWRFeGNlcHRpb24gPSBmYWxzZTtcbiIpOwogICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgbV9kYXRhLT5pbnZva2VDYWxsYmFjayhhcmdzLCAmcmFpc2VkRXhj
ZXB0aW9uKTtcbiIpOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJu
ICFyYWlzZWRFeGNlcHRpb247XG4iKTsKKyAgICAgICAgICAgIGlmIChHZXROYXRpdmVUeXBlKCRm
dW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlKSBlcSAiYm9vbCIpIHsKKyAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gIXJhaXNlZEV4Y2VwdGlvbjtcbiIpOworICAg
ICAgICAgICAgfQogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG4iKTsKICAgICAg
ICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yVjgucG0gYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBt
CmluZGV4IDA2YmNlMDQuLmU2ZmVjMmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JWOC5wbQpAQCAtNiw2ICs2LDcgQEAKICMgQ29weXJpZ2h0IChDKSAyMDA2IEFw
cGxlIENvbXB1dGVyLCBJbmMuCiAjIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAwOSBHb29n
bGUgSW5jLgogIyBDb3B5cmlnaHQgKEMpIDIwMDkgQ2FtZXJvbiBNY0Nvcm1hY2sgPGNhbUBtY2Mu
aWQuYXU+CisjIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRz
IHN1YnNpZGlhcnkoLWllcykKICMKICMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjUsNiArMjYsOSBAQAogCiBw
YWNrYWdlIENvZGVHZW5lcmF0b3JWODsKIAordXNlIGNvbnN0YW50IENBTExCQUNLX1BBUkFNICAg
ICA9PiAgMTsKK3VzZSBjb25zdGFudCBDQUxMQkFDS19SRVRVUk4gICAgPT4gIDI7CisKIHVzZSBG
aWxlOjpzdGF0OwogdXNlIERpZ2VzdDo6TUQ1OwogCkBAIC0yMjg3LDE1ICsyMjkxLDE2IEBAIEVO
RAogICAgICAgICBmb3JlYWNoIG15ICRmdW5jdGlvbiAoQHskZGF0YU5vZGUtPmZ1bmN0aW9uc30p
IHsKICAgICAgICAgICAgIG15IEBwYXJhbXMgPSBAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc307CiAg
ICAgICAgICAgICBpZiAoISRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiQ3VzdG9tIn0gJiYKLSAgICAgICAgICAgICAgICAhKEdldE5hdGl2ZVR5cGUoJGZ1bmN0aW9u
LT5zaWduYXR1cmUtPnR5cGUpIGVxICJib29sIikpIHsKLSAgICAgICAgICAgICAgICAgICAgcHVz
aChAaGVhZGVyQ29udGVudCwgIiAgICBDT01QSUxFX0FTU0VSVChmYWxzZSkiKTsKKyAgICAgICAg
ICAgICAgICAhKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlIGVxICJib29sZWFuIikgJiYKKyAg
ICAgICAgICAgICAgICAhKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlIGVxICJ2b2lkIikpIHsK
KyAgICAgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIENPTVBJTEVfQVNTRVJU
KGZhbHNlKSIpOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250
ZW50LCAiICAgIHZpcnR1YWwgIiAuIEdldE5hdGl2ZVR5cGVGb3JDYWxsYmFja3MoJGZ1bmN0aW9u
LT5zaWduYXR1cmUtPnR5cGUpIC4gIiAiIC4gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWUgLiAi
KCIpOworICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2aXJ0dWFsICIgLiBH
ZXROYXRpdmVUeXBlRm9yQ2FsbGJhY2tzKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlLCBDQUxM
QkFDS19SRVRVUk4pIC4gIiAiIC4gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWUgLiAiKCIpOwog
CiAgICAgICAgICAgICBteSBAYXJncyA9ICgpOwogICAgICAgICAgICAgZm9yZWFjaCBteSAkcGFy
YW0gKEBwYXJhbXMpIHsKLSAgICAgICAgICAgICAgICBwdXNoKEBhcmdzLCBHZXROYXRpdmVUeXBl
Rm9yQ2FsbGJhY2tzKCRwYXJhbS0+dHlwZSkgLiAiICIgLiAkcGFyYW0tPm5hbWUpOworICAgICAg
ICAgICAgICAgIHB1c2goQGFyZ3MsIEdldE5hdGl2ZVR5cGVGb3JDYWxsYmFja3MoJHBhcmFtLT50
eXBlLCBDQUxMQkFDS19QQVJBTSkgLiAiICIgLiAkcGFyYW0tPm5hbWUpOwogICAgICAgICAgICAg
fQogICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgam9pbigiLCAiLCBAYXJncykpOwog
ICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIik7XG4iKTsKQEAgLTIzNTgsMzcgKzIz
NjMsNTAgQEAgRU5ECiAgICAgICAgIGZvcmVhY2ggbXkgJGZ1bmN0aW9uIChAeyRkYXRhTm9kZS0+
ZnVuY3Rpb25zfSkgewogICAgICAgICAgICAgbXkgQHBhcmFtcyA9IEB7JGZ1bmN0aW9uLT5wYXJh
bWV0ZXJzfTsKICAgICAgICAgICAgIGlmICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkN1c3RvbSJ9IHx8Ci0gICAgICAgICAgICAgICAgIShHZXROYXRpdmVUeXBl
Rm9yQ2FsbGJhY2tzKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlKSBlcSAiYm9vbCIpKSB7Cisg
ICAgICAgICAgICAgICAgKCEoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUgZXEgImJvb2xlYW4i
KSAmJiAhKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlIGVxICJ2b2lkIikpKSB7CiAgICAgICAg
ICAgICAgICAgbmV4dDsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgQWRkSW5jbHVkZXNG
b3JUeXBlKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlKTsKLSAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiXG4iIC4gR2V0TmF0aXZlVHlwZUZvckNhbGxiYWNrcygkZnVuY3Rpb24tPnNp
Z25hdHVyZS0+dHlwZSkgLiAiICR7Y2xhc3NOYW1lfTo6IiAuICRmdW5jdGlvbi0+c2lnbmF0dXJl
LT5uYW1lIC4gIigiKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiXG4iIC4gR2V0
TmF0aXZlVHlwZUZvckNhbGxiYWNrcygkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSwgQ0FMTEJB
Q0tfUkVUVVJOKSAuICIgJHtjbGFzc05hbWV9OjoiIC4gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5h
bWUgLiAiKCIpOwogCiAgICAgICAgICAgICBteSBAYXJncyA9ICgpOwogICAgICAgICAgICAgZm9y
ZWFjaCBteSAkcGFyYW0gKEBwYXJhbXMpIHsKICAgICAgICAgICAgICAgICBBZGRJbmNsdWRlc0Zv
clR5cGUoJHBhcmFtLT50eXBlKTsKLSAgICAgICAgICAgICAgICBwdXNoKEBhcmdzLCBHZXROYXRp
dmVUeXBlRm9yQ2FsbGJhY2tzKCRwYXJhbS0+dHlwZSkgLiAiICIgLiAkcGFyYW0tPm5hbWUpOwor
ICAgICAgICAgICAgICAgIHB1c2goQGFyZ3MsIEdldE5hdGl2ZVR5cGVGb3JDYWxsYmFja3MoJHBh
cmFtLT50eXBlLCBDQUxMQkFDS19QQVJBTSkgLiAiICIgLiAkcGFyYW0tPm5hbWUpOwogICAgICAg
ICAgICAgfQogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIGpvaW4oIiwgIiwgQGFyZ3Mp
KTsKIAogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIpXG4iKTsKICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICBpZiAoIWNhbkludm9rZUNhbGxiYWNrKCkpXG4iKTsKLSAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4gdHJ1ZTtcblxuIik7CisgICAgICAgICAgICBp
ZiAoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUgZXEgImJvb2xlYW4iKSB7CisgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiB0cnVlO1xuXG4iKTsKKyAg
ICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgICAgIHJldHVybjtcblxuIik7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICB2ODo6SGFuZGxlU2NvcGUgaGFuZGxlU2NvcGU7XG5cbiIpOwogICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgdjg6OkhhbmRsZTx2ODo6Q29udGV4dD4g
djhDb250ZXh0ID0gdG9WOENvbnRleHQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBtX3dvcmxk
Q29udGV4dCk7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICh2
OENvbnRleHQuSXNFbXB0eSgpKVxuIik7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICAgICAgcmV0dXJuIHRydWU7XG5cbiIpOworICAgICAgICAgICAgaWYgKCRmdW5jdGlvbi0+
c2lnbmF0dXJlLT50eXBlIGVxICJib29sZWFuIikgeworICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgICAgICByZXR1cm4gdHJ1ZTtcblxuIik7CisgICAgICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm47
XG5cbiIpOworICAgICAgICAgICAgfQogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgdjg6OkNvbnRleHQ6OlNjb3BlIHNjb3BlKHY4Q29udGV4dCk7XG5cbiIpOwogCiAgICAgICAg
ICAgICBAYXJncyA9ICgpOwogICAgICAgICAgICAgZm9yZWFjaCBteSAkcGFyYW0gKEBwYXJhbXMp
IHsKICAgICAgICAgICAgICAgICBteSAkcGFyYW1OYW1lID0gJHBhcmFtLT5uYW1lOworCiAgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
ICR7cGFyYW1OYW1lfUhhbmRsZSA9IHRvVjgoJHtwYXJhbU5hbWV9KTtcbiIpOwogICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICgke3BhcmFtTmFtZX1IYW5kbGUuSXNF
bXB0eSgpKSB7XG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAg
ICAgQ1JBU0goKTtcbiIpOwotICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
ICAgICByZXR1cm4gdHJ1ZTtcbiIpOworICAgICAgICAgICAgICAgIGlmICgkZnVuY3Rpb24tPnNp
Z25hdHVyZS0+dHlwZSBlcSAiYm9vbGVhbiIpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiB0cnVlO1xuXG4iKTsKKyAgICAgICAgICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAg
ICAgcmV0dXJuO1xuXG4iKTsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgfVxuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAYXJncywg
IiAgICAgICAgJHtwYXJhbU5hbWV9SGFuZGxlIik7CiAgICAgICAgICAgICB9CkBAIC0yMzk3LDcg
KzI0MTUsMTEgQEAgRU5ECiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgam9pbigiLFxu
IiwgQGFyZ3MpKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiXG4gICAgfTtcblxu
Iik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBib29sIGNhbGxiYWNrUmV0
dXJuVmFsdWUgPSBmYWxzZTtcbiIpOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgcmV0dXJuICFpbnZva2VDYWxsYmFjayhtX2NhbGxiYWNrLCAiIC4gc2NhbGFyKEBwYXJhbXMp
IC4gIiwgYXJndiwgY2FsbGJhY2tSZXR1cm5WYWx1ZSwgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
KTtcbiIpOworICAgICAgICAgICAgaWYgKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlIGVxICJi
b29sZWFuIikgeworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVy
biAhaW52b2tlQ2FsbGJhY2sobV9jYWxsYmFjaywgIiAuIHNjYWxhcihAcGFyYW1zKSAuICIsIGFy
Z3YsIGNhbGxiYWNrUmV0dXJuVmFsdWUsIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7XG4iKTsK
KyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgaW52b2tlQ2FsbGJhY2sobV9jYWxsYmFjaywgIiAuIHNjYWxhcihAcGFyYW1zKSAuICIs
IGFyZ3YsIGNhbGxiYWNrUmV0dXJuVmFsdWUsIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7XG4i
KTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuIik7
CiAgICAgICAgIH0KICAgICB9CkBAIC0yODcxLDcgKzI4OTMsOSBAQCBzdWIgR2V0TmF0aXZlVHlw
ZQogc3ViIEdldE5hdGl2ZVR5cGVGb3JDYWxsYmFja3MKIHsKICAgICBteSAkdHlwZSA9IHNoaWZ0
OworICAgIG15ICR1c2FnZSA9IHNoaWZ0OwogICAgIHJldHVybiAiY29uc3QgU3RyaW5nJiIgaWYg
JHR5cGUgZXEgIkRPTVN0cmluZyI7CisgICAgcmV0dXJuICJ2b2lkIiBpZiAoJHR5cGUgZXEgInZv
aWQiKSBhbmQgKCR1c2FnZSBlcSBDQUxMQkFDS19SRVRVUk4pOwogCiAgICAgIyBDYWxsYmFja3Mg
dXNlIHJhdyBwb2ludGVycywgc28gcGFzcyBpc1BhcmFtZXRlciA9IDEKICAgICByZXR1cm4gR2V0
TmF0aXZlVHlwZSgkdHlwZSwgMSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ3VzdG9tLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOWUyZTZmCi0tLSAvZGV2L251bGwKKysrIGIvV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ3VzdG9tLmNw
cApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBv
cmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJWOE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitpbnQgVjhNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjp0eXBlKCkKK3sKKyAg
ICByZXR1cm4gVjhNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyVHlwZTsKK30KKworYm9vbCBWOE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXI6OmlzRXF1YWxUbyhNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKiBvdGhl
cikKK3sKKyAgICBpZiAoIW90aGVyIHx8IHR5cGUoKSAhPSBvdGhlci0+dHlwZSgpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICBWOE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqIHB0ciA9IHN0
YXRpY19jYXN0PFY4TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcio+KG90aGVyKTsKKyAgICByZXR1cm4g
cHRyICYmIG1fY2FsbGJhY2stPkVxdWFscyhwdHItPm1fY2FsbGJhY2spOworfQorCit9CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdC5jcHAgYi9XZWJDb3JlL2Nzcy9NZWRp
YVF1ZXJ5TGlzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTk3ZWE1
YwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0LmNwcApAQCAt
MCwwICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJNZWRpYVF1ZXJ5TGlzdC5oIgorCisjaW5jbHVkZSAiTWVkaWFMaXN0LmgiCisj
aW5jbHVkZSAiTWVkaWFRdWVyeUV2YWx1YXRvci5oIgorI2luY2x1ZGUgIk1lZGlhUXVlcnlMaXN0
TGlzdGVuZXIuaCIKKyNpbmNsdWRlICJNZWRpYVF1ZXJ5VmVjdG9yLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdD4gTWVkaWFRdWVyeUxpc3Q6OmNy
ZWF0ZShQYXNzUmVmUHRyPE1lZGlhUXVlcnlWZWN0b3I+IHZlY3RvciwgUGFzc1JlZlB0cjxNZWRp
YUxpc3Q+IG1lZGlhLCBib29sIG1hdGNoZXMpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBN
ZWRpYVF1ZXJ5TGlzdCh2ZWN0b3IsIG1lZGlhLCBtYXRjaGVzKSk7Cit9CisKK01lZGlhUXVlcnlM
aXN0OjpNZWRpYVF1ZXJ5TGlzdChQYXNzUmVmUHRyPE1lZGlhUXVlcnlWZWN0b3I+IHZlY3Rvciwg
UGFzc1JlZlB0cjxNZWRpYUxpc3Q+IG1lZGlhLCBib29sIG1hdGNoZXMpCisgICAgOiBtX3ZlY3Rv
cih2ZWN0b3IpCisgICAgLCBtX21lZGlhKG1lZGlhKQorICAgICwgbV9ldmFsUm91bmQobV92ZWN0
b3ItPmV2YWxSb3VuZCgpKQorICAgICwgbV9jaGFuZ2VSb3VuZChtX2V2YWxSb3VuZCAtIDEpCisg
ICAgLCBtX21hdGNoZXMobWF0Y2hlcykKK3sKK30KKworTWVkaWFRdWVyeUxpc3Q6On5NZWRpYVF1
ZXJ5TGlzdCgpCit7Cit9CisKK1N0cmluZyBNZWRpYVF1ZXJ5TGlzdDo6bWVkaWEoKSBjb25zdAor
eworICAgIHJldHVybiBtX21lZGlhLT5tZWRpYVRleHQoKTsKK30KKworYm9vbCBNZWRpYVF1ZXJ5
TGlzdDo6Y2hhbmdlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdmVjdG9yLT5ldmFsUm91bmQo
KSA9PSBtX2NoYW5nZVJvdW5kOworfQorCit2b2lkIE1lZGlhUXVlcnlMaXN0OjphZGRMaXN0ZW5l
cihQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+IGxpc3RlbmVyKQoreworICAgIG1f
dmVjdG9yLT5hZGRMaXN0ZW5lcihsaXN0ZW5lciwgdGhpcyk7Cit9CisKK3ZvaWQgTWVkaWFRdWVy
eUxpc3Q6OnJlbW92ZUxpc3RlbmVyKFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4g
bGlzdGVuZXIpCit7CisgICAgbV92ZWN0b3ItPnJlbW92ZUxpc3RlbmVyKGxpc3RlbmVyLCB0aGlz
KTsKK30KKwordm9pZCBNZWRpYVF1ZXJ5TGlzdDo6ZXZhbHVhdGUoTWVkaWFRdWVyeUV2YWx1YXRv
ciogZXZhbHVhdG9yKQoreworICAgIGlmIChtX2V2YWxSb3VuZCA9PSBtX3ZlY3Rvci0+ZXZhbFJv
dW5kKCkgfHwgIWV2YWx1YXRvcikKKyAgICAgICAgcmV0dXJuOworICAgIG1fZXZhbFJvdW5kID0g
bV92ZWN0b3ItPmV2YWxSb3VuZCgpOworCisgICAgYm9vbCBuZXdWYWx1ZSA9IGV2YWx1YXRvci0+
ZXZhbChtX21lZGlhLmdldCgpKTsKKyAgICBpZiAobmV3VmFsdWUgIT0gbV9tYXRjaGVzKSB7Cisg
ICAgICAgIG1fbWF0Y2hlcyA9IG5ld1ZhbHVlOworICAgICAgICBtX2NoYW5nZVJvdW5kID0gbV9l
dmFsUm91bmQ7CisgICAgfQorfQorCit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9NZWRpYVF1
ZXJ5TGlzdC5oIGIvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3QuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi42NWM1YzkzCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9j
c3MvTWVkaWFRdWVyeUxpc3QuaApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIs
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgTWVkaWFRdWVyeUxpc3RfaAorI2RlZmluZSBNZWRpYVF1ZXJ5TGlzdF9oCisK
KyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE1lZGlhTGlzdDsKK2NsYXNzIE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXI7CitjbGFzcyBNZWRpYVF1ZXJ5RXZhbHVhdG9yOworY2xhc3MgTWVk
aWFRdWVyeVZlY3RvcjsKKworY2xhc3MgTWVkaWFRdWVyeUxpc3QgOiBwdWJsaWMgUmVmQ291bnRl
ZDxNZWRpYVF1ZXJ5TGlzdD4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlh
UXVlcnlMaXN0PiBjcmVhdGUoUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5VmVjdG9yPiwgUGFzc1JlZlB0
cjxNZWRpYUxpc3Q+LCBib29sKTsKKyAgICB+TWVkaWFRdWVyeUxpc3QoKTsKKyAgICBTdHJpbmcg
bWVkaWEoKSBjb25zdDsKKyAgICBib29sIG1hdGNoZXMoKSBjb25zdCB7IHJldHVybiBtX21hdGNo
ZXM7IH0KKworICAgIHZvaWQgYWRkTGlzdGVuZXIoUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyPik7CisgICAgdm9pZCByZW1vdmVMaXN0ZW5lcihQYXNzUmVmUHRyPE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXI+KTsKKworICAgIHZvaWQgZXZhbHVhdGUoTWVkaWFRdWVyeUV2YWx1YXRvciop
OworICAgIGJvb2wgY2hhbmdlZCgpIGNvbnN0OworCitwcml2YXRlOgorICAgIE1lZGlhUXVlcnlM
aXN0KFBhc3NSZWZQdHI8TWVkaWFRdWVyeVZlY3Rvcj4sIFBhc3NSZWZQdHI8TWVkaWFMaXN0Piwg
Ym9vbCBtYXRjaGVzKTsKKworICAgIFJlZlB0cjxNZWRpYVF1ZXJ5VmVjdG9yPiBtX3ZlY3RvcjsK
KyAgICBSZWZQdHI8TWVkaWFMaXN0PiBtX21lZGlhOworICAgIGludCBtX2V2YWxSb3VuZDsKKyAg
ICBpbnQgbV9jaGFuZ2VSb3VuZDsKKyAgICBpbnQgbV9tYXRjaGVzOworfTsKKworfQorCisjZW5k
aWYgLy8gTWVkaWFRdWVyeUxpc3RfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvTWVkaWFRdWVy
eUxpc3QuaWRsIGIvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3QuaWRsCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI2NWU1ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3Jl
L2Nzcy9NZWRpYVF1ZXJ5TGlzdC5pZGwKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykK
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBV
VEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVU
RVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCittb2R1bGUgdmlldyB7CisgICAgaW50ZXJmYWNlIE1lZGlhUXVlcnlMaXN0IHsKKyAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBtZWRpYTsKKyAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIGJvb2xlYW4gbWF0Y2hlczsKKyAgICAgICAgdm9pZCBhZGRMaXN0ZW5lcihp
biBbQ2FsbGJhY2tdIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIgbGlzdGVuZXIpOworICAgICAgICB2
b2lkIHJlbW92ZUxpc3RlbmVyKGluIFtDYWxsYmFja10gTWVkaWFRdWVyeUxpc3RMaXN0ZW5lciBs
aXN0ZW5lcik7CisgICAgfTsKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlM
aXN0TGlzdGVuZXIuaCBiL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMjQ4NjdlCi0tLSAvZGV2L251bGwKKysr
IGIvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oCkBAIC0wLDAgKzEsNTIgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyX2gK
KyNkZWZpbmUgTWVkaWFRdWVyeUxpc3RMaXN0ZW5lcl9oCisKKyNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE1lZGlhUXVlcnlMaXN0Owor
CitjbGFzcyBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFR
dWVyeUxpc3RMaXN0ZW5lcj4geworcHVibGljOgorICAgIGVudW0gVHlwZSB7CisgICAgICAgIEpT
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclR5cGUsCisgICAgICAgIFY4TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lclR5cGUKKyAgICB9OworCisgICAgdmlydHVhbCB+TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcigp
IHt9CisgICAgdmlydHVhbCB2b2lkIHF1ZXJ5Q2hhbmdlZChNZWRpYVF1ZXJ5TGlzdCopID0gMDsK
KyAgICB2aXJ0dWFsIGludCB0eXBlKCkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBpc0VxdWFsVG8o
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciogb3RoZXIpID0gMDsKKworcHJvdGVjdGVkOgorfTsKKwor
fQorCisjZW5kaWYgLy8gTWVkaWFRdWVyeUxpc3RMaXN0ZW5lcl9oCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmlkbCBiL1dlYkNvcmUvY3NzL01lZGlhUXVl
cnlMaXN0TGlzdGVuZXIuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI1
ZmY3MjgKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyLmlkbApAQCAtMCwwICsxLDMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lh
IENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSB2
aWV3IHsKKyAgICBpbnRlcmZhY2UgW0NhbGxiYWNrXSBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIHsK
KyAgICAgICAgdm9pZCBxdWVyeUNoYW5nZWQoaW4gTWVkaWFRdWVyeUxpc3QgbXFsKTsKKyAgICAg
ICAgW0N1c3RvbV0gbG9uZyB0eXBlKCk7CisgICAgICAgIFtDdXN0b21dIGJvb2xlYW4gaXNFcXVh
bFRvKGluIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIgb3RoZXIpOworICAgIH07Cit9CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5VmVjdG9yLmNwcCBiL1dlYkNvcmUvY3NzL01lZGlh
UXVlcnlWZWN0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRkMDA4
NjgKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5VmVjdG9yLmNwcApA
QCAtMCwwICsxLDE1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3Jh
dGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiTWVkaWFRdWVyeVZlY3Rvci5oIgorCisjaW5jbHVkZSAiQ1NTU3R5bGVT
ZWxlY3Rvci5oIgorI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2lu
Y2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIk1lZGlhTGlzdC5oIgorI2luY2x1ZGUgIk1l
ZGlhUXVlcnlFdmFsdWF0b3IuaCIKKyNpbmNsdWRlICJNZWRpYVF1ZXJ5TGlzdC5oIgorI2luY2x1
ZGUgIk1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitN
ZWRpYVF1ZXJ5TGlzdGVuZXI6Ok1lZGlhUXVlcnlMaXN0ZW5lcihQYXNzUmVmUHRyPE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXI+IGxpc3RlbmVyLCBQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0PiBxdWVy
eSkKKyAgICA6IG1fbGlzdGVuZXIobGlzdGVuZXIpCisgICAgLCBtX3F1ZXJ5KHF1ZXJ5KQorewor
fQorCitNZWRpYVF1ZXJ5TGlzdGVuZXI6On5NZWRpYVF1ZXJ5TGlzdGVuZXIoKQoreworfQorCit2
b2lkIE1lZGlhUXVlcnlMaXN0ZW5lcjo6ZXZhbHVhdGUoTWVkaWFRdWVyeUV2YWx1YXRvciogZXZh
bHVhdG9yKQoreworICAgIG1fcXVlcnktPmV2YWx1YXRlKGV2YWx1YXRvcik7CisgICAgaWYgKG1f
cXVlcnktPmNoYW5nZWQoKSkKKyAgICAgICAgbV9saXN0ZW5lci0+cXVlcnlDaGFuZ2VkKG1fcXVl
cnkuZ2V0KCkpOworfQorCitNZWRpYVF1ZXJ5VmVjdG9yOjpNZWRpYVF1ZXJ5VmVjdG9yKEZyYW1l
KiBmcmFtZSkKKyAgICA6IG1fZnJhbWUoZnJhbWUpCisgICAgLCBtX2V2YWxSb3VuZCgwKQorICAg
ICwgbV90ZXJtaW5hdGVkKGZhbHNlKQoreworfQorCitNZWRpYVF1ZXJ5VmVjdG9yOjp+TWVkaWFR
dWVyeVZlY3RvcigpCit7Cit9CisKK3ZvaWQgTWVkaWFRdWVyeVZlY3Rvcjo6dGVybWluYXRlKCkK
K3sKKyAgICBtX3Rlcm1pbmF0ZWQgPSB0cnVlOworICAgIGRlbGV0ZUFsbFZhbHVlcyhtX2xpc3Rl
bmVycyk7CisgICAgbV9saXN0ZW5lcnMuY2xlYXIoKTsKK30KKworU3RyaW5nIE1lZGlhUXVlcnlW
ZWN0b3I6Om1lZGlhVHlwZSgpIGNvbnN0Cit7CisgICAgRnJhbWVWaWV3KiB2aWV3ID0gbV9mcmFt
ZSA/IG1fZnJhbWUtPnZpZXcoKSA6IDA7CisgICAgaWYgKHZpZXcpCisgICAgICAgIHJldHVybiB2
aWV3LT5tZWRpYVR5cGUoKTsKKworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworUGFzc093blB0
cjxNZWRpYVF1ZXJ5RXZhbHVhdG9yPiBNZWRpYVF1ZXJ5VmVjdG9yOjpwcmVwYXJlRXZhbHVhdG9y
KCkgY29uc3QKK3sKKyAgICBpZiAoIW1fZnJhbWUpCisgICAgICAgIHJldHVybiAwOworCisgICAg
RG9jdW1lbnQqIGRvY3VtZW50ID0gbV9mcmFtZS0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3Vt
ZW50KQorICAgICAgICByZXR1cm4gMDsKKworICAgIEVsZW1lbnQqIGRvY3VtZW50RWxlbWVudCA9
IGRvY3VtZW50LT5kb2N1bWVudEVsZW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50RWxlbWVudCkK
KyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBDU1NTdHlsZVNlbGVjdG9yKiBzdHlsZVNlbGVjdG9y
ID0gZG9jdW1lbnQtPnN0eWxlU2VsZWN0b3IoKTsKKyAgICBpZiAoIXN0eWxlU2VsZWN0b3IpCisg
ICAgICAgIHJldHVybiAwOworCisgICAgUmVmUHRyPFJlbmRlclN0eWxlPiByb290U3R5bGUgPSBz
dHlsZVNlbGVjdG9yLT5zdHlsZUZvckVsZW1lbnQoZG9jdW1lbnRFbGVtZW50LCAwIC8qZGVmYXVs
dFBhcmVudCovLCBmYWxzZSAvKmFsbG93U2hhcmluZyovLCB0cnVlIC8qcmVzb2x2ZUZvclJvb3RE
ZWZhdWx0Ki8pOworCisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBNZWRpYVF1ZXJ5RXZhbHVhdG9y
KG1lZGlhVHlwZSgpLCBtX2ZyYW1lLCByb290U3R5bGUuZ2V0KCkpKTsKK30KKworUGFzc1JlZlB0
cjxNZWRpYVF1ZXJ5TGlzdD4gTWVkaWFRdWVyeVZlY3Rvcjo6bWF0Y2hNZWRpYShjb25zdCBTdHJp
bmcmIHF1ZXJ5KQoreworICAgIGlmIChtX3Rlcm1pbmF0ZWQpCisgICAgICAgIHJldHVybiAwOwor
CisgICAgUmVmUHRyPE1lZGlhTGlzdD4gbWVkaWEgPSBNZWRpYUxpc3Q6OmNyZWF0ZShxdWVyeSwg
ZmFsc2UpOworICAgIE93blB0cjxNZWRpYVF1ZXJ5RXZhbHVhdG9yPiBldmFsdWF0b3IocHJlcGFy
ZUV2YWx1YXRvcigpKTsKKyAgICBib29sIG1hdGNoZXMgPSBldmFsdWF0b3IgJiYgZXZhbHVhdG9y
LT5ldmFsKG1lZGlhLmdldCgpKTsKKworICAgIHJldHVybiBNZWRpYVF1ZXJ5TGlzdDo6Y3JlYXRl
KHRoaXMsIG1lZGlhLCBtYXRjaGVzKTsKK30KKwordm9pZCBNZWRpYVF1ZXJ5VmVjdG9yOjphZGRM
aXN0ZW5lcihQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+IGxpc3RlbmVyLCBQYXNz
UmVmUHRyPE1lZGlhUXVlcnlMaXN0PiBxdWVyeSkKK3sKKyAgICBpZiAobV90ZXJtaW5hdGVkKQor
ICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fbGlzdGVuZXJz
LnNpemUoKTsgKytpKSB7CisgICAgICAgIGlmIChtX2xpc3RlbmVyc1tpXS0+bGlzdGVuZXIoKS0+
aXNFcXVhbFRvKGxpc3RlbmVyLmdldCgpKSAmJiBtX2xpc3RlbmVyc1tpXS0+cXVlcnkoKSA9PSBx
dWVyeS5nZXQoKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX2xpc3RlbmVy
cy5hcHBlbmQobmV3IE1lZGlhUXVlcnlMaXN0ZW5lcihsaXN0ZW5lciwgcXVlcnkpKTsKK30KKwor
dm9pZCBNZWRpYVF1ZXJ5VmVjdG9yOjpyZW1vdmVMaXN0ZW5lcihQYXNzUmVmUHRyPE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXI+IGxpc3RlbmVyLCBQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0PiBxdWVy
eSkKK3sKKyAgICBpZiAobV90ZXJtaW5hdGVkKQorICAgICAgICByZXR1cm47CisKKyAgICBmb3Ig
KGludCBpID0gbV9saXN0ZW5lcnMuc2l6ZSgpIC0gMTsgaSA+PSAwOyAtLWkpIHsKKyAgICAgICAg
aWYgKG1fbGlzdGVuZXJzW2ldLT5saXN0ZW5lcigpLT5pc0VxdWFsVG8obGlzdGVuZXIuZ2V0KCkp
ICYmIG1fbGlzdGVuZXJzW2ldLT5xdWVyeSgpID09IHF1ZXJ5LmdldCgpKSB7CisgICAgICAgICAg
ICBkZWxldGUgbV9saXN0ZW5lcnNbaV07CisgICAgICAgICAgICBtX2xpc3RlbmVycy5yZW1vdmUo
aSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgTWVk
aWFRdWVyeVZlY3Rvcjo6ZXZhbHVhdGUoKQoreworICAgIEFTU0VSVCghbV90ZXJtaW5hdGVkKTsK
KworICAgICsrbV9ldmFsUm91bmQ7CisgICAgT3duUHRyPE1lZGlhUXVlcnlFdmFsdWF0b3I+IGV2
YWx1YXRvciA9IHByZXBhcmVFdmFsdWF0b3IoKTsKKyAgICBpZiAoIWV2YWx1YXRvcikKKyAgICAg
ICAgcmV0dXJuOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9saXN0ZW5lcnMuc2l6ZSgp
OyArK2kpCisgICAgICAgIG1fbGlzdGVuZXJzW2ldLT5ldmFsdWF0ZShldmFsdWF0b3IuZ2V0KCkp
OworfQorCit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5VmVjdG9yLmggYi9X
ZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5VmVjdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uZTM5NTljMQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvY3NzL01lZGlhUXVl
cnlWZWN0b3IuaApAQCAtMCwwICsxLDgxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5v
a2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgTWVkaWFRdWVyeVZlY3Rvcl9oCisjZGVmaW5lIE1lZGlhUXVlcnlWZWN0b3JfaAorCisjaW5j
bHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2lu
Y2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBGcmFtZTsKK2NsYXNzIE1lZGlhUXVlcnlMaXN0
OworY2xhc3MgTWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjsKK2NsYXNzIE1lZGlhUXVlcnlFdmFsdWF0
b3I7CisKK2NsYXNzIE1lZGlhUXVlcnlMaXN0ZW5lciB7CitwdWJsaWM6CisgICAgTWVkaWFRdWVy
eUxpc3RlbmVyKFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4sIFBhc3NSZWZQdHI8
TWVkaWFRdWVyeUxpc3Q+KTsKKyAgICB+TWVkaWFRdWVyeUxpc3RlbmVyKCk7CisKKyAgICB2b2lk
IGV2YWx1YXRlKE1lZGlhUXVlcnlFdmFsdWF0b3IqKTsKKworICAgIE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXIqIGxpc3RlbmVyKCkgeyByZXR1cm4gbV9saXN0ZW5lci5nZXQoKTsgfQorICAgIE1lZGlh
UXVlcnlMaXN0KiBxdWVyeSgpIHsgcmV0dXJuIG1fcXVlcnkuZ2V0KCk7IH0KKworcHJpdmF0ZToK
KyAgICBSZWZQdHI8TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4gbV9saXN0ZW5lcjsKKyAgICBSZWZQ
dHI8TWVkaWFRdWVyeUxpc3Q+IG1fcXVlcnk7Cit9OworCitjbGFzcyBNZWRpYVF1ZXJ5VmVjdG9y
IDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFRdWVyeVZlY3Rvcj4geworcHVibGljOgorICAgIHN0
YXRpYyBQYXNzUmVmUHRyPE1lZGlhUXVlcnlWZWN0b3I+IGNyZWF0ZShGcmFtZSogZnJhbWUpIHsg
cmV0dXJuIGFkb3B0UmVmKG5ldyBNZWRpYVF1ZXJ5VmVjdG9yKGZyYW1lKSk7IH0KKyAgICB+TWVk
aWFRdWVyeVZlY3RvcigpOworICAgIHZvaWQgdGVybWluYXRlKCk7CisKKyAgICB2b2lkIGFkZExp
c3RlbmVyKFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4sIFBhc3NSZWZQdHI8TWVk
aWFRdWVyeUxpc3Q+KTsKKyAgICB2b2lkIHJlbW92ZUxpc3RlbmVyKFBhc3NSZWZQdHI8TWVkaWFR
dWVyeUxpc3RMaXN0ZW5lcj4sIFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3Q+KTsKKworICAgIFBh
c3NSZWZQdHI8TWVkaWFRdWVyeUxpc3Q+IG1hdGNoTWVkaWEoY29uc3QgU3RyaW5nJik7CisgICAg
aW50IGV2YWxSb3VuZCgpIGNvbnN0IHsgcmV0dXJuIG1fZXZhbFJvdW5kOyB9CisgICAgdm9pZCBl
dmFsdWF0ZSgpOworcHJpdmF0ZToKKyAgICBNZWRpYVF1ZXJ5VmVjdG9yKEZyYW1lKik7CisgICAg
UGFzc093blB0cjxNZWRpYVF1ZXJ5RXZhbHVhdG9yPiBwcmVwYXJlRXZhbHVhdG9yKCkgY29uc3Q7
CisgICAgU3RyaW5nIG1lZGlhVHlwZSgpIGNvbnN0OworCisgICAgRnJhbWUqIG1fZnJhbWU7Cisg
ICAgVmVjdG9yPE1lZGlhUXVlcnlMaXN0ZW5lcio+IG1fbGlzdGVuZXJzOworICAgIGludCBtX2V2
YWxSb3VuZDsKKyAgICBib29sIG1fdGVybWluYXRlZDsKK307CisKK30KKworI2VuZGlmIC8vIE1l
ZGlhUXVlcnlWZWN0b3JfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGJhMDJkZWMuLjRhZDg4OGIgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKQEAgLTI4NDgsNiArMjg0OCw5IEBAIHZvaWQgRG9jdW1lbnQ6OnN0eWxlU2VsZWN0b3JDaGFu
Z2VkKFN0eWxlU2VsZWN0b3JVcGRhdGVGbGFnIHVwZGF0ZUZsYWcpCiAgICAgICAgIGlmICh2aWV3
KCkpCiAgICAgICAgICAgICB2aWV3KCktPnNjaGVkdWxlUmVsYXlvdXQoKTsKICAgICB9CisKKyAg
ICBpZiAoZG9tV2luZG93KCkpCisgICAgICAgIGRvbVdpbmRvdygpLT5zdHlsZUNoYW5nZWQoKTsK
IH0KIAogdm9pZCBEb2N1bWVudDo6YWRkU3R5bGVTaGVldENhbmRpZGF0ZU5vZGUoTm9kZSogbm9k
ZSwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmNwcCBiL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IGJmMjZjZTQuLjAxYjc0
ZjEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykg
MjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTY0LDcgKzY1LDggQEAKICNp
bmNsdWRlICJJbnNwZWN0b3JUaW1lbGluZUFnZW50LmgiCiAjaW5jbHVkZSAiS1VSTC5oIgogI2lu
Y2x1ZGUgIkxvY2F0aW9uLmgiCi0jaW5jbHVkZSAiU3R5bGVNZWRpYS5oIgorI2luY2x1ZGUgIk1l
ZGlhUXVlcnlMaXN0LmgiCisjaW5jbHVkZSAiTWVkaWFRdWVyeVZlY3Rvci5oIgogI2luY2x1ZGUg
Ik1lc3NhZ2VFdmVudC5oIgogI2luY2x1ZGUgIk5hdmlnYXRvci5oIgogI2luY2x1ZGUgIk5vdGlm
aWNhdGlvbkNlbnRlci5oIgpAQCAtODAsNiArODIsNyBAQAogI2luY2x1ZGUgIlN0b3JhZ2UuaCIK
ICNpbmNsdWRlICJTdG9yYWdlQXJlYS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VOYW1lc3BhY2UuaCIK
KyNpbmNsdWRlICJTdHlsZU1lZGlhLmgiCiAjaW5jbHVkZSAiU3VkZGVuVGVybWluYXRpb24uaCIK
ICNpbmNsdWRlICJXZWJLaXRQb2ludC5oIgogI2luY2x1ZGUgPGFsZ29yaXRobT4KQEAgLTQwMCw2
ICs0MDMsOSBAQCBET01XaW5kb3c6On5ET01XaW5kb3coKQogCiAgICAgcmVtb3ZlQWxsVW5sb2Fk
RXZlbnRMaXN0ZW5lcnModGhpcyk7CiAgICAgcmVtb3ZlQWxsQmVmb3JlVW5sb2FkRXZlbnRMaXN0
ZW5lcnModGhpcyk7CisKKyAgICBpZiAobV9tZWRpYVF1ZXJpZXMpCisgICAgICAgIG1fbWVkaWFR
dWVyaWVzLT50ZXJtaW5hdGUoKTsKIH0KIAogU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogRE9NV2lu
ZG93OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QKQEAgLTQwNyw2ICs0MTMsMTkgQEAg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogRE9NV2luZG93OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkgY29uc3QKICAgICByZXR1cm4gZG9jdW1lbnQoKTsKIH0KIAorUGFzc1JlZlB0cjxNZWRpYVF1
ZXJ5TGlzdD4gRE9NV2luZG93OjptYXRjaE1lZGlhKGNvbnN0IFN0cmluZyYgbWVkaWEpCit7Cisg
ICAgaWYgKCFtX21lZGlhUXVlcmllcykKKyAgICAgICAgbV9tZWRpYVF1ZXJpZXMgPSBNZWRpYVF1
ZXJ5VmVjdG9yOjpjcmVhdGUobV9mcmFtZSk7CisgICAgcmV0dXJuIG1fbWVkaWFRdWVyaWVzLT5t
YXRjaE1lZGlhKG1lZGlhKTsKK30KKwordm9pZCBET01XaW5kb3c6OnN0eWxlQ2hhbmdlZCgpCit7
CisgICAgaWYgKG1fbWVkaWFRdWVyaWVzKQorICAgICAgICBtX21lZGlhUXVlcmllcy0+ZXZhbHVh
dGUoKTsKK30KKwogdm9pZCBET01XaW5kb3c6OmRpc2Nvbm5lY3RGcmFtZSgpCiB7CiAgICAgbV9m
cmFtZSA9IDA7CkBAIC00OTgsNiArNTE3LDEyIEBAIHZvaWQgRE9NV2luZG93OjpjbGVhcigpCiAj
aWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgbV9pZGJGYWN0b3J5ID0gMDsKICNlbmRp
ZgorCisgICAgaWYgKG1fbWVkaWFRdWVyaWVzKSB7CisgICAgICAgIG1fbWVkaWFRdWVyaWVzLT50
ZXJtaW5hdGUoKTsKKyAgICAgICAgbV9tZWRpYVF1ZXJpZXMuY2xlYXIoKTsKKyAgICB9CisKIH0K
IAogI2lmIEVOQUJMRShPUklFTlRBVElPTl9FVkVOVFMpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmggYi9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKaW5kZXggMTQ3MDYyOC4u
Y2Y3NGNhYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCisrKyBiL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3cuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMDYsIDIwMDcsIDIwMDkgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjAsMTAgKzYxLDEyIEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBJbnNwZWN0b3JUaW1lbGluZUFnZW50Owog
ICAgIGNsYXNzIExvY2FsRmlsZVN5c3RlbTsKICAgICBjbGFzcyBMb2NhdGlvbjsKLSAgICBjbGFz
cyBTdHlsZU1lZGlhOworICAgIGNsYXNzIE1lZGlhUXVlcnlMaXN0OworICAgIGNsYXNzIE1lZGlh
UXVlcnlWZWN0b3I7CiAgICAgY2xhc3MgTmF2aWdhdG9yOwogICAgIGNsYXNzIE5vZGU7CiAgICAg
Y2xhc3MgTm90aWZpY2F0aW9uQ2VudGVyOworICAgIGNsYXNzIFN0eWxlTWVkaWE7CiAKICNpZiBF
TkFCTEUoV0VCX1RJTUlORykKICAgICBjbGFzcyBQZXJmb3JtYW5jZTsKQEAgLTk5LDYgKzEwMiw5
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2b2lkIGNsZWFyKCk7CiAKKyAgICAg
ICAgUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdD4gbWF0Y2hNZWRpYShjb25zdCBTdHJpbmcmKTsK
KyAgICAgICAgdm9pZCBzdHlsZUNoYW5nZWQoKTsKKwogI2lmIEVOQUJMRShPUklFTlRBVElPTl9F
VkVOVFMpCiAgICAgICAgIC8vIFRoaXMgaXMgdGhlIGludGVyZmFjZSBvcmllbnRhdGlvbiBpbiBk
ZWdyZWVzLiBTb21lIGV4YW1wbGVzIGFyZToKICAgICAgICAgLy8gIDAgaXMgc3RyYWlnaHQgdXA7
IC05MCBpcyB3aGVuIHRoZSBkZXZpY2UgaXMgcm90YXRlZCA5MCBjbG9ja3dpc2U7CkBAIC00NTIs
NiArNDU4LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIFN0cmluZyBtX3N0YXR1
czsKICAgICAgICAgU3RyaW5nIG1fZGVmYXVsdFN0YXR1czsKKworICAgICAgICBSZWZQdHI8TWVk
aWFRdWVyeVZlY3Rvcj4gbV9tZWRpYVF1ZXJpZXM7CiAgICAgfTsKIAogICAgIGlubGluZSBTdHJp
bmcgRE9NV2luZG93OjpzdGF0dXMoKSBjb25zdApAQCAtNDYyLDcgKzQ3MCw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICBpbmxpbmUgU3RyaW5nIERPTVdpbmRvdzo6ZGVmYXVsdFN0YXR1cygp
IGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gbV9kZWZhdWx0U3RhdHVzOwotICAgIH0gCisg
ICAgfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuaWRsIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKaW5kZXggNzAyZWRj
ZC4uYzE1MTljZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKKysrIGIv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKQEAgLTc3MCw2ICs3NzAsOSBAQCBtb2R1bGUgd2lu
ZG93IHsKICAgICAgICAgLy8gd2luZG93LnRvU3RyaW5nKCkgcmVxdWlyZXMgc3BlY2lhbCBoYW5k
bGluZyBpbiBWOAogICAgICAgICBbVjhEb05vdENoZWNrU2lnbmF0dXJlLCBEb05vdENoZWNrRG9t
YWluU2VjdXJpdHksIEN1c3RvbSwgRG9udEVudW1dIERPTVN0cmluZyB0b1N0cmluZygpOwogI2Vu
ZGlmIC8vIGRlZmluZWQoVjhfQklORElORykKKworCisgICAgICAgIE1lZGlhUXVlcnlMaXN0IG1h
dGNoTWVkaWEoaW4gRE9NU3RyaW5nIHF1ZXJ5KTsKICAgICB9OwogCiB9Ci0tIAoxLjcuMi4yCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67119</attachid>
            <date>2010-09-09 16:51:57 -0700</date>
            <delta_ts>2010-09-10 10:54:13 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-Media-listeners.patch</filename>
            <type>text/plain</type>
            <size>85698</size>
            <attacher name="Luiz Agostini">luiz</attacher>
            
              <data encoding="base64">RnJvbSA4YjY0Y2RmYzgyMWNkMjNmZTk1ODZiZDU4ZmVlZWFlNWU4Y2E5YWJhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWl6IEFnb3N0aW5pIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IFRodSwgOSBTZXAgMjAxMCAxOTozNzoyMyAtMDMwMApTdWJqZWN0OiBbUEFU
Q0hdIE1lZGlhIGxpc3RlbmVycwogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTM3MjA1CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCldlYkNvcmU6CgpWOCBhbmQg
SlMgY29kZSBnZW5lcmF0b3JzIGNoYW5nZWQgdG8gYWNjZXB0IHZvaWQgY2FsbGJhY2tzLgoKKiBi
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKiBiaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JWOC5wbToKCk5ldyBpbnRlcmZhY2VzIE1lZGlhUXVlcnlMaXN0IGFuZCBNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyLgoKKiBjc3MvTWVkaWFRdWVyeUxpc3QuaWRsOiBBZGRlZC4KKiBj
c3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5pZGw6IEFkZGVkLgoKTWVkaWFRdWVyeUxpc3RMc2l0
ZW5lciBpcyBhIGNhbGxiYWNrLiBDdXN0b20gbWV0aG9kcyBhcmUgbmVlZGVkIHRvIGltcGxlbWVu
dApjYWxsYmFjayBjb21wYXJpc29uLgoKKiBiaW5kaW5ncy9qcy9KU01lZGlhUXVlcnlMaXN0TGlz
dGVuZXJDdXN0b20uY3BwOiBBZGRlZC4KKFdlYkNvcmU6OkpTTWVkaWFRdWVyeUxpc3RMaXN0ZW5l
cjo6dHlwZSk6CihXZWJDb3JlOjpKU01lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OmlzRXF1YWxUbyk6
CiogYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckN1c3RvbS5jcHA6
IEFkZGVkLgooV2ViQ29yZTo6VjhNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjp0eXBlKToKKFdlYkNv
cmU6OlY4TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6aXNFcXVhbFRvKToKCkNsYXNzZXMgTWVkaWFR
dWVyeUxpc3QgYW5kIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuCgoqIGNzcy9NZWRpYVF1ZXJ5TGlz
dC5jcHA6IEFkZGVkLgooV2ViQ29yZTo6TWVkaWFRdWVyeUxpc3Q6OmNyZWF0ZSk6CihXZWJDb3Jl
OjpNZWRpYVF1ZXJ5TGlzdDo6TWVkaWFRdWVyeUxpc3QpOgooV2ViQ29yZTo6TWVkaWFRdWVyeUxp
c3Q6On5NZWRpYVF1ZXJ5TGlzdCk6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdDo6bWVkaWEpOgoo
V2ViQ29yZTo6TWVkaWFRdWVyeUxpc3Q6OmNoYW5nZWQpOgooV2ViQ29yZTo6TWVkaWFRdWVyeUxp
c3Q6OmFkZExpc3RlbmVyKToKKFdlYkNvcmU6Ok1lZGlhUXVlcnlMaXN0OjpyZW1vdmVMaXN0ZW5l
cik6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdDo6ZXZhbHVhdGUpOgoqIGNzcy9NZWRpYVF1ZXJ5
TGlzdC5oOiBBZGRlZC4KKFdlYkNvcmU6Ok1lZGlhUXVlcnlMaXN0OjptYXRjaGVzKToKKiBjc3Mv
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oOiBBZGRlZC4KKFdlYkNvcmU6Ok1lZGlhUXVlcnlMaXN0
TGlzdGVuZXI6On5NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKToKClRvIGF2b2lkIGFkZGluZyBjb2Rl
IHRvIGNsYXNzZXMgRE9NV2luZG93IGFuZCBEb2N1bWVudCBhIG5ldyBjbGFzcyBNZWRpYVF1ZXJ5
VmVjdG9yIHdhcwpjcmVhdGVkLgoKKiBjc3MvTWVkaWFRdWVyeVZlY3Rvci5jcHA6IEFkZGVkLgoo
V2ViQ29yZTo6TWVkaWFRdWVyeUxpc3RlbmVyOjpNZWRpYVF1ZXJ5TGlzdGVuZXIpOgooV2ViQ29y
ZTo6TWVkaWFRdWVyeUxpc3RlbmVyOjp+TWVkaWFRdWVyeUxpc3RlbmVyKToKKFdlYkNvcmU6Ok1l
ZGlhUXVlcnlMaXN0ZW5lcjo6ZXZhbHVhdGUpOgooV2ViQ29yZTo6TWVkaWFRdWVyeVZlY3Rvcjo6
TWVkaWFRdWVyeVZlY3Rvcik6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5VmVjdG9yOjp+TWVkaWFRdWVy
eVZlY3Rvcik6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5VmVjdG9yOjp0ZXJtaW5hdGUpOgooV2ViQ29y
ZTo6TWVkaWFRdWVyeVZlY3Rvcjo6bWVkaWFUeXBlKToKKFdlYkNvcmU6Ok1lZGlhUXVlcnlWZWN0
b3I6OnByZXBhcmVFdmFsdWF0b3IpOgooV2ViQ29yZTo6TWVkaWFRdWVyeVZlY3Rvcjo6bWF0Y2hN
ZWRpYSk6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5VmVjdG9yOjphZGRMaXN0ZW5lcik6CihXZWJDb3Jl
OjpNZWRpYVF1ZXJ5VmVjdG9yOjpyZW1vdmVMaXN0ZW5lcik6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5
VmVjdG9yOjpldmFsdWF0ZSk6CiogY3NzL01lZGlhUXVlcnlWZWN0b3IuaDogQWRkZWQuCihXZWJD
b3JlOjpNZWRpYVF1ZXJ5TGlzdGVuZXI6Omxpc3RlbmVyKToKKFdlYkNvcmU6Ok1lZGlhUXVlcnlM
aXN0ZW5lcjo6cXVlcnkpOgooV2ViQ29yZTo6TWVkaWFRdWVyeVZlY3Rvcjo6Y3JlYXRlKToKKFdl
YkNvcmU6Ok1lZGlhUXVlcnlWZWN0b3I6OmV2YWxSb3VuZCk6CgpEb2N1bWVudCBhbmQgRE9NV2lu
ZG93IGhhdmUgY2hhbmdlZCB0byBzdXBwb3J0IG5ldyBmZWF0dXJlcy4gRE9NV2luZG93IGlzIHRo
ZSBjbGFzcyB0aGF0CnB1Ymxpc2hlcyBtZXRob2RzIG1hdGNoTWVkaWEgYnV0IGZvciBwYWdlIGNh
Y2hlIHRvIHdvcmsgcHJvcGVybHkgRG9jdW1lbnQgaXMgdGhlIG93bmVyIG9mIHRoZQpNZWRpYVF1
ZXJ5VmVjdG9yIGluc3RhbmNlLgoKKiBkb20vRG9jdW1lbnQuY3BwOgooV2ViQ29yZTo6RG9jdW1l
bnQ6On5Eb2N1bWVudCk6CihXZWJDb3JlOjpEb2N1bWVudDo6bWF0Y2hNZWRpYSk6CihXZWJDb3Jl
OjpEb2N1bWVudDo6c3R5bGVTZWxlY3RvckNoYW5nZWQpOgoqIGRvbS9Eb2N1bWVudC5oOgoqIHBh
Z2UvRE9NV2luZG93LmNwcDoKKFdlYkNvcmU6OkRPTVdpbmRvdzo6bWF0Y2hNZWRpYSk6CihXZWJD
b3JlOjpET01XaW5kb3c6OmNsZWFyKToKKiBwYWdlL0RPTVdpbmRvdy5oOgooV2ViQ29yZTo6RE9N
V2luZG93OjpkZWZhdWx0U3RhdHVzKToKKiBwYWdlL0RPTVdpbmRvdy5pZGw6CgpCdWlsZCBzeXN0
ZW1zIGlzc3Vlcy4KCiogRGVyaXZlZFNvdXJjZXMubWFrZToKKiBHTlVtYWtlZmlsZS5hbToKKiBX
ZWJDb3JlLmd5cGk6CiogV2ViQ29yZS5wcmk6CiogV2ViQ29yZS5wcm86CiogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgoqIGJpbmRpbmdzL2dvYmplY3QvR05VbWFrZWZpbGUuYW06
CgpUZXN0czogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAxLmh0bWwKICAgICAgIGZhc3Qv
bWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMi5odG1sCiAgICAgICBmYXN0L21lZGlhL21lZGlhLXF1
ZXJ5LWxpc3QtMDMuaHRtbAoKTGF5b3V0VGVzdHM6CgpNZWRpYVF1ZXJ5TGlzdCB0ZXN0cy4KCiog
ZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dDoKKiBmYXN0L2Rv
bS9XaW5kb3cvd2luZG93LXByb3BlcnR5LWRlc2NyaXB0b3JzLWV4cGVjdGVkLnR4dDoKKiBmYXN0
L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKiBmYXN0L21l
ZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDEuaHRtbDogQWRkZWQuCiogZmFzdC9tZWRpYS9tZWRpYS1x
dWVyeS1saXN0LTAyLWV4cGVjdGVkLnR4dDogQWRkZWQuCiogZmFzdC9tZWRpYS9tZWRpYS1xdWVy
eS1saXN0LTAyLmh0bWw6IEFkZGVkLgoqIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMy1l
eHBlY3RlZC50eHQ6IEFkZGVkLgoqIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMy5odG1s
OiBBZGRlZC4KKiBwbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CiogcGxh
dGZvcm0vbWFjL1NraXBwZWQ6CiogcGxhdGZvcm0vd2luL1NraXBwZWQ6Ci0tLQogTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIxICsrKwogLi4u
L2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQgfCAgICAxICsK
IC4uLi93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMtZXhwZWN0ZWQudHh0ICAgICAgIHwgICAg
MSArCiAuLi4vZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAxLWV4cGVjdGVkLnR4dCAgICB8
ICAgMTUgKysKIExheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMS5odG1s
ICAgIHwgICA1MiArKysrKysrCiAuLi4vZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAyLWV4
cGVjdGVkLnR4dCAgICB8ICAgMjUgKysrCiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1
ZXJ5LWxpc3QtMDIuaHRtbCAgICB8ICAgNjEgKysrKysrKysKIC4uLi9mYXN0L21lZGlhL21lZGlh
LXF1ZXJ5LWxpc3QtMDMtZXhwZWN0ZWQudHh0ICAgIHwgICA0MSArKysrKwogTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAzLmh0bWwgICAgfCAgIDcwICsrKysrKysrKwog
Li4uL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dCAgICAgICAgfCAgICA0
ICstCiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZCAgICAgICAgICAgICAgICAgICB8
ICAgIDQgKy0KIExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkICAgICAgICAgICAgICAg
ICAgIHwgICAgNCArLQogV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgIDk2ICsrKysrKysrKysrKwogV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAyICsKIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMiArKy0KIFdlYkNvcmUvV2ViQ29yZS5n
eXBpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMCArLQogV2ViQ29yZS9XZWJD
b3JlLnByaSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAyICsKIFdlYkNvcmUv
V2ViQ29yZS5wcm8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNiArCiBXZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiAgICAgICAgICB8ICAgNDQgKysr
KysrCiBXZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvR05VbWFrZWZpbGUuYW0gICAgICAgICAgICB8
ICAgIDYgKwogLi4uL2JpbmRpbmdzL2pzL0pTTWVkaWFRdWVyeUxpc3RMaXN0ZW5lckN1c3RvbS5j
cHAgfCAgIDU5ICsrKysrKysrCiBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtICAgICAgICB8ICAgMzcgKysrKy0KIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9yVjgucG0gICAgICAgIHwgICA1OSArKysrKystLQogLi4uL3Y4L2N1c3RvbS9WOE1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXJDdXN0b20uY3BwICAgfCAgIDQ1ICsrKysrKwogV2ViQ29yZS9j
c3MvTWVkaWFRdWVyeUxpc3QuY3BwICAgICAgICAgICAgICAgICAgICAgfCAgIDg3ICsrKysrKysr
KysrCiBXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdC5oICAgICAgICAgICAgICAgICAgICAgICB8
ICAgNjYgKysrKysrKysKIFdlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0LmlkbCAgICAgICAgICAg
ICAgICAgICAgIHwgICAzMyArKysrCiBXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
LmggICAgICAgICAgICAgICB8ICAgNTIgKysrKysrKwogV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxp
c3RMaXN0ZW5lci5pZGwgICAgICAgICAgICAgfCAgIDMyICsrKysKIFdlYkNvcmUvY3NzL01lZGlh
UXVlcnlWZWN0b3IuY3BwICAgICAgICAgICAgICAgICAgIHwgIDE1OCArKysrKysrKysrKysrKysr
KysrKwogV2ViQ29yZS9jc3MvTWVkaWFRdWVyeVZlY3Rvci5oICAgICAgICAgICAgICAgICAgICAg
fCAgIDgxICsrKysrKysrKysKIFdlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgICAxNiArKwogV2ViQ29yZS9kb20vRG9jdW1lbnQuaCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAgICA3ICsKIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgICAxMCArLQogV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5o
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA4ICstCiBXZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmlkbCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDMgKwogMzYgZmlsZXMgY2hhbmdl
ZCwgMTIwNSBpbnNlcnRpb25zKCspLCAyNSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0
NCBMYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDEtZXhwZWN0ZWQudHh0
CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1s
aXN0LTAxLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L21lZGlhL21l
ZGlhLXF1ZXJ5LWxpc3QtMDItZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAyLmh0bWwKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBMYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMtZXhwZWN0ZWQu
dHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVy
eS1saXN0LTAzLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL2JpbmRpbmdzL2pzL0pT
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckN1c3RvbS5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJDdXN0b20uY3Bw
CiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3QuY3BwCiBjcmVh
dGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3QuaAogY3JlYXRlIG1vZGUg
MTAwNjQ0IFdlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0LmlkbAogY3JlYXRlIG1vZGUgMTAwNjQ0
IFdlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaAogY3JlYXRlIG1vZGUgMTAwNjQ0
IFdlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaWRsCiBjcmVhdGUgbW9kZSAxMDA2
NDQgV2ViQ29yZS9jc3MvTWVkaWFRdWVyeVZlY3Rvci5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBX
ZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5VmVjdG9yLmgKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTRiMDg3ZS4uNTVmN2FkMSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEwLTA5LTA5ICBMdWl6IEFnb3N0aW5pICA8bHVpei5h
Z29zdGluaUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIE1lZGlhIGxpc3RlbmVycworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzcyMDUKKworICAgICAgICBNZWRpYVF1ZXJ5TGlzdCB0
ZXN0cy4KKworICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1kZXNj
cmlwdG9ycy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1s
aXN0LTAxLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYS9tZWRpYS1x
dWVyeS1saXN0LTAxLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWEvbWVkaWEtcXVl
cnktbGlzdC0wMi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWEvbWVk
aWEtcXVlcnktbGlzdC0wMi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhL21lZGlh
LXF1ZXJ5LWxpc3QtMDMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlh
L21lZGlhLXF1ZXJ5LWxpc3QtMDMuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hy
b21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9Ta2lw
cGVkOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9Ta2lwcGVkOgorCiAyMDEwLTA5LTA5ICBNaWhh
aSBQYXJwYXJpdGEgIDxtaWhhaXBAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IFRvbnkgQ2hhbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2lu
ZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93
L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAppbmRleCBlNTUzYmVjLi43ZTk2MzUwIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJv
cGVydGllcy1leHBlY3RlZC50eHQKQEAgLTIyMzUsNiArMjIzNSw3IEBAIHdpbmRvdy5sb2NhdGlv
bmJhci52aXNpYmxlIFtib29sZWFuXQogd2luZG93LmxvZyBbZnVuY3Rpb25dCiB3aW5kb3cubG9n
UHJvcGVydGllcyBbZnVuY3Rpb25dCiB3aW5kb3cubG9nVmFsdWUgW2Z1bmN0aW9uXQord2luZG93
Lm1hdGNoTWVkaWEgW2Z1bmN0aW9uXQogd2luZG93Lm1lbnViYXIgW29iamVjdCBCYXJJbmZvXQog
d2luZG93Lm1lbnViYXIudmlzaWJsZSBbYm9vbGVhbl0KIHdpbmRvdy5tb3ZlQnkgW2Z1bmN0aW9u
XQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0
eS1kZXNjcmlwdG9ycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cv
d2luZG93LXByb3BlcnR5LWRlc2NyaXB0b3JzLWV4cGVjdGVkLnR4dAppbmRleCBhNzZiZjczLi4z
MzQ5YzgwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBy
b3BlcnR5LWRlc2NyaXB0b3JzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9XaW5kb3cvd2luZG93LXByb3BlcnR5LWRlc2NyaXB0b3JzLWV4cGVjdGVkLnR4dApAQCAtNTA0
LDYgKzUwNCw3IEBAIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3cs
ICdnZXRNYXRjaGVkQ1NTUnVsZXMnKSBpcyB1bmRlZmluZWQuCiBQQVNTIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnZ2V0U2VsZWN0aW9uJykgaXMgdW5kZWZpbmVkLgog
UEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ2hhc093blByb3Bl
cnR5JykgaXMgdW5kZWZpbmVkLgogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KHdpbmRvdywgJ2lzUHJvdG90eXBlT2YnKSBpcyB1bmRlZmluZWQuCitQQVNTIE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnbWF0Y2hNZWRpYScpIGlzIHVuZGVmaW5lZC4K
IFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdtb3ZlQnknKSBp
cyB1bmRlZmluZWQuCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93
LCAnbW92ZVRvJykgaXMgdW5kZWZpbmVkLgogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKHdpbmRvdywgJ29wZW4nKSBpcyB1bmRlZmluZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAxLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZWJhM2Y1Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAxLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDE1IEBACitUZXN0IHRoZSBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U6IGh0dHA6
Ly9kZXYudzMub3JnL2Nzc3dnL2Nzc29tLXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZh
Y2UuCisKKyJzY3JlZW4iIGV2YWx1YXRlcyB0byB0cnVlOiBQQVNTCisicHJvamVjdGlvbiIgZXZh
bHVhdGVzIHRvIGZhbHNlOiBQQVNTCisiYWxsIGFuZCAoY29sb3IpIiBldmFsdWF0ZXMgdG8gdHJ1
ZTogUEFTUworIm5vdCBwcm9qZWN0aW9uIGFuZCAoY29sb3IpIiBldmFsdWF0ZXMgdG8gdHJ1ZTog
UEFTUworIihjb2xvcikiIGV2YWx1YXRlcyB0byB0cnVlOiBQQVNTCisiKGNvbG9yIiBldmFsdWF0
ZXMgdG8gZmFsc2U6IFBBU1MKKyJjb2xvciIgZXZhbHVhdGVzIHRvIGZhbHNlOiBQQVNTCisiZ2Fy
YmFnZSIgZXZhbHVhdGVzIHRvIGZhbHNlOiBQQVNTCisiKG1pbi1kZXZpY2Utd2lkdGg6IDEwMHB4
KSIgZXZhbHVhdGVzIHRvIHRydWU6IFBBU1MKKyIobWluLWRldmljZS13aWR0aDogNTAwMDBweCki
IGV2YWx1YXRlcyB0byBmYWxzZTogUEFTUworIigtd2Via2l0LWFuaW1hdGlvbjogMSkiIGV2YWx1
YXRlcyB0byB0cnVlOiBQQVNTCisiKC13ZWJraXQtdHJhbnNmb3JtLTJkKSIgZXZhbHVhdGVzIHRv
IHRydWU6IFBBU1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1x
dWVyeS1saXN0LTAxLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxp
c3QtMDEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zM2RjYzY3Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0
LTAxLmh0bWwKQEAgLTAsMCArMSw1MiBAQAorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5UZXN0IENT
U09NIFZpZXcgbW9kdWxlOiBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U8L3RpdGxlPgorPHN0eWxl
IHR5cGU9InRleHQvY3NzIj4KKworPC9zdHlsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBjaGFyc2V0PSJ1dGYtOCI+CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgICAgZnVu
Y3Rpb24gbG9nKG0pCisgICAgeworICAgICAgICB2YXIgcmVzdWx0cyA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdyZXN1bHRzJyk7CisgICAgICAgIHJlc3VsdHMuaW5uZXJIVE1MICs9IG0gKyAn
PGJyPic7CisgICAgfQorCisgICAgZnVuY3Rpb24gdGVzdFF1ZXJ5KHF1ZXJ5LCBleHBlY3RlZCkK
KyAgICB7CisgICAgICAgIHZhciBpc1RydWUgPSB3aW5kb3cubWF0Y2hNZWRpYShxdWVyeSkubWF0
Y2hlczsKKyAgICAgICAgdmFyIG1lc3NhZ2UgPSAnXCInICsgcXVlcnkgKyAnXCIgZXZhbHVhdGVz
IHRvICcgKyAoaXNUcnVlID8gJ3RydWUnIDogJ2ZhbHNlJyk7CisgICAgICAgIG1lc3NhZ2UgKz0g
KGlzVHJ1ZSA9PSBleHBlY3RlZCkgPyAnOiBQQVNTJyA6ICc6IEZBSUwnOworICAgICAgICBsb2co
bWVzc2FnZSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdHMoKQorICAgIHsKKyAgICAg
ICAgdGVzdFF1ZXJ5KCdzY3JlZW4nLCB0cnVlKTsKKyAgICAgICAgdGVzdFF1ZXJ5KCdwcm9qZWN0
aW9uJywgZmFsc2UpOworCisgICAgICAgIHRlc3RRdWVyeSgnYWxsIGFuZCAoY29sb3IpJywgdHJ1
ZSk7CisgICAgICAgIHRlc3RRdWVyeSgnbm90IHByb2plY3Rpb24gYW5kIChjb2xvciknLCB0cnVl
KTsKKyAgICAgICAgdGVzdFF1ZXJ5KCcoY29sb3IpJywgdHJ1ZSk7CisgICAgICAgIHRlc3RRdWVy
eSgnKGNvbG9yJywgZmFsc2UpOworICAgICAgICB0ZXN0UXVlcnkoJ2NvbG9yJywgZmFsc2UpOwor
CisgICAgICAgIHRlc3RRdWVyeSgnZ2FyYmFnZScsIGZhbHNlKTsKKworICAgICAgICB0ZXN0UXVl
cnkoJyhtaW4tZGV2aWNlLXdpZHRoOiAxMDBweCknLCB0cnVlKTsKKyAgICAgICAgdGVzdFF1ZXJ5
KCcobWluLWRldmljZS13aWR0aDogNTAwMDBweCknLCBmYWxzZSk7CisKKyAgICAgICAgdGVzdFF1
ZXJ5KCcoLXdlYmtpdC1hbmltYXRpb246IDEpJywgdHJ1ZSk7CisgICAgICAgIHRlc3RRdWVyeSgn
KC13ZWJraXQtdHJhbnNmb3JtLTJkKScsIHRydWUpOworICAgIH0KKworPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3RzKCkiPgorICAgIDxwPlRlc3QgdGhlIE1lZGlhUXVl
cnlMaXN0IGludGVyZmFjZTogPGEgaHJlZj0iaHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3Nzb20t
dmlldy8jdGhlLW1lZGlhcXVlcnlsaXN0LWludGVyZmFjZSIgdGl0bGU9IkNTU09NIFZpZXcgTW9k
dWxlIj5odHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9jc3NvbS12aWV3LyN0aGUtbWVkaWFxdWVyeWxp
c3QtaW50ZXJmYWNlPC9hPi48L3A+CisgICAgPGRpdiBpZD0icmVzdWx0cyI+CisgICAgPC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21l
ZGlhLXF1ZXJ5LWxpc3QtMDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9t
ZWRpYS1xdWVyeS1saXN0LTAyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi42MzY0M2Q4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI1IEBACitU
ZXN0IHRoZSBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U6IGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dn
L2Nzc29tLXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2UuCisKK1Rlc3RpbmcgYWRk
TGlzdGVuZXIgaW4gZGlmZmVyZW50IE1lZGlhUXVlcnlMaXN0IG9iamVjdHMgYW5kIHRoZSBjYWxs
YmFjayBjYWxsIHNlcXVlbmNlCisKKy0tLS0tLS0tLS0tLS0gbWluaW1pemVkIC0tLS0tLS0tLS0t
LS0KK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQgdG8g
ZmFsc2UKK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSBjaGFuZ2Vk
IHRvIHRydWUKK1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5n
ZWQgdG8gZmFsc2UKK1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSBj
aGFuZ2VkIHRvIHRydWUKKy0tLS0tLS0tLS0tLS0gbWF4aW1pemVkIC0tLS0tLS0tLS0tLS0KK1sx
XSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSBjaGFuZ2VkIHRvIGZhbHNl
CitbMV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1heGltaXplZCkgY2hhbmdlZCB0byB0
cnVlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCkgY2hhbmdlZCB0
byBmYWxzZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtYXhpbWl6ZWQpIGNoYW5n
ZWQgdG8gdHJ1ZQorLS0tLS0tLS0tLS0tLSB3aW5kb3dlZCAtLS0tLS0tLS0tLS0tCitbMV0gLSBx
dWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFuZ2VkIHRvIHRydWUKK1sxXSAt
IHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWF4aW1pemVkKSBjaGFuZ2VkIHRvIGZhbHNlCitb
Ml0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFuZ2VkIHRvIHRydWUK
K1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWF4aW1pemVkKSBjaGFuZ2VkIHRvIGZh
bHNlCistLS0tLS0tLS0tLS0tIGZsb2F0aW5nIC0tLS0tLS0tLS0tLS0KK1sxXSAtIHF1ZXJ5ICgt
d2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQgdG8gZmFsc2UKK1sxXSAtIHF1ZXJ5
ICgtd2Via2l0LXZpZXctbW9kZTogZmxvYXRpbmcpIGNoYW5nZWQgdG8gdHJ1ZQorWzJdIC0gcXVl
cnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0byBmYWxzZQorWzJdIC0g
cXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBmbG9hdGluZykgY2hhbmdlZCB0byB0cnVlCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMi5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAyLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGRlY2U0MwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMi5odG1sCkBAIC0wLDAg
KzEsNjEgQEAKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+VGVzdCBDU1NPTSBWaWV3IG1vZHVsZTog
TWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlPC90aXRsZT4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+
CisKKzwvc3R5bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRm
LTgiPgorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworICAgIGZ1bmN0aW9uIGxvZyhtKSB7Cisg
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHRzJykuaW5uZXJIVE1MICs9IG0g
KyAnPGJyPic7CisgICAgfQorCisgICAgZnVuY3Rpb24gY2FsbGJhY2sxKHF1ZXJ5KSB7CisgICAg
ICAgIGxvZygiWzFdIC0gcXVlcnkgIiArIHF1ZXJ5Lm1lZGlhICsgIiBjaGFuZ2VkIHRvICIgKyAo
cXVlcnkubWF0Y2hlcyA/ICJ0cnVlIiA6ICJmYWxzZSIpKTsKKyAgICB9CisKKyAgICBmdW5jdGlv
biBjYWxsYmFjazIocXVlcnkpIHsKKyAgICAgICAgbG9nKCJbMl0gLSBxdWVyeSAiICsgcXVlcnku
bWVkaWEgKyAiIGNoYW5nZWQgdG8gIiArIChxdWVyeS5tYXRjaGVzID8gInRydWUiIDogImZhbHNl
IikpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3RzKCkKKyAgICB7CisgICAgICAgIGlm
ICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgcmV0dXJuOworCisg
ICAgICAgIHdpbmRvd2VkUXVlcnkgPSB3aW5kb3cubWF0Y2hNZWRpYSgiKC13ZWJraXQtdmlldy1t
b2RlOiB3aW5kb3dlZCkiKTsKKyAgICAgICAgZmxvYXRpbmdRdWVyeSA9IHdpbmRvdy5tYXRjaE1l
ZGlhKCIoLXdlYmtpdC12aWV3LW1vZGU6IGZsb2F0aW5nKSIpOworICAgICAgICBtaW5pbWl6ZWRR
dWVyeSA9IHdpbmRvdy5tYXRjaE1lZGlhKCIoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCki
KTsKKyAgICAgICAgbWF4aW1pemVkUXVlcnkgPSB3aW5kb3cubWF0Y2hNZWRpYSgiKC13ZWJraXQt
dmlldy1tb2RlOiBtYXhpbWl6ZWQpIik7CisKKyAgICAgICAgd2luZG93ZWRRdWVyeS5hZGRMaXN0
ZW5lcihjYWxsYmFjazEpOworICAgICAgICBmbG9hdGluZ1F1ZXJ5LmFkZExpc3RlbmVyKGNhbGxi
YWNrMSk7CisgICAgICAgIG1pbmltaXplZFF1ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNrMSk7Cisg
ICAgICAgIG1heGltaXplZFF1ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNrMSk7CisKKyAgICAgICAg
d2luZG93ZWRRdWVyeS5hZGRMaXN0ZW5lcihjYWxsYmFjazIpOworICAgICAgICBmbG9hdGluZ1F1
ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNrMik7CisgICAgICAgIG1pbmltaXplZFF1ZXJ5LmFkZExp
c3RlbmVyKGNhbGxiYWNrMik7CisgICAgICAgIG1heGltaXplZFF1ZXJ5LmFkZExpc3RlbmVyKGNh
bGxiYWNrMik7CisKKyAgICAgICAgbG9nKCItLS0tLS0tLS0tLS0tIG1pbmltaXplZCAtLS0tLS0t
LS0tLS0tIik7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFZpZXdNb2RlTWVkaWFG
ZWF0dXJlKCJtaW5pbWl6ZWQiKTsKKyAgICAgICAgbG9nKCItLS0tLS0tLS0tLS0tIG1heGltaXpl
ZCAtLS0tLS0tLS0tLS0tIik7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFZpZXdN
b2RlTWVkaWFGZWF0dXJlKCJtYXhpbWl6ZWQiKTsKKyAgICAgICAgbG9nKCItLS0tLS0tLS0tLS0t
IHdpbmRvd2VkIC0tLS0tLS0tLS0tLS0iKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
c2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoIndpbmRvd2VkIik7CisgICAgICAgIGxvZygiLS0tLS0t
LS0tLS0tLSBmbG9hdGluZyAtLS0tLS0tLS0tLS0tIik7CisgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCJmbG9hdGluZyIpOworICAgIH0KKworPC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3RzKCkiPgorICAgIDxwPlRlc3Qg
dGhlIE1lZGlhUXVlcnlMaXN0IGludGVyZmFjZTogPGEgaHJlZj0iaHR0cDovL2Rldi53My5vcmcv
Y3Nzd2cvY3Nzb20tdmlldy8jdGhlLW1lZGlhcXVlcnlsaXN0LWludGVyZmFjZSIgdGl0bGU9IkNT
U09NIFZpZXcgTW9kdWxlIj5odHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9jc3NvbS12aWV3LyN0aGUt
bWVkaWFxdWVyeWxpc3QtaW50ZXJmYWNlPC9hPi48L3A+CisgICAgPHA+VGVzdGluZyBhZGRMaXN0
ZW5lciBpbiBkaWZmZXJlbnQgTWVkaWFRdWVyeUxpc3Qgb2JqZWN0cyBhbmQgdGhlIGNhbGxiYWNr
IGNhbGwgc2VxdWVuY2U8L3A+CisgICAgPGRpdiBpZD0icmVzdWx0cyI+CisgICAgPC9kaXY+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlh
LXF1ZXJ5LWxpc3QtMDMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRp
YS1xdWVyeS1saXN0LTAzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5mMjRlMjA2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YS9tZWRpYS1xdWVyeS1saXN0LTAzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQxIEBACitUZXN0
IHRoZSBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U6IGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nz
c29tLXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2UuCisKK1Rlc3RpbmcgcmVtb3Zl
TGlzdGVuZXIgaW4gZGlmZmVyZW50IE1lZGlhUXVlcnlMaXN0IG9iamVjdHMgYW5kIHRoZSBjYWxs
YmFjayBjYWxsIHNlcXVlbmNlCisKK2FkZGluZyB3aW5kb3dlZFsxXSwgbWluaW1pemVkWzFdLCB3
aW5kb3dlZFsyXSBhbmQgbWluaW1pemVkWzJdCisKKy0tLS0tLS0tLS0tLS0gbWluaW1pemVkIC0t
LS0tLS0tLS0tLS0KK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNo
YW5nZWQgdG8gZmFsc2UKK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVk
KSBjaGFuZ2VkIHRvIHRydWUKK1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93
ZWQpIGNoYW5nZWQgdG8gZmFsc2UKK1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWlu
aW1pemVkKSBjaGFuZ2VkIHRvIHRydWUKKy0tLS0tLS0tLS0tLS0gd2luZG93ZWQgLS0tLS0tLS0t
LS0tLQorWzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0
byB0cnVlCitbMV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCkgY2hhbmdl
ZCB0byBmYWxzZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hh
bmdlZCB0byB0cnVlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCkg
Y2hhbmdlZCB0byBmYWxzZQorCisKK3JlbW92aW5nIHdpbmRvd2VkWzFdIGFuZCBtaW5pbWl6ZWRb
Ml0KKworLS0tLS0tLS0tLS0tLSBtaW5pbWl6ZWQgLS0tLS0tLS0tLS0tLQorWzFdIC0gcXVlcnkg
KC13ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQpIGNoYW5nZWQgdG8gdHJ1ZQorWzJdIC0gcXVl
cnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0byBmYWxzZQorLS0tLS0t
LS0tLS0tLSB3aW5kb3dlZCAtLS0tLS0tLS0tLS0tCitbMV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3
LW1vZGU6IG1pbmltaXplZCkgY2hhbmdlZCB0byBmYWxzZQorWzJdIC0gcXVlcnkgKC13ZWJraXQt
dmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0byB0cnVlCisKKworYWRkaW5nIHdpbmRvd2Vk
WzFdIGFuZCBtaW5pbWl6ZWRbMl0KKworLS0tLS0tLS0tLS0tLSBtaW5pbWl6ZWQgLS0tLS0tLS0t
LS0tLQorWzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQpIGNoYW5nZWQg
dG8gdHJ1ZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdl
ZCB0byBmYWxzZQorWzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hh
bmdlZCB0byBmYWxzZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQp
IGNoYW5nZWQgdG8gdHJ1ZQorLS0tLS0tLS0tLS0tLSB3aW5kb3dlZCAtLS0tLS0tLS0tLS0tCitb
MV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCkgY2hhbmdlZCB0byBmYWxz
ZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0byB0
cnVlCitbMV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFuZ2VkIHRv
IHRydWUKK1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSBjaGFuZ2Vk
IHRvIGZhbHNlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVl
cnktbGlzdC0wMy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0
LTAzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjJkNDA4ZAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0w
My5odG1sCkBAIC0wLDAgKzEsNzAgQEAKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+VGVzdCBDU1NP
TSBWaWV3IG1vZHVsZTogTWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlPC90aXRsZT4KKzxzdHlsZSB0
eXBlPSJ0ZXh0L2NzcyI+CisKKzwvc3R5bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCIgY2hhcnNldD0idXRmLTgiPgorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworICAgIGZ1bmN0
aW9uIGxvZyhtKSB7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHRzJyku
aW5uZXJIVE1MICs9IG0gKyAnPGJyPic7CisgICAgfQorCisgICAgZnVuY3Rpb24gY2FsbGJhY2sx
KHF1ZXJ5KSB7CisgICAgICAgIGxvZygiWzFdIC0gcXVlcnkgIiArIHF1ZXJ5Lm1lZGlhICsgIiBj
aGFuZ2VkIHRvICIgKyAocXVlcnkubWF0Y2hlcyA/ICJ0cnVlIiA6ICJmYWxzZSIpKTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBjYWxsYmFjazIocXVlcnkpIHsKKyAgICAgICAgbG9nKCJbMl0gLSBx
dWVyeSAiICsgcXVlcnkubWVkaWEgKyAiIGNoYW5nZWQgdG8gIiArIChxdWVyeS5tYXRjaGVzID8g
InRydWUiIDogImZhbHNlIikpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3RzKCkKKyAg
ICB7CisgICAgICAgIGlmICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAg
ICAgcmV0dXJuOworCisgICAgICAgIHdpbmRvd2VkUXVlcnkgPSB3aW5kb3cubWF0Y2hNZWRpYSgi
KC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkiKTsKKyAgICAgICAgbWluaW1pemVkUXVlcnkg
PSB3aW5kb3cubWF0Y2hNZWRpYSgiKC13ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQpIik7CisK
KyAgICAgICAgbG9nKCJhZGRpbmcgd2luZG93ZWRbMV0sIG1pbmltaXplZFsxXSwgd2luZG93ZWRb
Ml0gYW5kIG1pbmltaXplZFsyXTxicj4iKTsKKyAgICAgICAgd2luZG93ZWRRdWVyeS5hZGRMaXN0
ZW5lcihjYWxsYmFjazEpOworICAgICAgICBtaW5pbWl6ZWRRdWVyeS5hZGRMaXN0ZW5lcihjYWxs
YmFjazEpOworICAgICAgICB3aW5kb3dlZFF1ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNrMik7Cisg
ICAgICAgIG1pbmltaXplZFF1ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNrMik7CisKKyAgICAgICAg
bG9nKCItLS0tLS0tLS0tLS0tIG1pbmltaXplZCAtLS0tLS0tLS0tLS0tIik7CisgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCJtaW5pbWl6ZWQiKTsK
KyAgICAgICAgbG9nKCItLS0tLS0tLS0tLS0tIHdpbmRvd2VkIC0tLS0tLS0tLS0tLS0iKTsKKyAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoIndpbmRv
d2VkIik7CisKKyAgICAgICAgbG9nKCI8YnI+PGJyPnJlbW92aW5nIHdpbmRvd2VkWzFdIGFuZCBt
aW5pbWl6ZWRbMl08YnI+Iik7CisgICAgICAgIHdpbmRvd2VkUXVlcnkucmVtb3ZlTGlzdGVuZXIo
Y2FsbGJhY2sxKTsKKyAgICAgICAgbWluaW1pemVkUXVlcnkucmVtb3ZlTGlzdGVuZXIoY2FsbGJh
Y2syKTsKKworICAgICAgICBsb2coIi0tLS0tLS0tLS0tLS0gbWluaW1pemVkIC0tLS0tLS0tLS0t
LS0iKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1
cmUoIm1pbmltaXplZCIpOworICAgICAgICBsb2coIi0tLS0tLS0tLS0tLS0gd2luZG93ZWQgLS0t
LS0tLS0tLS0tLSIpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9kZU1l
ZGlhRmVhdHVyZSgid2luZG93ZWQiKTsKKworICAgICAgICBsb2coIjxicj48YnI+YWRkaW5nIHdp
bmRvd2VkWzFdIGFuZCBtaW5pbWl6ZWRbMl08YnI+Iik7CisgICAgICAgIHdpbmRvd2VkUXVlcnku
YWRkTGlzdGVuZXIoY2FsbGJhY2sxKTsKKyAgICAgICAgbWluaW1pemVkUXVlcnkuYWRkTGlzdGVu
ZXIoY2FsbGJhY2syKTsKKworICAgICAgICBsb2coIi0tLS0tLS0tLS0tLS0gbWluaW1pemVkIC0t
LS0tLS0tLS0tLS0iKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Vmlld01vZGVN
ZWRpYUZlYXR1cmUoIm1pbmltaXplZCIpOworICAgICAgICBsb2coIi0tLS0tLS0tLS0tLS0gd2lu
ZG93ZWQgLS0tLS0tLS0tLS0tLSIpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRW
aWV3TW9kZU1lZGlhRmVhdHVyZSgid2luZG93ZWQiKTsKKworICAgIH0KKworPC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3RzKCkiPgorICAgIDxwPlRlc3QgdGhlIE1lZGlh
UXVlcnlMaXN0IGludGVyZmFjZTogPGEgaHJlZj0iaHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3Nz
b20tdmlldy8jdGhlLW1lZGlhcXVlcnlsaXN0LWludGVyZmFjZSIgdGl0bGU9IkNTU09NIFZpZXcg
TW9kdWxlIj5odHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9jc3NvbS12aWV3LyN0aGUtbWVkaWFxdWVy
eWxpc3QtaW50ZXJmYWNlPC9hPi48L3A+CisgICAgPHA+VGVzdGluZyByZW1vdmVMaXN0ZW5lciBp
biBkaWZmZXJlbnQgTWVkaWFRdWVyeUxpc3Qgb2JqZWN0cyBhbmQgdGhlIGNhbGxiYWNrIGNhbGwg
c2VxdWVuY2U8L3A+CisgICAgPGRpdiBpZD0icmVzdWx0cyI+CisgICAgPC9kaXY+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0
X2V4cGVjdGF0aW9ucy50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4
cGVjdGF0aW9ucy50eHQKaW5kZXggOGNjNGUwOS4uNDNlODYwMiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dApAQCAtMjQ5MSw4
ICsyNDkxLDEwIEBAIEJVRzM4NTc4IDogcGx1Z2lucy9vdmVycmlkZS1ub2RlLW1ldGhvZC5odG1s
ID0gVEVYVAogQlVHMzg2NTMgTUFDIDogZWRpdGluZy9zZWxlY3Rpb24vZmluZC15ZW5zaWduLWFu
ZC1iYWNrc2xhc2guaHRtbCA9IFRFWFQKIEJVRzM4NjU2IDogZmFzdC9tZWRpYS9wcmludC1yZXN0
b3Jlcy1wcmV2aW91cy1tZWRpYXR5cGUuaHRtbCA9IFRFWFQKIAotLy8gTmVlZHMgbGF5b3V0VGVz
dENvbnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoKSAoaW1wbGVtZW50ZWQgb24gUXQg
b25seSkKKy8vIE5lZWRzIGxheW91dFRlc3RDb250cm9sbGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0
dXJlKCkKIEJVRzQwNjgwIFNLSVAgOiBmYXN0L21lZGlhL3ZpZXctbW9kZS1tZWRpYS1mZWF0dXJl
Lmh0bWwgPSBGQUlMCitCVUc0MDY4MCBTS0lQIDogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0
LTAyLmh0bWwgPSBGQUlMCitCVUc0MDY4MCBTS0lQIDogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1s
aXN0LTAzLmh0bWwgPSBGQUlMCiAKIC8vIFVua25vd24gZmxha2luZXNzLgogQlVHMzg3MDYgOiBz
dmcvY3VzdG9tL2RlZXAtZHluYW1pYy11cGRhdGVzLnN2ZyA9IElNQUdFK1RFWFQgSU1BR0UgUEFT
UwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAppbmRleCA4ZGE1NzE5Li5mYTU5MWNkIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvU2tpcHBlZApAQCAtMTQwLDggKzE0MCwxMCBAQCBodHRwL3Rlc3RzL3BsdWdp
bnMvcGx1Z2luLWRvY3VtZW50LWhhcy1mb2N1cy5odG1sCiAjIE1pc3NlcyBzZXRNZWRpYVR5cGUo
KSBhbmQgaW1wbGVtZW50YXRpb24KIGZhc3QvbWVkaWEvcHJpbnQtcmVzdG9yZXMtcHJldmlvdXMt
bWVkaWF0eXBlLmh0bWwKIAotIyB2aWV3IG1vZGUgbWVkaWEgZmVhdHVyZQorIyBOZWVkcyBsYXlv
dXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSgpCiBmYXN0L21lZGlhL3Zp
ZXctbW9kZS1tZWRpYS1mZWF0dXJlLmh0bWwKK2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0w
Mi5odG1sCitmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMuaHRtbAogCiAjIFRlc3QgaXMg
Zmxha3kgYW5kIHRodXMgbm90IHVzZWZ1bCB1bnRpbCBmaXhlZC4KICMgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM2NjQyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCmlu
ZGV4IGI0M2U1MmMuLjJlZThhYjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dp
bi9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCkBAIC04NDgs
OCArODQ4LDEwIEBAIGZhc3QvZG9tL0hUTUxNZXRlckVsZW1lbnQvbWV0ZXItcGVyY2VudC1zaXpl
Lmh0bWwKIGZhc3QvZG9tL0hUTUxNZXRlckVsZW1lbnQvbWV0ZXItc3R5bGVzLmh0bWwKIGZhc3Qv
ZG9tL0hUTUxNZXRlckVsZW1lbnQvbWV0ZXItc3R5bGVzLWNoYW5naW5nLXBzZXVkby5odG1sCiAK
LSMgdmlldyBtb2RlIG1lZGlhIGZlYXR1cmUKKyMgTmVlZHMgbGF5b3V0VGVzdENvbnRyb2xsZXIu
c2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoKQogZmFzdC9tZWRpYS92aWV3LW1vZGUtbWVkaWEtZmVh
dHVyZS5odG1sCitmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDIuaHRtbAorZmFzdC9tZWRp
YS9tZWRpYS1xdWVyeS1saXN0LTAzLmh0bWwKIAogIyBOZWVkIGV4cGVjdGF0aW9ucy4gU2VlIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNjQ2MQogZmFzdC9yZXBhaW50
L292ZXJmbG93LXNjcm9sbC1ib2R5LWFwcGVhci5odG1sCmRpZmYgLS1naXQgYS9XZWJDb3JlL0No
YW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDY0NGFmMjYuLmNkYTA4MWMgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsOTkgQEAKKzIwMTAtMDktMDkgIEx1aXogQWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5i
b3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTWVkaWEgbGlzdGVuZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zNzIwNQorCisgICAgICAgIFY4IGFuZCBKUyBjb2RlIGdlbmVyYXRvcnMgY2hh
bmdlZCB0byBhY2NlcHQgdm9pZCBjYWxsYmFja3MuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JWOC5wbToKKworICAgICAgICBOZXcgaW50ZXJmYWNlcyBNZWRpYVF1ZXJ5TGlzdCBh
bmQgTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci4KKworICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5TGlz
dC5pZGw6IEFkZGVkLgorICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmlkbDog
QWRkZWQuCisKKyAgICAgICAgTWVkaWFRdWVyeUxpc3RMc2l0ZW5lciBpcyBhIGNhbGxiYWNrLiBD
dXN0b20gbWV0aG9kcyBhcmUgbmVlZGVkIHRvIGltcGxlbWVudAorICAgICAgICBjYWxsYmFjayBj
b21wYXJpc29uLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyQ3VzdG9tLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpKU01lZGlhUXVlcnlMaXN0
TGlzdGVuZXI6OnR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6SlNNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyOjppc0VxdWFsVG8pOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXJDdXN0b20uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlY4TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lcjo6dHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpWOE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXI6OmlzRXF1YWxUbyk6CisKKyAgICAgICAgQ2xhc3NlcyBNZWRpYVF1ZXJ5
TGlzdCBhbmQgTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci4KKworICAgICAgICAqIGNzcy9NZWRpYVF1
ZXJ5TGlzdC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeUxpc3Q6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdDo6TWVkaWFRdWVyeUxpc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeUxpc3Q6On5NZWRpYVF1ZXJ5TGlzdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdDo6bWVkaWEpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFRdWVyeUxpc3Q6OmNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVy
eUxpc3Q6OmFkZExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlMaXN0Ojpy
ZW1vdmVMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdDo6ZXZhbHVh
dGUpOgorICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5TGlzdC5oOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUXVlcnlMaXN0OjptYXRjaGVzKToKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVy
eUxpc3RMaXN0ZW5lci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlMaXN0
TGlzdGVuZXI6On5NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKToKKworICAgICAgICBUbyBhdm9pZCBh
ZGRpbmcgY29kZSB0byBjbGFzc2VzIERPTVdpbmRvdyBhbmQgRG9jdW1lbnQgYSBuZXcgY2xhc3Mg
TWVkaWFRdWVyeVZlY3RvciB3YXMKKyAgICAgICAgY3JlYXRlZC4KKworICAgICAgICAqIGNzcy9N
ZWRpYVF1ZXJ5VmVjdG9yLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5
TGlzdGVuZXI6Ok1lZGlhUXVlcnlMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1
ZXJ5TGlzdGVuZXI6On5NZWRpYVF1ZXJ5TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFRdWVyeUxpc3RlbmVyOjpldmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5
VmVjdG9yOjpNZWRpYVF1ZXJ5VmVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlW
ZWN0b3I6On5NZWRpYVF1ZXJ5VmVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlW
ZWN0b3I6OnRlcm1pbmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5VmVjdG9yOjpt
ZWRpYVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeVZlY3Rvcjo6cHJlcGFyZUV2
YWx1YXRvcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5VmVjdG9yOjptYXRjaE1lZGlh
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlWZWN0b3I6OmFkZExpc3RlbmVyKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlWZWN0b3I6OnJlbW92ZUxpc3RlbmVyKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlWZWN0b3I6OmV2YWx1YXRlKToKKyAgICAgICAgKiBjc3Mv
TWVkaWFRdWVyeVZlY3Rvci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlM
aXN0ZW5lcjo6bGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeUxpc3RlbmVy
OjpxdWVyeSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5VmVjdG9yOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeVZlY3Rvcjo6ZXZhbFJvdW5kKToKKworICAgICAg
ICBEb2N1bWVudCBhbmQgRE9NV2luZG93IGhhdmUgY2hhbmdlZCB0byBzdXBwb3J0IG5ldyBmZWF0
dXJlcy4gRE9NV2luZG93IGlzIHRoZSBjbGFzcyB0aGF0CisgICAgICAgIHB1Ymxpc2hlcyBtZXRo
b2RzIG1hdGNoTWVkaWEgYnV0IGZvciBwYWdlIGNhY2hlIHRvIHdvcmsgcHJvcGVybHkgRG9jdW1l
bnQgaXMgdGhlIG93bmVyIG9mIHRoZQorICAgICAgICBNZWRpYVF1ZXJ5VmVjdG9yIGluc3RhbmNl
LgorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50Ojp+RG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Om1hdGNoTWVkaWEp
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnN0eWxlU2VsZWN0b3JDaGFuZ2VkKToKKyAg
ICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6Om1hdGNoTWVkaWEpOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NV2luZG93OjpjbGVhcik6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6ZGVmYXVsdFN0YXR1cyk6CisgICAgICAgICogcGFnZS9E
T01XaW5kb3cuaWRsOgorCisgICAgICAgIEJ1aWxkIHN5c3RlbXMgaXNzdWVzLgorCisgICAgICAg
ICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAg
ICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5wcmk6CisgICAgICAgICogV2Vi
Q29yZS5wcm86CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIGJpbmRpbmdzL2dvYmplY3QvR05VbWFrZWZpbGUuYW06CisKKyAgICAgICAgVGVz
dHM6IGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMS5odG1sCisgICAgICAgICAgICAgICBm
YXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9t
ZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAzLmh0bWwKKworCiAyMDEwLTA5LTA5ICBWaW5jZW50IFNj
aGVpYiAgPHNjaGVpYkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSmFtZXMg
Um9iaW5zb24uCmRpZmYgLS1naXQgYS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggNmZkMWNkZS4uZmRlM2ZiYyAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQpAQCAtMjU3LDYgKzI1Nyw4IEBAIERPTV9DTEFTU0VTID0gXAogICAgIExvY2F0aW9u
IFwKICAgICBNZWRpYUVycm9yIFwKICAgICBNZWRpYUxpc3QgXAorICAgIE1lZGlhUXVlcnlMaXN0
IFwKKyAgICBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIFwKICAgICBNZW1vcnlJbmZvIFwKICAgICBN
ZXNzYWdlQ2hhbm5lbCBcCiAgICAgTWVzc2FnZUV2ZW50IFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
R05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDU3M2I3ZGIuLjg3
NmMxYmIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9H
TlVtYWtlZmlsZS5hbQpAQCAtNDE1LDYgKzQxNSwxMCBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMg
Kz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYUVycm9yLmggXAogCURlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNNZWRpYUxpc3QuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTTWVkaWFMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVF1ZXJ5TGlz
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVF1ZXJ5TGlzdC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggXAogCURlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZW1vcnlJbmZvLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU01lbW9yeUluZm8uaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lc3NhZ2VD
aGFubmVsLmNwcCBcCkBAIC03MjEsNiArNzI1LDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlX
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTG9jYXRpb25DdXN0b20uaCBcCiAJV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU01haW5UaHJlYWRFeGVjU3RhdGUuY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pT
TWFpblRocmVhZEV4ZWNTdGF0ZS5oIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVkaWFRdWVy
eUxpc3RMaXN0ZW5lckN1c3RvbS5jcHAgXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdl
Q2hhbm5lbEN1c3RvbS5jcHAgXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRD
dXN0b20uY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uY3Bw
IFwKQEAgLTk0MCwxMSArOTQ1LDE2IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9j
c3MvTWVkaWFMaXN0LmNwcCBcCiAJV2ViQ29yZS9jc3MvTWVkaWFMaXN0LmggXAogCVdlYkNvcmUv
Y3NzL01lZGlhUXVlcnkuY3BwIFwKKwlXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5LmggXAogCVdlYkNv
cmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwIFwKIAlXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5
RXZhbHVhdG9yLmggXAogCVdlYkNvcmUvY3NzL01lZGlhUXVlcnlFeHAuY3BwIFwKIAlXZWJDb3Jl
L2Nzcy9NZWRpYVF1ZXJ5RXhwLmggXAotCVdlYkNvcmUvY3NzL01lZGlhUXVlcnkuaCBcCisJV2Vi
Q29yZS9jc3MvTWVkaWFRdWVyeUxpc3QuY3BwIFwKKwlXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlz
dC5oIFwKKwlXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggXAorCVdlYkNvcmUv
Y3NzL01lZGlhUXVlcnlWZWN0b3IuY3BwIFwKKwlXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5VmVjdG9y
LmggXAogCVdlYkNvcmUvY3NzL1BhaXIuaCBcCiAJV2ViQ29yZS9jc3MvUmVjdC5oIFwKIAlXZWJD
b3JlL2Nzcy9SR0JDb2xvci5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkg
Yi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA4Mzg5MGI2Li45YWZmZTE3IDEwMDY0NAotLS0g
YS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMTks
NiArMTksOCBAQAogICAgICAgICAgICAgJ2Nzcy9DU1NWYXJpYWJsZXNSdWxlLmlkbCcsCiAgICAg
ICAgICAgICAnY3NzL0NvdW50ZXIuaWRsJywKICAgICAgICAgICAgICdjc3MvTWVkaWFMaXN0Lmlk
bCcsCisgICAgICAgICAgICAnY3NzL01lZGlhUXVlcnlMaXN0LmlkbCcsCisgICAgICAgICAgICAn
Y3NzL01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaWRsJywKICAgICAgICAgICAgICdjc3MvUmVjdC5p
ZGwnLAogICAgICAgICAgICAgJ2Nzcy9SR0JDb2xvci5pZGwnLAogICAgICAgICAgICAgJ2Nzcy9T
dHlsZU1lZGlhLmlkbCcsCkBAIC03ODgsNiArNzkwLDcgQEAKICAgICAgICAgICAgICdiaW5kaW5n
cy92OC9jdXN0b20vVjhJbnNwZWN0b3JGcm9udGVuZEhvc3RDdXN0b20uY3BwJywKICAgICAgICAg
ICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhKYXZhU2NyaXB0Q2FsbEZyYW1lQ3VzdG9tLmNwcCcs
CiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4TG9jYXRpb25DdXN0b20uY3BwJywK
KyAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2FnZUNo
YW5uZWxDb25zdHJ1Y3Rvci5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OE1lc3NhZ2VFdmVudEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOE1lc3NhZ2VQb3J0Q3VzdG9tLmNwcCcsCkBAIC0xMDQ2LDExICsxMDQ5LDE2IEBACiAgICAg
ICAgICAgICAnY3NzL01lZGlhTGlzdC5jcHAnLAogICAgICAgICAgICAgJ2Nzcy9NZWRpYUxpc3Qu
aCcsCiAgICAgICAgICAgICAnY3NzL01lZGlhUXVlcnkuY3BwJywKKyAgICAgICAgICAgICdjc3Mv
TWVkaWFRdWVyeS5oJywKICAgICAgICAgICAgICdjc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAn
LAogICAgICAgICAgICAgJ2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmgnLAogICAgICAgICAgICAg
J2Nzcy9NZWRpYVF1ZXJ5RXhwLmNwcCcsCiAgICAgICAgICAgICAnY3NzL01lZGlhUXVlcnlFeHAu
aCcsCi0gICAgICAgICAgICAnY3NzL01lZGlhUXVlcnkuaCcsCisgICAgICAgICAgICAnY3NzL01l
ZGlhUXVlcnlMaXN0LmNwcCcsCisgICAgICAgICAgICAnY3NzL01lZGlhUXVlcnlMaXN0LmgnLAor
ICAgICAgICAgICAgJ2Nzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgnLAorICAgICAgICAgICAg
J2Nzcy9NZWRpYVF1ZXJ5VmVjdG9yLmNwcCcsCisgICAgICAgICAgICAnY3NzL01lZGlhUXVlcnlW
ZWN0b3IuaCcsCiAgICAgICAgICAgICAnY3NzL1BhaXIuaCcsCiAgICAgICAgICAgICAnY3NzL1Jl
Y3QuaCcsCiAgICAgICAgICAgICAnY3NzL1JHQkNvbG9yLmNwcCcsCmRpZmYgLS1naXQgYS9XZWJD
b3JlL1dlYkNvcmUucHJpIGIvV2ViQ29yZS9XZWJDb3JlLnByaQppbmRleCBhNGM2OWIxLi44MzI3
NDRiIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJpCisrKyBiL1dlYkNvcmUvV2ViQ29y
ZS5wcmkKQEAgLTgxLDYgKzgxLDggQEAgSURMX0JJTkRJTkdTICs9IFwKICAgICBjc3MvQ1NTVmFy
aWFibGVzRGVjbGFyYXRpb24uaWRsIFwKICAgICBjc3MvQ1NTVmFyaWFibGVzUnVsZS5pZGwgXAog
ICAgIGNzcy9NZWRpYUxpc3QuaWRsIFwKKyAgICBjc3MvTWVkaWFRdWVyeUxpc3QuaWRsIFwKKyAg
ICBjc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5pZGwgXAogICAgIGNzcy9SZWN0LmlkbCBcCiAg
ICAgY3NzL1JHQkNvbG9yLmlkbCBcCiAgICAgY3NzL1N0eWxlTWVkaWEuaWRsIFwKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IGI5ZDQw
ZmMuLjhlZDk2YWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29y
ZS9XZWJDb3JlLnBybwpAQCAtMzQ3LDYgKzM0Nyw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGJpbmRp
bmdzL2pzL0pTSW5qZWN0ZWRTY3JpcHRIb3N0Q3VzdG9tLmNwcCBcCiAgICAgYmluZGluZ3MvanMv
SlNJbnNwZWN0b3JGcm9udGVuZEhvc3RDdXN0b20uY3BwIFwKICAgICBiaW5kaW5ncy9qcy9KU0xv
Y2F0aW9uQ3VzdG9tLmNwcCBcCisgICAgYmluZGluZ3MvanMvSlNNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyQ3VzdG9tLmNwcCBcCiAgICAgYmluZGluZ3MvanMvSlNOYW1lZE5vZGVNYXBDdXN0b20uY3Bw
IFwKICAgICBiaW5kaW5ncy9qcy9KU05hdmlnYXRvckN1c3RvbS5jcHAgIFwKICAgICBiaW5kaW5n
cy9qcy9KU05vZGVDdXN0b20uY3BwIFwKQEAgLTQ1Niw2ICs0NTcsOCBAQCBTT1VSQ0VTICs9IFwK
ICAgICBjc3MvTWVkaWFRdWVyeS5jcHAgXAogICAgIGNzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNw
cCBcCiAgICAgY3NzL01lZGlhUXVlcnlFeHAuY3BwIFwKKyAgICBjc3MvTWVkaWFRdWVyeUxpc3Qu
Y3BwIFwKKyAgICBjc3MvTWVkaWFRdWVyeVZlY3Rvci5jcHAgXAogICAgIGNzcy9SR0JDb2xvci5j
cHAgXAogICAgIGNzcy9TaGFkb3dWYWx1ZS5jcHAgXAogICAgIGNzcy9TdHlsZUJhc2UuY3BwIFwK
QEAgLTEyNDQsNiArMTI0Nyw5IEBAIEhFQURFUlMgKz0gXAogICAgIGNzcy9NZWRpYUxpc3QuaCBc
CiAgICAgY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuaCBcCiAgICAgY3NzL01lZGlhUXVlcnlFeHAu
aCBcCisgICAgY3NzL01lZGlhUXVlcnlMaXN0LmggXAorICAgIGNzcy9NZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyLmggXAorICAgIGNzcy9NZWRpYVF1ZXJ5VmVjdG9yLmggXAogICAgIGNzcy9NZWRpYVF1
ZXJ5LmggXAogICAgIGNzcy9SR0JDb2xvci5oIFwKICAgICBjc3MvU2hhZG93VmFsdWUuaCBcCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDEwMjdmZWMuLjcz
ZTExYjQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01
MTcwLDYgKzUxNzAsMTYgQEAKIAkJRDIzQ0E1NkMwQUIwRUI4RDAwNTEwOEE1IC8qIFJhbmdlRXhj
ZXB0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBE
MjNDQTU2QjBBQjBFQjhEMDA1MTA4QTUgLyogUmFuZ2VFeGNlcHRpb24uaCAqLzsgfTsKIAkJRDM5
RDAwNkQxMUY4RTMwODAwNjA0MUYyIC8qIFBvcHVwTWVudU1hYy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDM5RDAwNkMxMUY4RTMwODAwNjA0MUYyIC8q
IFBvcHVwTWVudU1hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUQzOUQwMDlEMTFGOTA3RTYwMDYwNDFGMiAvKiBTZWFyY2hQb3B1cE1lbnVNYWMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzOUQwMDlD
MTFGOTA3RTYwMDYwNDFGMiAvKiBTZWFyY2hQb3B1cE1lbnVNYWMuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlEM0E5NEEzODEyMkRBQkFDMDBBMzdC
QkMgLyogTWVkaWFRdWVyeUxpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRDNBOTRBMzExMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0
LmNwcCAqLzsgfTsKKwkJRDNBOTRBMzkxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0E5NEEz
MjEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeUxpc3QuaCAqLzsgfTsKKwkJRDNBOTRBM0Ix
MjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQTk0QTM0MTIyREFCQUMwMEEzN0JC
QyAvKiBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggKi87IH07CisJCUQzQTk0QTNEMTIyREFCQUMw
MEEzN0JCQyAvKiBNZWRpYVF1ZXJ5VmVjdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQTk0QTM2MTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1
ZXJ5VmVjdG9yLmNwcCAqLzsgfTsKKwkJRDNBOTRBM0UxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlh
UXVlcnlWZWN0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEQzQTk0QTM3MTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5VmVjdG9yLmggKi87IH07
CisJCUQzQTk0QTQ2MTIyREM0MEYwMEEzN0JCQyAvKiBKU01lZGlhUXVlcnlMaXN0LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQTk0QTQyMTIyREM0
MEYwMEEzN0JCQyAvKiBKU01lZGlhUXVlcnlMaXN0LmNwcCAqLzsgfTsKKwkJRDNBOTRBNDcxMjJE
QzQwRjAwQTM3QkJDIC8qIEpTTWVkaWFRdWVyeUxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQTk0QTQzMTIyREM0MEYwMEEzN0JCQyAvKiBKU01l
ZGlhUXVlcnlMaXN0LmggKi87IH07CisJCUQzQTk0QTQ4MTIyREM0MEYwMEEzN0JCQyAvKiBKU01l
ZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRDNBOTRBNDQxMjJEQzQwRjAwQTM3QkJDIC8qIEpTTWVkaWFRdWVyeUxp
c3RMaXN0ZW5lci5jcHAgKi87IH07CisJCUQzQTk0QTQ5MTIyREM0MEYwMEEzN0JCQyAvKiBKU01l
ZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEQzQTk0QTQ1MTIyREM0MEYwMEEzN0JCQyAvKiBKU01lZGlhUXVlcnlMaXN0
TGlzdGVuZXIuaCAqLzsgfTsKKwkJRDNGREVEOUMxMjJFRkM2QTAwOEY1MjZGIC8qIEpTTWVkaWFR
dWVyeUxpc3RMaXN0ZW5lckN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBEM0ZERUQ5QjEyMkVGQzZBMDA4RjUyNkYgLyogSlNNZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyQ3VzdG9tLmNwcCAqLzsgfTsKIAkJRDhCNjE1MkYxMDMyNDk1MTAwQzg1NTRB
IC8qIENvb2tpZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRDhCNjE1MkUxMDMyNDk1MTAwQzg1NTRBIC8qIENvb2tpZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCURCMjNDMkNCMEE1MDhEMjkwMDI0ODlF
QiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBEQjIzQzJDOTBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0
ZGVudENvbW1hbmQuY3BwICovOyB9OwogCQlEQjIzQzJDQzBBNTA4RDI5MDAyNDg5RUIgLyogSW5k
ZW50T3V0ZGVudENvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IERCMjNDMkNBMEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFu
ZC5oICovOyB9OwpAQCAtMTEwMDYsNiArMTEwMTYsMTggQEAKIAkJRDIzQ0E1NkIwQUIwRUI4RDAw
NTEwOEE1IC8qIFJhbmdlRXhjZXB0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSYW5nZUV4Y2VwdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMzlE
MDA2QzExRjhFMzA4MDA2MDQxRjIgLyogUG9wdXBNZW51TWFjLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFBvcHVwTWVudU1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlEMzlEMDA5QzExRjkwN0U2MDA2MDQxRjIgLyogU2VhcmNoUG9wdXBNZW51TWFjLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlYXJjaFBvcHVwTWVudU1hYy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEM0E5NEEzMTEyMkRBQkFDMDBBMzdCQkMgLyogTWVk
aWFRdWVyeUxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVk
aWFRdWVyeUxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEM0E5NEEzMjEy
MkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeUxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTWVkaWFRdWVyeUxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRDNBOTRBMzMxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0LmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBNZWRpYVF1ZXJ5TGlzdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUQzQTk0QTM0MTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDNBOTRBMzUxMjJEQUJBQzAw
QTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlEM0E5NEEzNjEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeVZlY3Rvci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVF1ZXJ5VmVjdG9yLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDNBOTRBMzcxMjJEQUJBQzAwQTM3QkJDIC8q
IE1lZGlhUXVlcnlWZWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVk
aWFRdWVyeVZlY3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEM0E5NEE0MjEy
MkRDNDBGMDBBMzdCQkMgLyogSlNNZWRpYVF1ZXJ5TGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU01lZGlhUXVlcnlMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRDNBOTRBNDMxMjJEQzQwRjAwQTM3QkJDIC8qIEpTTWVkaWFRdWVyeUxp
c3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNZWRpYVF1ZXJ5TGlzdC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEM0E5NEE0NDEyMkRDNDBGMDBBMzdCQkMg
LyogSlNNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUQzQTk0QTQ1MTIyREM0MEYwMEEzN0JCQyAvKiBKU01lZGlhUXVlcnlM
aXN0TGlzdGVuZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQzRkRFRDlC
MTIyRUZDNkEwMDhGNTI2RiAvKiBKU01lZGlhUXVlcnlMaXN0TGlzdGVuZXJDdXN0b20uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDhCNjE1MkUxMDMy
NDk1MTAwQzg1NTRBIC8qIENvb2tpZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBDb29raWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREIyM0MyQzkwQTUwOEQy
OTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBJbmRlbnRPdXRkZW50Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCURCMjNDMkNBMEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRk
ZW50Q29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5kZW50T3V0
ZGVudENvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1MDU3LDYgKzE1
MDc5LDEwIEBACiAJCQkJQkM2ODZDN0EwRTBDMzMwMTAwREU4QTA4IC8qIEpTQ1NTVmFyaWFibGVz
UnVsZS5jcHAgKi8sCiAJCQkJQkM2ODZDN0IwRTBDMzMwMTAwREU4QTA4IC8qIEpTQ1NTVmFyaWFi
bGVzUnVsZS5oICovLAogCQkJCUJDM0MzOUI0MEMwRDNEOEQwMDVGNEQ3QSAvKiBKU01lZGlhTGlz
dC5jcHAgKi8sCisJCQkJRDNBOTRBNDIxMjJEQzQwRjAwQTM3QkJDIC8qIEpTTWVkaWFRdWVyeUxp
c3QuY3BwICovLAorCQkJCUQzQTk0QTQzMTIyREM0MEYwMEEzN0JCQyAvKiBKU01lZGlhUXVlcnlM
aXN0LmggKi8sCisJCQkJRDNBOTRBNDQxMjJEQzQwRjAwQTM3QkJDIC8qIEpTTWVkaWFRdWVyeUxp
c3RMaXN0ZW5lci5jcHAgKi8sCisJCQkJRDNBOTRBNDUxMjJEQzQwRjAwQTM3QkJDIC8qIEpTTWVk
aWFRdWVyeUxpc3RMaXN0ZW5lci5oICovLAogCQkJCUJDM0MzOUI1MEMwRDNEOEQwMDVGNEQ3QSAv
KiBKU01lZGlhTGlzdC5oICovLAogCQkJCUJDRkUyRjBGMEMxQjU4MzcwMDIwMjM1RiAvKiBKU1Jl
Y3QuY3BwICovLAogCQkJCUJDRkUyRjEwMEMxQjU4MzcwMDIwMjM1RiAvKiBKU1JlY3QuaCAqLywK
QEAgLTE2MzM2LDYgKzE2MzYyLDcgQEAKIAkJCQk0OUVFQ0Y3MTEwNTA4RDlDMDAwOTlGQUIgLyog
SlNJbnQ4QXJyYXlDdXN0b20uY3BwICovLAogCQkJCTFDNUZBRUU2MERDRkRBNjgwMEQ1OEY3OCAv
KiBKU0phdmFTY3JpcHRDYWxsRnJhbWVDdXN0b20uY3BwICovLAogCQkJCUJDRTFDNDNGMEQ5ODMw
RjQwMDNCMDJGMiAvKiBKU0xvY2F0aW9uQ3VzdG9tLmNwcCAqLywKKwkJCQlEM0ZERUQ5QjEyMkVG
QzZBMDA4RjUyNkYgLyogSlNNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ3VzdG9tLmNwcCAqLywKIAkJ
CQlFMUE1Rjk5QTBFN0VBQTI1MDBBRjg1RUEgLyogSlNNZXNzYWdlQ2hhbm5lbEN1c3RvbS5jcHAg
Ki8sCiAJCQkJNDEwQjdFNzExMDQ1RkFCMDAwRDgyMjRGIC8qIEpTTWVzc2FnZUV2ZW50Q3VzdG9t
LmNwcCAqLywKIAkJCQlFMUFERUQ0NjBFNzZCOEREMDA0QTFBNUUgLyogSlNNZXNzYWdlUG9ydEN1
c3RvbS5jcHAgKi8sCkBAIC0xNzA1Nyw2ICsxNzA4NCwxMyBAQAogCQkJCTRFMTk1OTI2MEEzOURB
Q0MwMDIyMEZFNSAvKiBNZWRpYVF1ZXJ5RXZhbHVhdG9yLmggKi8sCiAJCQkJNEUxOTU5MjcwQTM5
REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnlFeHAuY3BwICovLAogCQkJCTRFMTk1OTI4MEEzOURB
Q0MwMDIyMEZFNSAvKiBNZWRpYVF1ZXJ5RXhwLmggKi8sCisJCQkJRDNBOTRBMzExMjJEQUJBQzAw
QTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0LmNwcCAqLywKKwkJCQlEM0E5NEEzMjEyMkRBQkFDMDBB
MzdCQkMgLyogTWVkaWFRdWVyeUxpc3QuaCAqLywKKwkJCQlEM0E5NEEzMzEyMkRBQkFDMDBBMzdC
QkMgLyogTWVkaWFRdWVyeUxpc3QuaWRsICovLAorCQkJCUQzQTk0QTM0MTIyREFCQUMwMEEzN0JC
QyAvKiBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggKi8sCisJCQkJRDNBOTRBMzUxMjJEQUJBQzAw
QTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaWRsICovLAorCQkJCUQzQTk0QTM2MTIy
REFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5VmVjdG9yLmNwcCAqLywKKwkJCQlEM0E5NEEzNzEy
MkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeVZlY3Rvci5oICovLAogCQkJCUE4MEU2Q0QxMEEx
OTg5Q0EwMDdGQjhDNSAvKiBQYWlyLmggKi8sCiAJCQkJOTNDQTRDOUYwOURGOTNGQTAwREY4Njc3
IC8qIHF1aXJrcy5jc3MgKi8sCiAJCQkJQkM0MzY4RTcwQzIyNkUzMjAwNUVGQjVGIC8qIFJlY3Qu
aCAqLywKQEAgLTIwNDY3LDYgKzIwNTAxLDExIEBACiAJCQkJOTcyMDVBQjYxMjM5MjkxMDAwQjE3
MzgwIC8qIEltYWdlRG9jdW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3MjA1QUI4MTIzOTI5
MTAwMEIxNzM4MCAvKiBNZWRpYURvY3VtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzIwNUFC
QzEyMzkyOTI3MDBCMTczODAgLyogUGx1Z2luRG9jdW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUQzQTk0QTM5MTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJRDNBOTRBM0IxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUQzQTk0QTNFMTIyREFCQUMwMEEzN0JCQyAvKiBNZWRp
YVF1ZXJ5VmVjdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQlEM0E5NEE0NzEyMkRDNDBGMDBBMzdC
QkMgLyogSlNNZWRpYVF1ZXJ5TGlzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRDNBOTRBNDkxMjJE
QzQwRjAwQTM3QkJDIC8qIEpTTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07
CkBAIC0yMjkzNSw2ICsyMjk3NCwxMSBAQAogCQkJCTk3MjA1QUI1MTIzOTI5MTAwMEIxNzM4MCAv
KiBJbWFnZURvY3VtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3MjA1QUI3MTIzOTI5MTAw
MEIxNzM4MCAvKiBNZWRpYURvY3VtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3MjA1QUJC
MTIzOTI5MjcwMEIxNzM4MCAvKiBQbHVnaW5Eb2N1bWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlEM0E5NEEzODEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeUxpc3QuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJRDNBOTRBM0QxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlWZWN0b3Iu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRDNBOTRBNDYxMjJEQzQwRjAwQTM3QkJDIC8qIEpTTWVk
aWFRdWVyeUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRDNBOTRBNDgxMjJEQzQwRjAwQTM3
QkJDIC8qIEpTTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlE
M0ZERUQ5QzEyMkVGQzZBMDA4RjUyNkYgLyogSlNNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ3VzdG9t
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHBy
b2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0
L0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dOVW1ha2VmaWxlLmFt
CmluZGV4IDEyODM1Y2MuLmYzZWZmMWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvZ29i
amVjdC9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvR05VbWFr
ZWZpbGUuYW0KQEAgLTE5Miw2ICsxOTIsMTAgQEAgd2Via2l0Z3RrX2dkb21fYnVpbHRfc291cmNl
cyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTU1lZGlhRXJyb3JQcml2YXRl
LmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01NZWRpYUxpc3QuY3BwIFwKIAlE
ZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NTWVkaWFMaXN0UHJpdmF0ZS5oIFwKKwlEZXJp
dmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NTWVkaWFRdWVyeUxpc3QuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy93ZWJraXQvV2ViS2l0RE9NTWVkaWFRdWVyeUxpc3RQcml2YXRlLmggXAorCURlcml2
ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTU1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcml2
YXRlLmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01NZW1vcnlJbmZvLmNwcCBc
CiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTU1lbW9yeUluZm9Qcml2YXRlLmggXAog
CURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01NZXNzYWdlUG9ydC5jcHAgXApAQCAtMjUw
LDYgKzI1NCw4IEBAIHdlYmtpdGd0a19idWlsdF9oX2FwaSArPSBcCiAJRGVyaXZlZFNvdXJjZXMv
d2Via2l0L1dlYktpdERPTUNTU1N0eWxlU2hlZXQuaCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0
L1dlYktpdERPTUNTU1ZhbHVlLmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01N
ZWRpYUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTU1lZGlhUXVlcnlM
aXN0LmggXAorCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01NZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyLmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01TdHlsZU1lZGlhLmgg
XAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01TdHlsZVNoZWV0LmggXAogCURlcml2
ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01TdHlsZVNoZWV0TGlzdC5oIFwKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ3VzdG9tLmNwcCBi
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ3VzdG9tLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNjYyMTdiCi0tLSAvZGV2L251bGwK
KysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lZGlhUXVlcnlMaXN0TGlzdGVuZXJDdXN0b20u
Y3BwCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkpTTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oIgorCisjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvQVBJQ2FzdC5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pT
VmFsdWVSZWYuaD4KKworI2luY2x1ZGUgPHJ1bnRpbWUvSlNPYmplY3QuaD4KKyNpbmNsdWRlIDxy
dW50aW1lL0pTVmFsdWUuaD4KKwordXNpbmcgbmFtZXNwYWNlIEpTQzsKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitpbnQgSlNNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjp0eXBlKCkKK3sKKyAgICBy
ZXR1cm4gSlNNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyVHlwZTsKK30KKworYm9vbCBKU01lZGlhUXVl
cnlMaXN0TGlzdGVuZXI6OmlzRXF1YWxUbyhNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKiBvdGhlcikK
K3sKKyAgICBpZiAoIW90aGVyIHx8IHR5cGUoKSAhPSBvdGhlci0+dHlwZSgpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICBKU01lZGlhUXVlcnlMaXN0TGlzdGVuZXIqIHB0ciA9IHN0YXRp
Y19jYXN0PEpTTWVkaWFRdWVyeUxpc3RMaXN0ZW5lcio+KG90aGVyKTsKKworICAgIGlmIChtX2Rh
dGEtPmNhbGxiYWNrKCkgPT0gSlNDOjpKU1ZhbHVlKCkpCisgICAgICAgIHJldHVybiBwdHItPm1f
ZGF0YS0+Y2FsbGJhY2soKSA9PSBKU0M6OkpTVmFsdWUoKTsKKworICAgIEV4ZWNTdGF0ZSogZXhl
YyA9IG1fZGF0YS0+Z2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKTsKKyAgICByZXR1cm4gSlNW
YWx1ZUlzRXF1YWwodG9SZWYoZXhlYyksIHRvUmVmKGV4ZWMsIG1fZGF0YS0+Y2FsbGJhY2soKSks
IHRvUmVmKGV4ZWMsIHB0ci0+bV9kYXRhLT5jYWxsYmFjaygpKSwgMCk7Cit9CisKK30KKwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggMWExMTRhNC4u
YjJhNjI1MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbQorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBt
CkBAIC02LDYgKzYsNyBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDks
IDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIyBDb3B5cmlnaHQgKEMpIDIw
MDkgQ2FtZXJvbiBNY0Nvcm1hY2sgPGNhbUBtY2MuaWQuYXU+CiAjIENvcHlyaWdodCAoQykgUmVz
ZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29w
eXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgt
aWVzKQogIwogIyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCiAjIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMTE3LDYgKzIxMTgsMTMgQEAgc3ViIEdlbmVyYXRl
SW1wbGVtZW50YXRpb24KICAgICBwdXNoKEBpbXBsQ29udGVudCwgIlxuI2VuZGlmIC8vICR7Y29u
ZGl0aW9uYWxTdHJpbmd9XG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CiB9CiAKK3N1YiBHZXRO
YXRpdmVUeXBlRm9yQ2FsbGJhY2tzCit7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKyAgICByZXR1
cm4gInZvaWQiIGlmICgkdHlwZSBlcSAidm9pZCIpOworICAgIHJldHVybiBHZXROYXRpdmVUeXBl
KCR0eXBlKTsKK30KKwogc3ViIEdlbmVyYXRlQ2FsbGJhY2tIZWFkZXIKIHsKICAgICBteSAkb2Jq
ZWN0ID0gc2hpZnQ7CkBAIC0yMTUzLDExICsyMTYxLDE0IEBAIHN1YiBHZW5lcmF0ZUNhbGxiYWNr
SGVhZGVyCiAgICAgICAgIGZvcmVhY2ggbXkgJGZ1bmN0aW9uIChAeyRkYXRhTm9kZS0+ZnVuY3Rp
b25zfSkgewogICAgICAgICAgICAgbXkgQHBhcmFtcyA9IEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJz
fTsKICAgICAgICAgICAgIGlmICghJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJDdXN0b20ifSAmJgotICAgICAgICAgICAgICAgICEoR2V0TmF0aXZlVHlwZSgkZnVu
Y3Rpb24tPnNpZ25hdHVyZS0+dHlwZSkgZXEgImJvb2wiKSkgeworICAgICAgICAgICAgICAgICEo
JGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUgZXEgImJvb2xlYW4iKSAmJiAhKCRmdW5jdGlvbi0+
c2lnbmF0dXJlLT50eXBlIGVxICJ2b2lkIikpIHsKKyAgICAgICAgICAgICAgICAjIHB1dCBhIENP
TVBJTEVfQVNTRVJUKGZhbHNlKSBpbiBoZWFkZXIgZmlsZSBpZiB0aGUgbWV0aG9kIGlzIG5vdCAn
Q3VzdG9tJworICAgICAgICAgICAgICAgICMgYW5kIGl0cyBzaWduYXR1cmUgdHlwZSBpcyBub3Qg
Ym9vbGVhbiBvciB2b2lkLgorICAgICAgICAgICAgICAgICMgbm8gc2lnbmF0dXJlIHR5cGUgb3Ro
ZXIgdGhlbiBib29sZWFuIGFuZCB2b2lkIGlzIGFjY2VwdGVkLgogICAgICAgICAgICAgICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICIgICAgQ09NUElMRV9BU1NFUlQoZmFsc2UpIik7CiAgICAgICAg
ICAgICB9CiAKLSAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCAi
IC4gR2V0TmF0aXZlVHlwZSgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSkgLiAiICIgLiAkZnVu
Y3Rpb24tPnNpZ25hdHVyZS0+bmFtZSAuICIoIik7CisgICAgICAgICAgICBwdXNoKEBoZWFkZXJD
b250ZW50LCAiICAgIHZpcnR1YWwgIiAuIEdldE5hdGl2ZVR5cGVGb3JDYWxsYmFja3MoJGZ1bmN0
aW9uLT5zaWduYXR1cmUtPnR5cGUpIC4gIiAiIC4gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWUg
LiAiKCIpOwogCiAgICAgICAgICAgICBteSBAYXJncyA9ICgpOwogICAgICAgICAgICAgZm9yZWFj
aCBteSAkcGFyYW0gKEBwYXJhbXMpIHsKQEAgLTIyMzIsMTIgKzIyNDMsMTYgQEAgc3ViIEdlbmVy
YXRlQ2FsbGJhY2tJbXBsZW1lbnRhdGlvbgogICAgICAgICBmb3JlYWNoIG15ICRmdW5jdGlvbiAo
QHskZGF0YU5vZGUtPmZ1bmN0aW9uc30pIHsKICAgICAgICAgICAgIG15IEBwYXJhbXMgPSBAeyRm
dW5jdGlvbi0+cGFyYW1ldGVyc307CiAgICAgICAgICAgICBpZiAoJGZ1bmN0aW9uLT5zaWduYXR1
cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b20ifSB8fAotICAgICAgICAgICAgICAgICEo
R2V0TmF0aXZlVHlwZSgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSkgZXEgImJvb2wiKSkgewor
ICAgICAgICAgICAgICAgICghKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlIGVxICJib29sZWFu
IikgJiYgISgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSBlcSAidm9pZCIpKSkgeworICAgICAg
ICAgICAgICAgICMgaWdub3JlIHRoZSBtZXRob2QgaWYgaGFzICdDdXN0b20nIGF0dHJpYnV0ZSBv
ciBpZgorICAgICAgICAgICAgICAgICMgaXRzIHNpZ25hdHVyZSB0eXBlIGlzIGRpZmZlcmVudCBv
ZiBib29sZWFuIGFuZCB2b2lkLgorICAgICAgICAgICAgICAgICMgaWYgdGhlIHNpZ25hdHVyZSB0
eXBlIGRpZmZlcmVudCBvZiBib29sZWFuIGFuZCB2b2lkIHRoZW4gYQorICAgICAgICAgICAgICAg
ICMgQ09NUElMRV9BU1NFUlQoZmFsc2UpIGhhcyBiZWVuIGFkZGVkIHRvIHRoZSBoZWFkZXIgZmls
ZS4KICAgICAgICAgICAgICAgICBuZXh0OwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBB
ZGRJbmNsdWRlc0ZvclR5cGUoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUpOwotICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICJcbiIgLiBHZXROYXRpdmVUeXBlKCRmdW5jdGlvbi0+c2ln
bmF0dXJlLT50eXBlKSAuICIgJHtjbGFzc05hbWV9OjoiIC4gJGZ1bmN0aW9uLT5zaWduYXR1cmUt
Pm5hbWUgLiAiKCIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbiIgLiBHZXRO
YXRpdmVUeXBlRm9yQ2FsbGJhY2tzKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlKSAuICIgJHtj
bGFzc05hbWV9OjoiIC4gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWUgLiAiKCIpOwogCiAgICAg
ICAgICAgICBteSBAYXJncyA9ICgpOwogICAgICAgICAgICAgZm9yZWFjaCBteSAkcGFyYW0gKEBw
YXJhbXMpIHsKQEAgLTIyNDksNyArMjI2NCwxMyBAQCBzdWIgR2VuZXJhdGVDYWxsYmFja0ltcGxl
bWVudGF0aW9uCiAKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoIWNhbkludm9rZUNhbGxiYWNrKCkp
XG4iKTsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4gdHJ1
ZTtcblxuIik7CisKKyAgICAgICAgICAgICMgYm9vbGVhbiBhbmQgdm9pZCBhcmUgdGhlIG9ubHkg
cG9zc2libGUgc2lnbmF0dXJlIHR5cGVzLgorICAgICAgICAgICAgaWYgKEdldE5hdGl2ZVR5cGUo
JGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUpIGVxICJib29sIikgeworICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4gdHJ1ZTtcblxuIik7CisgICAgICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAg
ICByZXR1cm47XG5cbiIpOworICAgICAgICAgICAgfQogICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgUmVmUHRyPCRjbGFzc05hbWU+IHByb3RlY3QodGhpcyk7XG5cbiIpOwogICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgSlNMb2NrIGxvY2soU2lsZW5jZUFzc2Vy
dGlvbnNPbmx5KTtcblxuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBF
eGVjU3RhdGUqIGV4ZWMgPSBtX2RhdGEtPmdsb2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCk7XG4i
KTsKQEAgLTIyNjYsNyArMjI4NywxMSBAQCBzdWIgR2VuZXJhdGVDYWxsYmFja0ltcGxlbWVudGF0
aW9uCiAKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiXG4gICAgYm9vbCByYWlzZWRF
eGNlcHRpb24gPSBmYWxzZTtcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgbV9kYXRhLT5pbnZva2VDYWxsYmFjayhhcmdzLCAmcmFpc2VkRXhjZXB0aW9uKTtcbiIpOwot
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuICFyYWlzZWRFeGNlcHRp
b247XG4iKTsKKworICAgICAgICAgICAgIyBib29sZWFuIGFuZCB2b2lkIGFyZSB0aGUgb25seSBw
b3NzaWJsZSBzaWduYXR1cmUgdHlwZXMuCisgICAgICAgICAgICBpZiAoR2V0TmF0aXZlVHlwZSgk
ZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSkgZXEgImJvb2wiKSB7CisgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuICFyYWlzZWRFeGNlcHRpb247XG4iKTsKKyAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuIik7CiAgICAg
ICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvclY4LnBtIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5w
bQppbmRleCAwNmJjZTA0Li45NjY2ODI3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9yVjgucG0KQEAgLTYsNiArNiw3IEBACiAjIENvcHlyaWdodCAoQykgMjAwNiBB
cHBsZSBDb21wdXRlciwgSW5jLgogIyBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMDkgR29v
Z2xlIEluYy4KICMgQ29weXJpZ2h0IChDKSAyMDA5IENhbWVyb24gTWNDb3JtYWNrIDxjYW1AbWNj
LmlkLmF1PgorIyBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpCiAjCiAjIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTI1LDYgKzI2LDkgQEAKIAog
cGFja2FnZSBDb2RlR2VuZXJhdG9yVjg7CiAKK3VzZSBjb25zdGFudCBDQUxMQkFDS19QQVJBTSAg
ICAgPT4gIDE7Cit1c2UgY29uc3RhbnQgQ0FMTEJBQ0tfUkVUVVJOICAgID0+ICAyOworCiB1c2Ug
RmlsZTo6c3RhdDsKIHVzZSBEaWdlc3Q6Ok1ENTsKIApAQCAtMjI4NywxNSArMjI5MSwxOCBAQCBF
TkQKICAgICAgICAgZm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7JGRhdGFOb2RlLT5mdW5jdGlvbnN9
KSB7CiAgICAgICAgICAgICBteSBAcGFyYW1zID0gQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9Owog
ICAgICAgICAgICAgaWYgKCEkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IkN1c3RvbSJ9ICYmCi0gICAgICAgICAgICAgICAgIShHZXROYXRpdmVUeXBlKCRmdW5jdGlv
bi0+c2lnbmF0dXJlLT50eXBlKSBlcSAiYm9vbCIpKSB7Ci0gICAgICAgICAgICAgICAgICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICIgICAgQ09NUElMRV9BU1NFUlQoZmFsc2UpIik7CisgICAgICAg
ICAgICAgICAgISgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSBlcSAiYm9vbGVhbiIpICYmICEo
JGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUgZXEgInZvaWQiKSkgeworICAgICAgICAgICAgICAg
ICMgcHV0IGEgQ09NUElMRV9BU1NFUlQoZmFsc2UpIGluIGhlYWRlciBmaWxlIGlmIHRoZSBtZXRo
b2QgaXMgbm90ICdDdXN0b20nCisgICAgICAgICAgICAgICAgIyBhbmQgaXRzIHNpZ25hdHVyZSB0
eXBlIGlzIG5vdCBib29sZWFuIG9yIHZvaWQuCisgICAgICAgICAgICAgICAgIyBubyBzaWduYXR1
cmUgdHlwZSBvdGhlciB0aGVuIGJvb2xlYW4gYW5kIHZvaWQgaXMgYWNjZXB0ZWQuCisgICAgICAg
ICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBDT01QSUxFX0FTU0VSVChmYWxzZSki
KTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAg
ICB2aXJ0dWFsICIgLiBHZXROYXRpdmVUeXBlRm9yQ2FsbGJhY2tzKCRmdW5jdGlvbi0+c2lnbmF0
dXJlLT50eXBlKSAuICIgIiAuICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lIC4gIigiKTsKKyAg
ICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCAiIC4gR2V0TmF0aXZl
VHlwZUZvckNhbGxiYWNrcygkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSwgQ0FMTEJBQ0tfUkVU
VVJOKSAuICIgIiAuICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lIC4gIigiKTsKIAogICAgICAg
ICAgICAgbXkgQGFyZ3MgPSAoKTsKICAgICAgICAgICAgIGZvcmVhY2ggbXkgJHBhcmFtIChAcGFy
YW1zKSB7Ci0gICAgICAgICAgICAgICAgcHVzaChAYXJncywgR2V0TmF0aXZlVHlwZUZvckNhbGxi
YWNrcygkcGFyYW0tPnR5cGUpIC4gIiAiIC4gJHBhcmFtLT5uYW1lKTsKKyAgICAgICAgICAgICAg
ICBwdXNoKEBhcmdzLCBHZXROYXRpdmVUeXBlRm9yQ2FsbGJhY2tzKCRwYXJhbS0+dHlwZSwgQ0FM
TEJBQ0tfUEFSQU0pIC4gIiAiIC4gJHBhcmFtLT5uYW1lKTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsIGpvaW4oIiwgIiwgQGFyZ3MpKTsKICAgICAgICAg
ICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIpO1xuIik7CkBAIC0yMzU4LDM3ICsyMzY1LDU5IEBA
IEVORAogICAgICAgICBmb3JlYWNoIG15ICRmdW5jdGlvbiAoQHskZGF0YU5vZGUtPmZ1bmN0aW9u
c30pIHsKICAgICAgICAgICAgIG15IEBwYXJhbXMgPSBAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc307
CiAgICAgICAgICAgICBpZiAoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJDdXN0b20ifSB8fAotICAgICAgICAgICAgICAgICEoR2V0TmF0aXZlVHlwZUZvckNhbGxi
YWNrcygkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSkgZXEgImJvb2wiKSkgeworICAgICAgICAg
ICAgICAgICghKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlIGVxICJib29sZWFuIikgJiYgISgk
ZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSBlcSAidm9pZCIpKSkgeworICAgICAgICAgICAgICAg
ICMgaWdub3JlIHRoZSBtZXRob2QgaWYgaGFzICdDdXN0b20nIGF0dHJpYnV0ZSBvciBpZgorICAg
ICAgICAgICAgICAgICMgaXRzIHNpZ25hdHVyZSB0eXBlIGlzIGRpZmZlcmVudCBvZiBib29sZWFu
IGFuZCB2b2lkLgorICAgICAgICAgICAgICAgICMgaWYgdGhlIHNpZ25hdHVyZSB0eXBlIGRpZmZl
cmVudCBvZiBib29sZWFuIGFuZCB2b2lkIHRoZW4gYQorICAgICAgICAgICAgICAgICMgQ09NUElM
RV9BU1NFUlQoZmFsc2UpIGhhcyBiZWVuIGFkZGVkIHRvIHRoZSBoZWFkZXIgZmlsZS4KICAgICAg
ICAgICAgICAgICBuZXh0OwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBBZGRJbmNsdWRl
c0ZvclR5cGUoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUpOwotICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICJcbiIgLiBHZXROYXRpdmVUeXBlRm9yQ2FsbGJhY2tzKCRmdW5jdGlvbi0+
c2lnbmF0dXJlLT50eXBlKSAuICIgJHtjbGFzc05hbWV9OjoiIC4gJGZ1bmN0aW9uLT5zaWduYXR1
cmUtPm5hbWUgLiAiKCIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbiIgLiBH
ZXROYXRpdmVUeXBlRm9yQ2FsbGJhY2tzKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlLCBDQUxM
QkFDS19SRVRVUk4pIC4gIiAke2NsYXNzTmFtZX06OiIgLiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+
bmFtZSAuICIoIik7CiAKICAgICAgICAgICAgIG15IEBhcmdzID0gKCk7CiAgICAgICAgICAgICBm
b3JlYWNoIG15ICRwYXJhbSAoQHBhcmFtcykgewogICAgICAgICAgICAgICAgIEFkZEluY2x1ZGVz
Rm9yVHlwZSgkcGFyYW0tPnR5cGUpOwotICAgICAgICAgICAgICAgIHB1c2goQGFyZ3MsIEdldE5h
dGl2ZVR5cGVGb3JDYWxsYmFja3MoJHBhcmFtLT50eXBlKSAuICIgIiAuICRwYXJhbS0+bmFtZSk7
CisgICAgICAgICAgICAgICAgcHVzaChAYXJncywgR2V0TmF0aXZlVHlwZUZvckNhbGxiYWNrcygk
cGFyYW0tPnR5cGUsIENBTExCQUNLX1BBUkFNKSAuICIgIiAuICRwYXJhbS0+bmFtZSk7CiAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgam9pbigiLCAiLCBAYXJn
cykpOwogCiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIilcbiIpOwogICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgIGlmICghY2FuSW52b2tlQ2FsbGJhY2soKSlcbiIpOwotICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiB0cnVlO1xuXG4iKTsKKworICAgICAgICAg
ICAgIyBib29sZWFuIGFuZCB2b2lkIGFyZSB0aGUgb25seSBwb3NzaWJsZSBzaWduYXR1cmUgdHlw
ZXMuCisgICAgICAgICAgICBpZiAoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUgZXEgImJvb2xl
YW4iKSB7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVy
biB0cnVlO1xuXG4iKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybjtcblxuIik7CisgICAgICAgICAgICB9CiAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB2ODo6SGFuZGxlU2NvcGUgaGFuZGxl
U2NvcGU7XG5cbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgdjg6Okhh
bmRsZTx2ODo6Q29udGV4dD4gdjhDb250ZXh0ID0gdG9WOENvbnRleHQoc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpLCBtX3dvcmxkQ29udGV4dCk7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIGlmICh2OENvbnRleHQuSXNFbXB0eSgpKVxuIik7Ci0gICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuIHRydWU7XG5cbiIpOworCisgICAgICAg
ICAgICAjIGJvb2xlYW4gYW5kIHZvaWQgYXJlIHRoZSBvbmx5IHBvc3NpYmxlIHNpZ25hdHVyZSB0
eXBlcy4KKyAgICAgICAgICAgIGlmICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSBlcSAiYm9v
bGVhbiIpIHsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0
dXJuIHRydWU7XG5cbiIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuO1xuXG4iKTsKKyAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHY4OjpDb250ZXh0OjpTY29wZSBz
Y29wZSh2OENvbnRleHQpO1xuXG4iKTsKIAogICAgICAgICAgICAgQGFyZ3MgPSAoKTsKICAgICAg
ICAgICAgIGZvcmVhY2ggbXkgJHBhcmFtIChAcGFyYW1zKSB7CiAgICAgICAgICAgICAgICAgbXkg
JHBhcmFtTmFtZSA9ICRwYXJhbS0+bmFtZTsKKwogICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiAke3BhcmFtTmFtZX1IYW5kbGUgPSB0
b1Y4KCR7cGFyYW1OYW1lfSk7XG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICBpZiAoJHtwYXJhbU5hbWV9SGFuZGxlLklzRW1wdHkoKSkge1xuIik7CiAgICAgICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIENSQVNIKCk7XG4iKTsKLSAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuIHRydWU7XG4iKTsK
KyAgICAgICAgICAgICAgICAjIGJvb2xlYW4gYW5kIHZvaWQgYXJlIHRoZSBvbmx5IHBvc3NpYmxl
IHNpZ25hdHVyZSB0eXBlcy4KKyAgICAgICAgICAgICAgICBpZiAoJGZ1bmN0aW9uLT5zaWduYXR1
cmUtPnR5cGUgZXEgImJvb2xlYW4iKSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgICAgICByZXR1cm4gdHJ1ZTtcblxuIik7CisgICAgICAgICAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJl
dHVybjtcblxuIik7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgIH1cbiIpOwogICAgICAgICAgICAgICAgIHB1c2goQGFyZ3MsICIgICAg
ICAgICR7cGFyYW1OYW1lfUhhbmRsZSIpOwogICAgICAgICAgICAgfQpAQCAtMjM5Nyw3ICsyNDI2
LDEzIEBAIEVORAogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIGpvaW4oIixcbiIsIEBh
cmdzKSk7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIlxuICAgIH07XG5cbiIpOwog
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgYm9vbCBjYWxsYmFja1JldHVyblZh
bHVlID0gZmFsc2U7XG4iKTsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJl
dHVybiAhaW52b2tlQ2FsbGJhY2sobV9jYWxsYmFjaywgIiAuIHNjYWxhcihAcGFyYW1zKSAuICIs
IGFyZ3YsIGNhbGxiYWNrUmV0dXJuVmFsdWUsIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7XG4i
KTsKKworICAgICAgICAgICAgIyBib29sZWFuIGFuZCB2b2lkIGFyZSB0aGUgb25seSBwb3NzaWJs
ZSBzaWduYXR1cmUgdHlwZXMuCisgICAgICAgICAgICBpZiAoJGZ1bmN0aW9uLT5zaWduYXR1cmUt
PnR5cGUgZXEgImJvb2xlYW4iKSB7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgcmV0dXJuICFpbnZva2VDYWxsYmFjayhtX2NhbGxiYWNrLCAiIC4gc2NhbGFyKEBwYXJh
bXMpIC4gIiwgYXJndiwgY2FsbGJhY2tSZXR1cm5WYWx1ZSwgc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpKTtcbiIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICBpbnZva2VDYWxsYmFjayhtX2NhbGxiYWNrLCAiIC4gc2NhbGFyKEBw
YXJhbXMpIC4gIiwgYXJndiwgY2FsbGJhY2tSZXR1cm5WYWx1ZSwgc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpKTtcbiIpOworICAgICAgICAgICAgfQogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICJ9XG4iKTsKICAgICAgICAgfQogICAgIH0KQEAgLTI4NzEsNyArMjkwNiw5IEBAIHN1YiBH
ZXROYXRpdmVUeXBlCiBzdWIgR2V0TmF0aXZlVHlwZUZvckNhbGxiYWNrcwogewogICAgIG15ICR0
eXBlID0gc2hpZnQ7CisgICAgbXkgJHVzYWdlID0gc2hpZnQ7CiAgICAgcmV0dXJuICJjb25zdCBT
dHJpbmcmIiBpZiAkdHlwZSBlcSAiRE9NU3RyaW5nIjsKKyAgICByZXR1cm4gInZvaWQiIGlmICgk
dHlwZSBlcSAidm9pZCIpIGFuZCAoJHVzYWdlIGVxIENBTExCQUNLX1JFVFVSTik7CiAKICAgICAj
IENhbGxiYWNrcyB1c2UgcmF3IHBvaW50ZXJzLCBzbyBwYXNzIGlzUGFyYW1ldGVyID0gMQogICAg
IHJldHVybiBHZXROYXRpdmVUeXBlKCR0eXBlLCAxKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckN1c3RvbS5jcHAgYi9XZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJDdXN0b20uY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE5ZTJlNmYKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXJDdXN0b20uY3BwCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAg
Tm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlY4TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2ludCBWOE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OnR5
cGUoKQoreworICAgIHJldHVybiBWOE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJUeXBlOworfQorCiti
b29sIFY4TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6aXNFcXVhbFRvKE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXIqIG90aGVyKQoreworICAgIGlmICghb3RoZXIgfHwgdHlwZSgpICE9IG90aGVyLT50eXBl
KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFY4TWVkaWFRdWVyeUxpc3RMaXN0ZW5l
ciogcHRyID0gc3RhdGljX2Nhc3Q8VjhNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKj4ob3RoZXIpOwor
ICAgIHJldHVybiBwdHIgJiYgbV9jYWxsYmFjay0+RXF1YWxzKHB0ci0+bV9jYWxsYmFjayk7Cit9
CisKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0LmNwcCBiL1dlYkNv
cmUvY3NzL01lZGlhUXVlcnlMaXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi45NzUyYTRmCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxp
c3QuY3BwCkBAIC0wLDAgKzEsODcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEg
Q29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhUXVlcnlMaXN0LmgiCisKKyNpbmNsdWRlICJNZWRp
YUxpc3QuaCIKKyNpbmNsdWRlICJNZWRpYVF1ZXJ5RXZhbHVhdG9yLmgiCisjaW5jbHVkZSAiTWVk
aWFRdWVyeUxpc3RMaXN0ZW5lci5oIgorI2luY2x1ZGUgIk1lZGlhUXVlcnlWZWN0b3IuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0PiBNZWRpYVF1
ZXJ5TGlzdDo6Y3JlYXRlKFBhc3NSZWZQdHI8TWVkaWFRdWVyeVZlY3Rvcj4gdmVjdG9yLCBQYXNz
UmVmUHRyPE1lZGlhTGlzdD4gbWVkaWEsIGJvb2wgbWF0Y2hlcykKK3sKKyAgICByZXR1cm4gYWRv
cHRSZWYobmV3IE1lZGlhUXVlcnlMaXN0KHZlY3RvciwgbWVkaWEsIG1hdGNoZXMpKTsKK30KKwor
TWVkaWFRdWVyeUxpc3Q6Ok1lZGlhUXVlcnlMaXN0KFBhc3NSZWZQdHI8TWVkaWFRdWVyeVZlY3Rv
cj4gdmVjdG9yLCBQYXNzUmVmUHRyPE1lZGlhTGlzdD4gbWVkaWEsIGJvb2wgbWF0Y2hlcykKKyAg
ICA6IG1fdmVjdG9yKHZlY3RvcikKKyAgICAsIG1fbWVkaWEobWVkaWEpCisgICAgLCBtX2V2YWxS
b3VuZChtX3ZlY3Rvci0+ZXZhbFJvdW5kKCkpCisgICAgLCBtX2NoYW5nZVJvdW5kKG1fZXZhbFJv
dW5kIC0gMSkgLy8gbV9ldmFsUm91bmQgYW5kIG1fY2hhbmdlUm91bmQgaW5pdGlhbCB2YWx1ZXMg
bXVzdCBiZSBkaWZmZXJlbnQKKyAgICAsIG1fbWF0Y2hlcyhtYXRjaGVzKQoreworfQorCitNZWRp
YVF1ZXJ5TGlzdDo6fk1lZGlhUXVlcnlMaXN0KCkKK3sKK30KKworU3RyaW5nIE1lZGlhUXVlcnlM
aXN0OjptZWRpYSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbWVkaWEtPm1lZGlhVGV4dCgpOwor
fQorCitib29sIE1lZGlhUXVlcnlMaXN0OjpjaGFuZ2VkKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bV92ZWN0b3ItPmV2YWxSb3VuZCgpID09IG1fY2hhbmdlUm91bmQ7Cit9CisKK3ZvaWQgTWVkaWFR
dWVyeUxpc3Q6OmFkZExpc3RlbmVyKFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4g
bGlzdGVuZXIpCit7CisgICAgbV92ZWN0b3ItPmFkZExpc3RlbmVyKGxpc3RlbmVyLCB0aGlzKTsK
K30KKwordm9pZCBNZWRpYVF1ZXJ5TGlzdDo6cmVtb3ZlTGlzdGVuZXIoUGFzc1JlZlB0cjxNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyPiBsaXN0ZW5lcikKK3sKKyAgICBtX3ZlY3Rvci0+cmVtb3ZlTGlz
dGVuZXIobGlzdGVuZXIsIHRoaXMpOworfQorCit2b2lkIE1lZGlhUXVlcnlMaXN0OjpldmFsdWF0
ZShNZWRpYVF1ZXJ5RXZhbHVhdG9yKiBldmFsdWF0b3IpCit7CisgICAgaWYgKG1fZXZhbFJvdW5k
ID09IG1fdmVjdG9yLT5ldmFsUm91bmQoKSB8fCAhZXZhbHVhdG9yKQorICAgICAgICByZXR1cm47
CisgICAgbV9ldmFsUm91bmQgPSBtX3ZlY3Rvci0+ZXZhbFJvdW5kKCk7CisKKyAgICBib29sIG5l
d1ZhbHVlID0gZXZhbHVhdG9yLT5ldmFsKG1fbWVkaWEuZ2V0KCkpOworICAgIGlmIChuZXdWYWx1
ZSAhPSBtX21hdGNoZXMpIHsKKyAgICAgICAgbV9tYXRjaGVzID0gbmV3VmFsdWU7CisgICAgICAg
IG1fY2hhbmdlUm91bmQgPSBtX2V2YWxSb3VuZDsKKyAgICB9Cit9CisKK30KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0LmggYi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlz
dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY1YzVjOTMKLS0tIC9kZXYv
bnVsbAorKysgYi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdC5oCkBAIC0wLDAgKzEsNjYgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNZWRpYVF1ZXJ5TGlzdF9oCisjZGVmaW5l
IE1lZGlhUXVlcnlMaXN0X2gKKworI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVk
ZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTWVk
aWFMaXN0OworY2xhc3MgTWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjsKK2NsYXNzIE1lZGlhUXVlcnlF
dmFsdWF0b3I7CitjbGFzcyBNZWRpYVF1ZXJ5VmVjdG9yOworCitjbGFzcyBNZWRpYVF1ZXJ5TGlz
dCA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhUXVlcnlMaXN0PiB7CitwdWJsaWM6CisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3Q+IGNyZWF0ZShQYXNzUmVmUHRyPE1lZGlhUXVl
cnlWZWN0b3I+LCBQYXNzUmVmUHRyPE1lZGlhTGlzdD4sIGJvb2wpOworICAgIH5NZWRpYVF1ZXJ5
TGlzdCgpOworICAgIFN0cmluZyBtZWRpYSgpIGNvbnN0OworICAgIGJvb2wgbWF0Y2hlcygpIGNv
bnN0IHsgcmV0dXJuIG1fbWF0Y2hlczsgfQorCisgICAgdm9pZCBhZGRMaXN0ZW5lcihQYXNzUmVm
UHRyPE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+KTsKKyAgICB2b2lkIHJlbW92ZUxpc3RlbmVyKFBh
c3NSZWZQdHI8TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4pOworCisgICAgdm9pZCBldmFsdWF0ZShN
ZWRpYVF1ZXJ5RXZhbHVhdG9yKik7CisgICAgYm9vbCBjaGFuZ2VkKCkgY29uc3Q7CisKK3ByaXZh
dGU6CisgICAgTWVkaWFRdWVyeUxpc3QoUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5VmVjdG9yPiwgUGFz
c1JlZlB0cjxNZWRpYUxpc3Q+LCBib29sIG1hdGNoZXMpOworCisgICAgUmVmUHRyPE1lZGlhUXVl
cnlWZWN0b3I+IG1fdmVjdG9yOworICAgIFJlZlB0cjxNZWRpYUxpc3Q+IG1fbWVkaWE7CisgICAg
aW50IG1fZXZhbFJvdW5kOworICAgIGludCBtX2NoYW5nZVJvdW5kOworICAgIGludCBtX21hdGNo
ZXM7Cit9OworCit9CisKKyNlbmRpZiAvLyBNZWRpYVF1ZXJ5TGlzdF9oCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdC5pZGwgYi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlz
dC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjY1ZTVmNwotLS0gL2Rl
di9udWxsCisrKyBiL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0LmlkbApAQCAtMCwwICsxLDMz
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSB2aWV3IHsKKyAgICBpbnRlcmZhY2Ug
TWVkaWFRdWVyeUxpc3QgeworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG1l
ZGlhOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBtYXRjaGVzOworICAgICAg
ICB2b2lkIGFkZExpc3RlbmVyKGluIFtDYWxsYmFja10gTWVkaWFRdWVyeUxpc3RMaXN0ZW5lciBs
aXN0ZW5lcik7CisgICAgICAgIHZvaWQgcmVtb3ZlTGlzdGVuZXIoaW4gW0NhbGxiYWNrXSBNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyIGxpc3RlbmVyKTsKKyAgICB9OworfQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9jc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oIGIvV2ViQ29yZS9jc3MvTWVkaWFRdWVy
eUxpc3RMaXN0ZW5lci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMyNDg2
N2UKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
LmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jw
b3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXJfaAorI2RlZmluZSBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyX2gKKwor
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgTWVkaWFRdWVyeUxpc3Q7CisKK2NsYXNzIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIgOiBwdWJs
aWMgUmVmQ291bnRlZDxNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyPiB7CitwdWJsaWM6CisgICAgZW51
bSBUeXBlIHsKKyAgICAgICAgSlNNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyVHlwZSwKKyAgICAgICAg
VjhNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyVHlwZQorICAgIH07CisKKyAgICB2aXJ0dWFsIH5NZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyKCkge30KKyAgICB2aXJ0dWFsIHZvaWQgcXVlcnlDaGFuZ2VkKE1l
ZGlhUXVlcnlMaXN0KikgPSAwOworICAgIHZpcnR1YWwgaW50IHR5cGUoKSA9IDA7CisgICAgdmly
dHVhbCBib29sIGlzRXF1YWxUbyhNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKiBvdGhlcikgPSAwOwor
Citwcm90ZWN0ZWQ6Cit9OworCit9CisKKyNlbmRpZiAvLyBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaWRsIGIv
V2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uYjVmZjcyOAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvY3Nz
L01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaWRsCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBD
T01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENP
TVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworbW9kdWxlIHZpZXcgeworICAgIGludGVyZmFjZSBbQ2FsbGJhY2tdIE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXIgeworICAgICAgICB2b2lkIHF1ZXJ5Q2hhbmdlZChpbiBNZWRpYVF1
ZXJ5TGlzdCBtcWwpOworICAgICAgICBbQ3VzdG9tXSBsb25nIHR5cGUoKTsKKyAgICAgICAgW0N1
c3RvbV0gYm9vbGVhbiBpc0VxdWFsVG8oaW4gTWVkaWFRdWVyeUxpc3RMaXN0ZW5lciBvdGhlcik7
CisgICAgfTsKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlWZWN0b3IuY3Bw
IGIvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeVZlY3Rvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uYjNlMzljMQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvY3NzL01l
ZGlhUXVlcnlWZWN0b3IuY3BwCkBAIC0wLDAgKzEsMTU4IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIs
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRpYVF1ZXJ5VmVjdG9yLmgiCisK
KyNpbmNsdWRlICJDU1NTdHlsZVNlbGVjdG9yLmgiCisjaW5jbHVkZSAiRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAiTWVkaWFM
aXN0LmgiCisjaW5jbHVkZSAiTWVkaWFRdWVyeUV2YWx1YXRvci5oIgorI2luY2x1ZGUgIk1lZGlh
UXVlcnlMaXN0LmgiCisjaW5jbHVkZSAiTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK01lZGlhUXVlcnlMaXN0ZW5lcjo6TWVkaWFRdWVyeUxpc3RlbmVy
KFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4gbGlzdGVuZXIsIFBhc3NSZWZQdHI8
TWVkaWFRdWVyeUxpc3Q+IHF1ZXJ5KQorICAgIDogbV9saXN0ZW5lcihsaXN0ZW5lcikKKyAgICAs
IG1fcXVlcnkocXVlcnkpCit7Cit9CisKK01lZGlhUXVlcnlMaXN0ZW5lcjo6fk1lZGlhUXVlcnlM
aXN0ZW5lcigpCit7Cit9CisKK3ZvaWQgTWVkaWFRdWVyeUxpc3RlbmVyOjpldmFsdWF0ZShNZWRp
YVF1ZXJ5RXZhbHVhdG9yKiBldmFsdWF0b3IpCit7CisgICAgbV9xdWVyeS0+ZXZhbHVhdGUoZXZh
bHVhdG9yKTsKKyAgICBpZiAobV9xdWVyeS0+Y2hhbmdlZCgpKQorICAgICAgICBtX2xpc3RlbmVy
LT5xdWVyeUNoYW5nZWQobV9xdWVyeS5nZXQoKSk7Cit9CisKK01lZGlhUXVlcnlWZWN0b3I6Ok1l
ZGlhUXVlcnlWZWN0b3IoRnJhbWUqIGZyYW1lKQorICAgIDogbV9mcmFtZShmcmFtZSkKKyAgICAs
IG1fZXZhbFJvdW5kKDApCisgICAgLCBtX3Rlcm1pbmF0ZWQoZmFsc2UpCit7Cit9CisKK01lZGlh
UXVlcnlWZWN0b3I6On5NZWRpYVF1ZXJ5VmVjdG9yKCkKK3sKK30KKwordm9pZCBNZWRpYVF1ZXJ5
VmVjdG9yOjp0ZXJtaW5hdGUoKQoreworICAgIG1fdGVybWluYXRlZCA9IHRydWU7CisgICAgZGVs
ZXRlQWxsVmFsdWVzKG1fbGlzdGVuZXJzKTsKKyAgICBtX2xpc3RlbmVycy5jbGVhcigpOworfQor
CitTdHJpbmcgTWVkaWFRdWVyeVZlY3Rvcjo6bWVkaWFUeXBlKCkgY29uc3QKK3sKKyAgICBGcmFt
ZVZpZXcqIHZpZXcgPSBtX2ZyYW1lID8gbV9mcmFtZS0+dmlldygpIDogMDsKKyAgICBpZiAodmll
dykKKyAgICAgICAgcmV0dXJuIHZpZXctPm1lZGlhVHlwZSgpOworCisgICAgcmV0dXJuIFN0cmlu
ZygpOworfQorCitQYXNzT3duUHRyPE1lZGlhUXVlcnlFdmFsdWF0b3I+IE1lZGlhUXVlcnlWZWN0
b3I6OnByZXBhcmVFdmFsdWF0b3IoKSBjb25zdAoreworICAgIGlmICghbV9mcmFtZSkKKyAgICAg
ICAgcmV0dXJuIDA7CisKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBtX2ZyYW1lLT5kb2N1bWVu
dCgpOworICAgIGlmICghZG9jdW1lbnQpCisgICAgICAgIHJldHVybiAwOworCisgICAgRWxlbWVu
dCogZG9jdW1lbnRFbGVtZW50ID0gZG9jdW1lbnQtPmRvY3VtZW50RWxlbWVudCgpOworICAgIGlm
ICghZG9jdW1lbnRFbGVtZW50KQorICAgICAgICByZXR1cm4gMDsKKworICAgIENTU1N0eWxlU2Vs
ZWN0b3IqIHN0eWxlU2VsZWN0b3IgPSBkb2N1bWVudC0+c3R5bGVTZWxlY3RvcigpOworICAgIGlm
ICghc3R5bGVTZWxlY3RvcikKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBSZWZQdHI8UmVuZGVy
U3R5bGU+IHJvb3RTdHlsZSA9IHN0eWxlU2VsZWN0b3ItPnN0eWxlRm9yRWxlbWVudChkb2N1bWVu
dEVsZW1lbnQsIDAgLypkZWZhdWx0UGFyZW50Ki8sIGZhbHNlIC8qYWxsb3dTaGFyaW5nKi8sIHRy
dWUgLypyZXNvbHZlRm9yUm9vdERlZmF1bHQqLyk7CisKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3
IE1lZGlhUXVlcnlFdmFsdWF0b3IobWVkaWFUeXBlKCksIG1fZnJhbWUsIHJvb3RTdHlsZS5nZXQo
KSkpOworfQorCitQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0PiBNZWRpYVF1ZXJ5VmVjdG9yOjpt
YXRjaE1lZGlhKGNvbnN0IFN0cmluZyYgcXVlcnkpCit7CisgICAgaWYgKG1fdGVybWluYXRlZCkK
KyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBSZWZQdHI8TWVkaWFMaXN0PiBtZWRpYSA9IE1lZGlh
TGlzdDo6Y3JlYXRlKHF1ZXJ5LCBmYWxzZSk7CisgICAgT3duUHRyPE1lZGlhUXVlcnlFdmFsdWF0
b3I+IGV2YWx1YXRvcihwcmVwYXJlRXZhbHVhdG9yKCkpOworICAgIGJvb2wgbWF0Y2hlcyA9IGV2
YWx1YXRvciAmJiBldmFsdWF0b3ItPmV2YWwobWVkaWEuZ2V0KCkpOworCisgICAgcmV0dXJuIE1l
ZGlhUXVlcnlMaXN0OjpjcmVhdGUodGhpcywgbWVkaWEsIG1hdGNoZXMpOworfQorCit2b2lkIE1l
ZGlhUXVlcnlWZWN0b3I6OmFkZExpc3RlbmVyKFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lcj4gbGlzdGVuZXIsIFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3Q+IHF1ZXJ5KQoreworICAg
IGlmIChtX3Rlcm1pbmF0ZWQpCisgICAgICAgIHJldHVybjsKKworICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgbV9saXN0ZW5lcnMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgaWYgKG1fbGlzdGVu
ZXJzW2ldLT5saXN0ZW5lcigpLT5pc0VxdWFsVG8obGlzdGVuZXIuZ2V0KCkpICYmIG1fbGlzdGVu
ZXJzW2ldLT5xdWVyeSgpID09IHF1ZXJ5LmdldCgpKQorICAgICAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIG1fbGlzdGVuZXJzLmFwcGVuZChuZXcgTWVkaWFRdWVyeUxpc3RlbmVyKGxpc3Rl
bmVyLCBxdWVyeSkpOworfQorCit2b2lkIE1lZGlhUXVlcnlWZWN0b3I6OnJlbW92ZUxpc3RlbmVy
KFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4gbGlzdGVuZXIsIFBhc3NSZWZQdHI8
TWVkaWFRdWVyeUxpc3Q+IHF1ZXJ5KQoreworICAgIGlmIChtX3Rlcm1pbmF0ZWQpCisgICAgICAg
IHJldHVybjsKKworICAgIGZvciAoaW50IGkgPSBtX2xpc3RlbmVycy5zaXplKCkgLSAxOyBpID49
IDA7IC0taSkgeworICAgICAgICBpZiAobV9saXN0ZW5lcnNbaV0tPmxpc3RlbmVyKCktPmlzRXF1
YWxUbyhsaXN0ZW5lci5nZXQoKSkgJiYgbV9saXN0ZW5lcnNbaV0tPnF1ZXJ5KCkgPT0gcXVlcnku
Z2V0KCkpIHsKKyAgICAgICAgICAgIGRlbGV0ZSBtX2xpc3RlbmVyc1tpXTsKKyAgICAgICAgICAg
IG1fbGlzdGVuZXJzLnJlbW92ZShpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
ICAgIH0KK30KKwordm9pZCBNZWRpYVF1ZXJ5VmVjdG9yOjpldmFsdWF0ZSgpCit7CisgICAgQVNT
RVJUKCFtX3Rlcm1pbmF0ZWQpOworCisgICAgKyttX2V2YWxSb3VuZDsKKyAgICBPd25QdHI8TWVk
aWFRdWVyeUV2YWx1YXRvcj4gZXZhbHVhdG9yID0gcHJlcGFyZUV2YWx1YXRvcigpOworICAgIGlm
ICghZXZhbHVhdG9yKQorICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IG1fbGlzdGVuZXJzLnNpemUoKTsgKytpKQorICAgICAgICBtX2xpc3RlbmVyc1tpXS0+ZXZh
bHVhdGUoZXZhbHVhdG9yLmdldCgpKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3Mv
TWVkaWFRdWVyeVZlY3Rvci5oIGIvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeVZlY3Rvci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUzOTU5YzEKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5VmVjdG9yLmgKQEAgLTAsMCArMSw4MSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlh
cnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIE1lZGlhUXVlcnlWZWN0b3JfaAorI2RlZmluZSBNZWRp
YVF1ZXJ5VmVjdG9yX2gKKworI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRnJhbWU7
CitjbGFzcyBNZWRpYVF1ZXJ5TGlzdDsKK2NsYXNzIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI7Citj
bGFzcyBNZWRpYVF1ZXJ5RXZhbHVhdG9yOworCitjbGFzcyBNZWRpYVF1ZXJ5TGlzdGVuZXIgewor
cHVibGljOgorICAgIE1lZGlhUXVlcnlMaXN0ZW5lcihQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0
TGlzdGVuZXI+LCBQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0Pik7CisgICAgfk1lZGlhUXVlcnlM
aXN0ZW5lcigpOworCisgICAgdm9pZCBldmFsdWF0ZShNZWRpYVF1ZXJ5RXZhbHVhdG9yKik7CisK
KyAgICBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKiBsaXN0ZW5lcigpIHsgcmV0dXJuIG1fbGlzdGVu
ZXIuZ2V0KCk7IH0KKyAgICBNZWRpYVF1ZXJ5TGlzdCogcXVlcnkoKSB7IHJldHVybiBtX3F1ZXJ5
LmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgUmVmUHRyPE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+
IG1fbGlzdGVuZXI7CisgICAgUmVmUHRyPE1lZGlhUXVlcnlMaXN0PiBtX3F1ZXJ5OworfTsKKwor
Y2xhc3MgTWVkaWFRdWVyeVZlY3RvciA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhUXVlcnlWZWN0
b3I+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5VmVjdG9yPiBj
cmVhdGUoRnJhbWUqIGZyYW1lKSB7IHJldHVybiBhZG9wdFJlZihuZXcgTWVkaWFRdWVyeVZlY3Rv
cihmcmFtZSkpOyB9CisgICAgfk1lZGlhUXVlcnlWZWN0b3IoKTsKKyAgICB2b2lkIHRlcm1pbmF0
ZSgpOworCisgICAgdm9pZCBhZGRMaXN0ZW5lcihQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXI+LCBQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0Pik7CisgICAgdm9pZCByZW1vdmVMaXN0
ZW5lcihQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+LCBQYXNzUmVmUHRyPE1lZGlh
UXVlcnlMaXN0Pik7CisKKyAgICBQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0PiBtYXRjaE1lZGlh
KGNvbnN0IFN0cmluZyYpOworICAgIGludCBldmFsUm91bmQoKSBjb25zdCB7IHJldHVybiBtX2V2
YWxSb3VuZDsgfQorICAgIHZvaWQgZXZhbHVhdGUoKTsKK3ByaXZhdGU6CisgICAgTWVkaWFRdWVy
eVZlY3RvcihGcmFtZSopOworICAgIFBhc3NPd25QdHI8TWVkaWFRdWVyeUV2YWx1YXRvcj4gcHJl
cGFyZUV2YWx1YXRvcigpIGNvbnN0OworICAgIFN0cmluZyBtZWRpYVR5cGUoKSBjb25zdDsKKwor
ICAgIEZyYW1lKiBtX2ZyYW1lOworICAgIFZlY3RvcjxNZWRpYVF1ZXJ5TGlzdGVuZXIqPiBtX2xp
c3RlbmVyczsKKyAgICBpbnQgbV9ldmFsUm91bmQ7CisgICAgYm9vbCBtX3Rlcm1pbmF0ZWQ7Cit9
OworCit9CisKKyNlbmRpZiAvLyBNZWRpYVF1ZXJ5VmVjdG9yX2gKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBiYTAy
ZGVjLi5jNmE0OWIyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC02LDYgKzYsNyBAQAogICogQ29weXJpZ2h0IChD
KSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSBUb3JjaCBNb2JpbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQogICog
Q29weXJpZ2h0IChDKSAyMDA4LCAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTg5LDYgKzkwLDggQEAKICNpbmNs
dWRlICJJbnNwZWN0b3JUaW1lbGluZUFnZW50LmgiCiAjaW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5o
IgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJNZWRpYVF1ZXJ5TGlzdC5oIgorI2lu
Y2x1ZGUgIk1lZGlhUXVlcnlWZWN0b3IuaCIKICNpbmNsdWRlICJNZXNzYWdlRXZlbnQuaCIKICNp
bmNsdWRlICJNb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiTW91c2VFdmVudFdpdGhIaXRUZXN0UmVz
dWx0cy5oIgpAQCAtNTU4LDYgKzU2MSwxNiBAQCBEb2N1bWVudDo6fkRvY3VtZW50KCkKICAgICAg
ICAgbV9zdHlsZVNoZWV0cy0+ZG9jdW1lbnREZXN0cm95ZWQoKTsKIAogICAgIG1fd2Vha1JlZmVy
ZW5jZS0+Y2xlYXIoKTsKKworICAgIGlmIChtX21lZGlhUXVlcmllcykKKyAgICAgICAgbV9tZWRp
YVF1ZXJpZXMtPnRlcm1pbmF0ZSgpOworfQorCitQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0PiBE
b2N1bWVudDo6bWF0Y2hNZWRpYShjb25zdCBTdHJpbmcmIG1lZGlhKQoreworICAgIGlmICghbV9t
ZWRpYVF1ZXJpZXMpCisgICAgICAgIG1fbWVkaWFRdWVyaWVzID0gTWVkaWFRdWVyeVZlY3Rvcjo6
Y3JlYXRlKG1fZnJhbWUpOworICAgIHJldHVybiBtX21lZGlhUXVlcmllcy0+bWF0Y2hNZWRpYSht
ZWRpYSk7CiB9CiAKICNpZiBVU0UoSlNDKQpAQCAtMjg0OCw2ICsyODYxLDkgQEAgdm9pZCBEb2N1
bWVudDo6c3R5bGVTZWxlY3RvckNoYW5nZWQoU3R5bGVTZWxlY3RvclVwZGF0ZUZsYWcgdXBkYXRl
RmxhZykKICAgICAgICAgaWYgKHZpZXcoKSkKICAgICAgICAgICAgIHZpZXcoKS0+c2NoZWR1bGVS
ZWxheW91dCgpOwogICAgIH0KKworICAgIGlmIChtX21lZGlhUXVlcmllcykKKyAgICAgICAgbV9t
ZWRpYVF1ZXJpZXMtPmV2YWx1YXRlKCk7CiB9CiAKIHZvaWQgRG9jdW1lbnQ6OmFkZFN0eWxlU2hl
ZXRDYW5kaWRhdGVOb2RlKE5vZGUqIG5vZGUsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5k
ZXggZGM3ZDllOC4uMTczZTg5NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAor
KysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC01LDYgKzUsNyBAQAogICogICAgICAgICAg
IChDKSAyMDA2IEFsZXhleSBQcm9za3VyeWFrb3YgKGFwQHdlYmtpdC5vcmcpCiAgKiBDb3B5cmln
aHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5IFRvcmNo
IE1vYmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIChodHRwOi8vd3d3LnRvcmNobW9iaWxl
LmNvbS8pCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTkyLDYgKzkzLDggQEAg
Y2xhc3MgSW50UG9pbnQ7CiBjbGFzcyBET01XcmFwcGVyV29ybGQ7CiBjbGFzcyBKU05vZGU7CiBj
bGFzcyBNZWRpYUNhblN0YXJ0TGlzdGVuZXI7CitjbGFzcyBNZWRpYVF1ZXJ5TGlzdDsKK2NsYXNz
IE1lZGlhUXVlcnlWZWN0b3I7CiBjbGFzcyBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzOwog
Y2xhc3MgTm9kZUZpbHRlcjsKIGNsYXNzIE5vZGVJdGVyYXRvcjsKQEAgLTE5Niw2ICsxOTksOCBA
QCBwdWJsaWM6CiAgICAgfQogICAgIHZpcnR1YWwgfkRvY3VtZW50KCk7CiAKKyAgICBQYXNzUmVm
UHRyPE1lZGlhUXVlcnlMaXN0PiBtYXRjaE1lZGlhKGNvbnN0IFN0cmluZyYpOworCiAgICAgdXNp
bmcgQ29udGFpbmVyTm9kZTo6cmVmOwogICAgIHVzaW5nIENvbnRhaW5lck5vZGU6OmRlcmVmOwog
CkBAIC0xMzEwLDYgKzEzMTUsOCBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBpbnQgbV9sb2Fk
RXZlbnREZWxheUNvdW50OworCisgICAgUmVmUHRyPE1lZGlhUXVlcnlWZWN0b3I+IG1fbWVkaWFR
dWVyaWVzOwogfTsKIAogaW5saW5lIGJvb2wgRG9jdW1lbnQ6Omhhc0VsZW1lbnRXaXRoSWQoQXRv
bWljU3RyaW5nSW1wbCogaWQpIGNvbnN0CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmNwcCBiL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IDE1ZjNlZDEuLjMyZjVm
YmUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykg
MjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTY0LDcgKzY1LDcgQEAKICNp
bmNsdWRlICJJbnNwZWN0b3JUaW1lbGluZUFnZW50LmgiCiAjaW5jbHVkZSAiS1VSTC5oIgogI2lu
Y2x1ZGUgIkxvY2F0aW9uLmgiCi0jaW5jbHVkZSAiU3R5bGVNZWRpYS5oIgorI2luY2x1ZGUgIk1l
ZGlhUXVlcnlMaXN0LmgiCiAjaW5jbHVkZSAiTWVzc2FnZUV2ZW50LmgiCiAjaW5jbHVkZSAiTmF2
aWdhdG9yLmgiCiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uQ2VudGVyLmgiCkBAIC04MCw2ICs4MSw3
IEBACiAjaW5jbHVkZSAiU3RvcmFnZS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VBcmVhLmgiCiAjaW5j
bHVkZSAiU3RvcmFnZU5hbWVzcGFjZS5oIgorI2luY2x1ZGUgIlN0eWxlTWVkaWEuaCIKICNpbmNs
dWRlICJTdWRkZW5UZXJtaW5hdGlvbi5oIgogI2luY2x1ZGUgIldlYktpdFBvaW50LmgiCiAjaW5j
bHVkZSA8YWxnb3JpdGhtPgpAQCAtNDA3LDYgKzQwOSwxMSBAQCBTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBET01XaW5kb3c6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdAogICAgIHJldHVy
biBkb2N1bWVudCgpOwogfQogCitQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0PiBET01XaW5kb3c6
Om1hdGNoTWVkaWEoY29uc3QgU3RyaW5nJiBtZWRpYSkKK3sKKyAgICByZXR1cm4gZG9jdW1lbnQo
KSA/IGRvY3VtZW50KCktPm1hdGNoTWVkaWEobWVkaWEpIDogMDsKK30KKwogdm9pZCBET01XaW5k
b3c6OmRpc2Nvbm5lY3RGcmFtZSgpCiB7CiAgICAgbV9mcmFtZSA9IDA7CkBAIC00OTgsNiArNTA1
LDcgQEAgdm9pZCBET01XaW5kb3c6OmNsZWFyKCkKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFT
RSkKICAgICBtX2lkYkZhY3RvcnkgPSAwOwogI2VuZGlmCisKIH0KIAogI2lmIEVOQUJMRShPUklF
TlRBVElPTl9FVkVOVFMpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmggYi9X
ZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKaW5kZXggMTQ3MDYyOC4uYmQ3YjBkZSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCisrKyBiL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cu
aApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDkg
QXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjAsMTAgKzYxLDExIEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICBjbGFzcyBJbnNwZWN0b3JUaW1lbGluZUFnZW50OwogICAgIGNsYXNzIExvY2FsRmls
ZVN5c3RlbTsKICAgICBjbGFzcyBMb2NhdGlvbjsKLSAgICBjbGFzcyBTdHlsZU1lZGlhOworICAg
IGNsYXNzIE1lZGlhUXVlcnlMaXN0OwogICAgIGNsYXNzIE5hdmlnYXRvcjsKICAgICBjbGFzcyBO
b2RlOwogICAgIGNsYXNzIE5vdGlmaWNhdGlvbkNlbnRlcjsKKyAgICBjbGFzcyBTdHlsZU1lZGlh
OwogCiAjaWYgRU5BQkxFKFdFQl9USU1JTkcpCiAgICAgY2xhc3MgUGVyZm9ybWFuY2U7CkBAIC05
OSw2ICsxMDEsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgdm9pZCBjbGVhcigp
OwogCisgICAgICAgIFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3Q+IG1hdGNoTWVkaWEoY29uc3Qg
U3RyaW5nJik7CisKICNpZiBFTkFCTEUoT1JJRU5UQVRJT05fRVZFTlRTKQogICAgICAgICAvLyBU
aGlzIGlzIHRoZSBpbnRlcmZhY2Ugb3JpZW50YXRpb24gaW4gZGVncmVlcy4gU29tZSBleGFtcGxl
cyBhcmU6CiAgICAgICAgIC8vICAwIGlzIHN0cmFpZ2h0IHVwOyAtOTAgaXMgd2hlbiB0aGUgZGV2
aWNlIGlzIHJvdGF0ZWQgOTAgY2xvY2t3aXNlOwpAQCAtNDYyLDcgKzQ2Niw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICBpbmxpbmUgU3RyaW5nIERPTVdpbmRvdzo6ZGVmYXVsdFN0YXR1cygp
IGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gbV9kZWZhdWx0U3RhdHVzOwotICAgIH0gCisg
ICAgfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuaWRsIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKaW5kZXggYjFjMjky
YS4uZWYwMTgwMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKKysrIGIv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKQEAgLTc3MCw2ICs3NzAsOSBAQCBtb2R1bGUgd2lu
ZG93IHsKICAgICAgICAgLy8gd2luZG93LnRvU3RyaW5nKCkgcmVxdWlyZXMgc3BlY2lhbCBoYW5k
bGluZyBpbiBWOAogICAgICAgICBbVjhEb05vdENoZWNrU2lnbmF0dXJlLCBEb05vdENoZWNrRG9t
YWluU2VjdXJpdHksIEN1c3RvbSwgRG9udEVudW1dIERPTVN0cmluZyB0b1N0cmluZygpOwogI2Vu
ZGlmIC8vIGRlZmluZWQoVjhfQklORElORykKKworICAgICAgICAvLyBDU1NPTSBWaWV3IE1vZHVs
ZQorICAgICAgICBNZWRpYVF1ZXJ5TGlzdCBtYXRjaE1lZGlhKGluIERPTVN0cmluZyBxdWVyeSk7
CiAgICAgfTsKIAogfQotLSAKMS43LjIuMgoK
</data>
<flag name="review"
          id="56335"
          type_id="1"
          status="-"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67202</attachid>
            <date>2010-09-10 10:54:13 -0700</date>
            <delta_ts>2010-09-10 13:25:40 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-Implement-CSSOM-View-matchMedia-interface.patch</filename>
            <type>text/plain</type>
            <size>88699</size>
            <attacher name="Luiz Agostini">luiz</attacher>
            
              <data encoding="base64">RnJvbSAwZjU2MjQ2ZTMyMDcwNTg4MTk0Y2M5OTU4NzU4N2IzMGMxZmY1NjJiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWl6IEFnb3N0aW5pIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IEZyaSwgMTAgU2VwIDIwMTAgMTM6NDY6MTAgLTAzMDAKU3ViamVjdDogW1BB
VENIXSBJbXBsZW1lbnQgQ1NTT00gVmlldyBtYXRjaE1lZGlhIGludGVyZmFjZQogaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3MjA1CgpSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KCldlYkNvcmU6CgpOZXcgaW50ZXJmYWNlcyBtYXkgYmUgdXNlZCB0byBldmFsdWF0
ZSBtZWRpYSBxdWVyaWVzIGFuZCB0byBhc3NvY2lhdGUgbGlzdGVuZXJzCnRvIG1lZGlhIHF1ZXJp
ZXMuIFRob3NlIGxpc3RlbmVycyBhcmUgY2FsbGVkIHdoZW5ldmVyIHRoZSBhc3NvY2lhdGVkIHF1
ZXJ5IGNoYW5nZXMuClNwZWNpZmljYXRpb24gbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9kZXYudzMu
b3JnL2Nzc3dnL2Nzc29tLXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2UKClY4IGFu
ZCBKUyBjb2RlIGdlbmVyYXRvcnMgY2hhbmdlZCB0byBhY2NlcHQgdm9pZCBjYWxsYmFja3MuCgoq
IGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgoqIGJpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvclY4LnBtOgoKTmV3IGludGVyZmFjZXMgTWVkaWFRdWVyeUxpc3QgYW5kIE1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXIuClNlZSBodHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9jc3NvbS12
aWV3LyN0aGUtbWVkaWFxdWVyeWxpc3QtaW50ZXJmYWNlCgoqIGNzcy9NZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyLmlkbDogQWRkZWQuCiogY3NzL01lZGlhUXVlcnlMaXN0LmlkbDogQWRkZWQuCgpNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyIGlzIGEgY2FsbGJhY2suIEN1c3RvbSBtZXRob2RzIGFyZSBuZWVk
ZWQgdG8gaW1wbGVtZW50CmNhbGxiYWNrIGNvbXBhcmlzb24uCgoqIGJpbmRpbmdzL2pzL0pTTWVk
aWFRdWVyeUxpc3RMaXN0ZW5lckN1c3RvbS5jcHA6IEFkZGVkLgooV2ViQ29yZTo6SlNNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyOjp0eXBlKToKKFdlYkNvcmU6OkpTTWVkaWFRdWVyeUxpc3RMaXN0ZW5l
cjo6aXNFcXVhbFRvKToKKiBiaW5kaW5ncy92OC9jdXN0b20vVjhNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyQ3VzdG9tLmNwcDogQWRkZWQuCihXZWJDb3JlOjpWOE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6
OnR5cGUpOgooV2ViQ29yZTo6VjhNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjppc0VxdWFsVG8pOgoK
Q2xhc3NlcyBNZWRpYVF1ZXJ5TGlzdCBhbmQgTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci4KCiogY3Nz
L01lZGlhUXVlcnlMaXN0LmNwcDogQWRkZWQuCihXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdDo6Y3Jl
YXRlKToKKFdlYkNvcmU6Ok1lZGlhUXVlcnlMaXN0OjpNZWRpYVF1ZXJ5TGlzdCk6CihXZWJDb3Jl
OjpNZWRpYVF1ZXJ5TGlzdDo6fk1lZGlhUXVlcnlMaXN0KToKKFdlYkNvcmU6Ok1lZGlhUXVlcnlM
aXN0OjptZWRpYSk6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdDo6YWRkTGlzdGVuZXIpOgooV2Vi
Q29yZTo6TWVkaWFRdWVyeUxpc3Q6OnJlbW92ZUxpc3RlbmVyKToKKFdlYkNvcmU6Ok1lZGlhUXVl
cnlMaXN0OjpldmFsdWF0ZSk6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdDo6c2V0TWF0Y2hlcyk6
CihXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdDo6Y2hhbmdlZCk6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5
TGlzdDo6bWF0Y2hlcyk6CiogY3NzL01lZGlhUXVlcnlMaXN0Lmg6IEFkZGVkLgoqIGNzcy9NZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyLmg6IEFkZGVkLgooV2ViQ29yZTo6TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lcjo6fk1lZGlhUXVlcnlMaXN0TGlzdGVuZXIpOgoKVG8gYXZvaWQgYWRkaW5nIGNvZGUgdG8g
Y2xhc3NlcyBET01XaW5kb3cgYW5kIERvY3VtZW50IGEgbmV3IGNsYXNzIE1lZGlhUXVlcnlNYXRj
aGVyIHdhcwpjcmVhdGVkLgoKKiBjc3MvTWVkaWFRdWVyeU1hdGNoZXIuY3BwOiBBZGRlZC4KKFdl
YkNvcmU6Ok1lZGlhUXVlcnlNYXRjaGVyOjpMaXN0ZW5lcjo6TGlzdGVuZXIpOgooV2ViQ29yZTo6
TWVkaWFRdWVyeU1hdGNoZXI6Okxpc3RlbmVyOjp+TGlzdGVuZXIpOgooV2ViQ29yZTo6TWVkaWFR
dWVyeU1hdGNoZXI6Okxpc3RlbmVyOjpldmFsdWF0ZSk6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5TWF0
Y2hlcjo6TWVkaWFRdWVyeU1hdGNoZXIpOgooV2ViQ29yZTo6TWVkaWFRdWVyeU1hdGNoZXI6On5N
ZWRpYVF1ZXJ5TWF0Y2hlcik6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5TWF0Y2hlcjo6dGVybWluYXRl
KToKKFdlYkNvcmU6Ok1lZGlhUXVlcnlNYXRjaGVyOjptZWRpYVR5cGUpOgooV2ViQ29yZTo6TWVk
aWFRdWVyeU1hdGNoZXI6OnByZXBhcmVFdmFsdWF0b3IpOgooV2ViQ29yZTo6TWVkaWFRdWVyeU1h
dGNoZXI6OmV2YWx1YXRlKToKKFdlYkNvcmU6Ok1lZGlhUXVlcnlNYXRjaGVyOjptYXRjaE1lZGlh
KToKKFdlYkNvcmU6Ok1lZGlhUXVlcnlNYXRjaGVyOjphZGRMaXN0ZW5lcik6CihXZWJDb3JlOjpN
ZWRpYVF1ZXJ5TWF0Y2hlcjo6cmVtb3ZlTGlzdGVuZXIpOgoqIGNzcy9NZWRpYVF1ZXJ5TWF0Y2hl
ci5oOiBBZGRlZC4KKFdlYkNvcmU6Ok1lZGlhUXVlcnlNYXRjaGVyOjpjcmVhdGUpOgooV2ViQ29y
ZTo6TWVkaWFRdWVyeU1hdGNoZXI6OmV2YWxSb3VuZCk6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5TWF0
Y2hlcjo6TGlzdGVuZXI6Omxpc3RlbmVyKToKKFdlYkNvcmU6Ok1lZGlhUXVlcnlNYXRjaGVyOjpM
aXN0ZW5lcjo6cXVlcnkpOgoKRG9jdW1lbnQgYW5kIERPTVdpbmRvdyBoYXZlIGNoYW5nZWQgdG8g
c3VwcG9ydCBuZXcgZmVhdHVyZXMuIERPTVdpbmRvdyBpcyB0aGUgY2xhc3MgdGhhdApwdWJsaXNo
ZXMgbWV0aG9kcyBtYXRjaE1lZGlhIGJ1dCBmb3IgcGFnZSBjYWNoZSB0byB3b3JrIHByb3Blcmx5
ICB0aGUgcmVmZXJlbmNlIHRvIHRoZQpNZWRpYVF1ZXJ5TWF0Y2hlciBpcyBrZXB0IGJ5IERvY3Vt
ZW50IGluc3RhbmNlLgoKKiBkb20vRG9jdW1lbnQuY3BwOgooV2ViQ29yZTo6RG9jdW1lbnQ6On5E
b2N1bWVudCk6CihXZWJDb3JlOjpEb2N1bWVudDo6bWF0Y2hNZWRpYSk6CihXZWJDb3JlOjpEb2N1
bWVudDo6c3R5bGVTZWxlY3RvckNoYW5nZWQpOgoqIGRvbS9Eb2N1bWVudC5oOgoqIHBhZ2UvRE9N
V2luZG93LmNwcDoKKFdlYkNvcmU6OkRPTVdpbmRvdzo6bWF0Y2hNZWRpYSk6CihXZWJDb3JlOjpE
T01XaW5kb3c6OmNsZWFyKToKKiBwYWdlL0RPTVdpbmRvdy5oOgooV2ViQ29yZTo6RE9NV2luZG93
OjpkZWZhdWx0U3RhdHVzKToKKiBwYWdlL0RPTVdpbmRvdy5pZGw6CgpCdWlsZCBpc3N1ZXMKCiog
RGVyaXZlZFNvdXJjZXMubWFrZToKKiBHTlVtYWtlZmlsZS5hbToKKiBXZWJDb3JlLmd5cGk6Ciog
V2ViQ29yZS5wcmk6CiogV2ViQ29yZS5wcm86CiogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgoqIGJpbmRpbmdzL2dvYmplY3QvR05VbWFrZWZpbGUuYW06CgpUZXN0czogZmFzdC9t
ZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAxLmh0bWwKICAgICAgIGZhc3QvbWVkaWEvbWVkaWEtcXVl
cnktbGlzdC0wMi5odG1sCiAgICAgICBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMuaHRt
bAoKTGF5b3V0VGVzdHM6Cgp3aW5kb3cubWF0Y2hNZWRpYSBhbmQgTWVkaWFRdWVyeUxpc3QgdGVz
dHMuCgoqIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQ6Ciog
ZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy1leHBlY3RlZC50eHQ6
CiogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAxLWV4cGVjdGVkLnR4dDogQWRkZWQuCiog
ZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAxLmh0bWw6IEFkZGVkLgoqIGZhc3QvbWVkaWEv
bWVkaWEtcXVlcnktbGlzdC0wMi1leHBlY3RlZC50eHQ6IEFkZGVkLgoqIGZhc3QvbWVkaWEvbWVk
aWEtcXVlcnktbGlzdC0wMi5odG1sOiBBZGRlZC4KKiBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxp
c3QtMDMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKiBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3Qt
MDMuaHRtbDogQWRkZWQuCiogcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0
OgoqIHBsYXRmb3JtL21hYy9Ta2lwcGVkOgoqIHBsYXRmb3JtL3dpbi9Ta2lwcGVkOgotLS0KIExh
eW91dFRlc3RzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyMSAr
KysKIC4uLi9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0IHwg
ICAgMSArCiAuLi4vd2luZG93LXByb3BlcnR5LWRlc2NyaXB0b3JzLWV4cGVjdGVkLnR4dCAgICAg
ICB8ICAgIDEgKwogLi4uL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMS1leHBlY3RlZC50
eHQgICAgfCAgIDE1ICsrCiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3Qt
MDEuaHRtbCAgICB8ICAgNTIgKysrKysrCiAuLi4vZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0
LTAyLWV4cGVjdGVkLnR4dCAgICB8ICAgMjUgKysrCiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhL21l
ZGlhLXF1ZXJ5LWxpc3QtMDIuaHRtbCAgICB8ICAgNjEgKysrKysrKwogLi4uL2Zhc3QvbWVkaWEv
bWVkaWEtcXVlcnktbGlzdC0wMy1leHBlY3RlZC50eHQgICAgfCAgIDQxICsrKysrCiBMYXlvdXRU
ZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMuaHRtbCAgICB8ICAgNzAgKysrKysr
KysKIC4uLi9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQgICAgICAgIHwg
ICAgNCArLQogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQgICAgICAgICAgICAgICAg
ICAgfCAgICA0ICstCiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZCAgICAgICAgICAg
ICAgICAgICB8ICAgIDQgKy0KIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgIDEwMSArKysrKysrKysrKysKIFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
bWFrZSAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiArCiBXZWJDb3JlL0dOVW1ha2VmaWxl
LmFtICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTIgKystCiBXZWJDb3JlL1dlYkNv
cmUuZ3lwaSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTAgKy0KIFdlYkNvcmUv
V2ViQ29yZS5wcmkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiArCiBXZWJD
b3JlL1dlYkNvcmUucHJvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDYgKwog
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogICAgICAgICAgfCAgIDQ0
ICsrKysrCiBXZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvR05VbWFrZWZpbGUuYW0gICAgICAgICAg
ICB8ICAgIDYgKwogLi4uL2JpbmRpbmdzL2pzL0pTTWVkaWFRdWVyeUxpc3RMaXN0ZW5lckN1c3Rv
bS5jcHAgfCAgIDU5ICsrKysrKysKIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9ySlMucG0gICAgICAgIHwgICAzNyArKysrLQogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JWOC5wbSAgICAgICAgfCAgIDU5ICsrKysrKy0tCiAuLi4vdjgvY3VzdG9tL1Y4
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckN1c3RvbS5jcHAgICB8ICAgNDUgKysrKysrCiBXZWJDb3Jl
L2Nzcy9NZWRpYVF1ZXJ5TGlzdC5jcHAgICAgICAgICAgICAgICAgICAgICB8ICAgOTkgKysrKysr
KysrKysrCiBXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdC5oICAgICAgICAgICAgICAgICAgICAg
ICB8ICAgNzMgKysrKysrKysrCiBXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdC5pZGwgICAgICAg
ICAgICAgICAgICAgICB8ICAgMzMgKysrKwogV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3RMaXN0
ZW5lci5oICAgICAgICAgICAgICAgfCAgIDU0ICsrKysrKysKIFdlYkNvcmUvY3NzL01lZGlhUXVl
cnlMaXN0TGlzdGVuZXIuaWRsICAgICAgICAgICAgIHwgICAzMiArKysrCiBXZWJDb3JlL2Nzcy9N
ZWRpYVF1ZXJ5TWF0Y2hlci5jcHAgICAgICAgICAgICAgICAgICB8ICAxNjUgKysrKysrKysrKysr
KysrKysrKysKIFdlYkNvcmUvY3NzL01lZGlhUXVlcnlNYXRjaGVyLmggICAgICAgICAgICAgICAg
ICAgIHwgICA5NCArKysrKysrKysrKwogV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAgIDE2ICsrCiBXZWJDb3JlL2RvbS9Eb2N1bWVudC5oICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDcgKwogV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5j
cHAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEwICstCiBXZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmggICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDggKy0KIFdlYkNvcmUvcGFnZS9E
T01XaW5kb3cuaWRsICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMyArLQogMzYgZmlsZXMg
Y2hhbmdlZCwgMTI1MCBpbnNlcnRpb25zKCspLCAyNiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDEtZXhwZWN0
ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1x
dWVyeS1saXN0LTAxLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L21l
ZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDItZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQg
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAyLmh0bWwKIGNyZWF0ZSBt
b2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMtZXhw
ZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRp
YS1xdWVyeS1saXN0LTAzLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTWVkaWFRdWVyeUxpc3RMaXN0ZW5lckN1c3RvbS5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0
NCBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJDdXN0
b20uY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3QuY3Bw
CiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3QuaAogY3JlYXRl
IG1vZGUgMTAwNjQ0IFdlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0LmlkbAogY3JlYXRlIG1vZGUg
MTAwNjQ0IFdlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaAogY3JlYXRlIG1vZGUg
MTAwNjQ0IFdlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaWRsCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgV2ViQ29yZS9jc3MvTWVkaWFRdWVyeU1hdGNoZXIuY3BwCiBjcmVhdGUgbW9kZSAx
MDA2NDQgV2ViQ29yZS9jc3MvTWVkaWFRdWVyeU1hdGNoZXIuaAoKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjZGE0MTZkLi44
NzdmMjk4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTAtMDktMTAgIEx1aXogQWdvc3Rpbmkg
IDxsdWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IENTU09NIFZpZXcgbWF0Y2hNZWRpYSBp
bnRlcmZhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTM3MjA1CisKKyAgICAgICAgd2luZG93Lm1hdGNoTWVkaWEgYW5kIE1lZGlhUXVlcnlMaXN0IHRl
c3RzLgorCisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnR5LWRlc2Ny
aXB0b3JzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxp
c3QtMDEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhL21lZGlhLXF1
ZXJ5LWxpc3QtMDEuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYS9tZWRpYS1xdWVy
eS1saXN0LTAyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYS9tZWRp
YS1xdWVyeS1saXN0LTAyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWEvbWVkaWEt
cXVlcnktbGlzdC0wMy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWEv
bWVkaWEtcXVlcnktbGlzdC0wMy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJv
bWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1NraXBw
ZWQ6CisgICAgICAgICogcGxhdGZvcm0vd2luL1NraXBwZWQ6CisKIDIwMTAtMDktMTAgIFBhdmVs
IFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgWXVyeSBTZW1pa2hhdHNreS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dp
bmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CmluZGV4IGU1NTNiZWMuLjdl
OTYzNTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJv
cGVydGllcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dp
bmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dApAQCAtMjIzNSw2ICsyMjM1LDcgQEAgd2luZG93
LmxvY2F0aW9uYmFyLnZpc2libGUgW2Jvb2xlYW5dCiB3aW5kb3cubG9nIFtmdW5jdGlvbl0KIHdp
bmRvdy5sb2dQcm9wZXJ0aWVzIFtmdW5jdGlvbl0KIHdpbmRvdy5sb2dWYWx1ZSBbZnVuY3Rpb25d
Cit3aW5kb3cubWF0Y2hNZWRpYSBbZnVuY3Rpb25dCiB3aW5kb3cubWVudWJhciBbb2JqZWN0IEJh
ckluZm9dCiB3aW5kb3cubWVudWJhci52aXNpYmxlIFtib29sZWFuXQogd2luZG93Lm1vdmVCeSBb
ZnVuY3Rpb25dCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93
LXByb3BlcnR5LWRlc2NyaXB0b3JzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L1dpbmRvdy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMtZXhwZWN0ZWQudHh0CmluZGV4IGE3
NmJmNzMuLjMzNDljODAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93
aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMtZXhwZWN0ZWQudHh0
CkBAIC01MDQsNiArNTA0LDcgQEAgUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KHdpbmRvdywgJ2dldE1hdGNoZWRDU1NSdWxlcycpIGlzIHVuZGVmaW5lZC4KIFBBU1MgT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdnZXRTZWxlY3Rpb24nKSBpcyB1bmRl
ZmluZWQuCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnaGFz
T3duUHJvcGVydHknKSBpcyB1bmRlZmluZWQuCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3Iod2luZG93LCAnaXNQcm90b3R5cGVPZicpIGlzIHVuZGVmaW5lZC4KK1BBU1MgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdtYXRjaE1lZGlhJykgaXMgdW5k
ZWZpbmVkLgogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ21v
dmVCeScpIGlzIHVuZGVmaW5lZC4KIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cih3aW5kb3csICdtb3ZlVG8nKSBpcyB1bmRlZmluZWQuCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnb3BlbicpIGlzIHVuZGVmaW5lZC4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDEtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRlYmEzZjUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDEtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKK1Rlc3QgdGhlIE1lZGlhUXVlcnlMaXN0IGludGVyZmFj
ZTogaHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3Nzb20tdmlldy8jdGhlLW1lZGlhcXVlcnlsaXN0
LWludGVyZmFjZS4KKworInNjcmVlbiIgZXZhbHVhdGVzIHRvIHRydWU6IFBBU1MKKyJwcm9qZWN0
aW9uIiBldmFsdWF0ZXMgdG8gZmFsc2U6IFBBU1MKKyJhbGwgYW5kIChjb2xvcikiIGV2YWx1YXRl
cyB0byB0cnVlOiBQQVNTCisibm90IHByb2plY3Rpb24gYW5kIChjb2xvcikiIGV2YWx1YXRlcyB0
byB0cnVlOiBQQVNTCisiKGNvbG9yKSIgZXZhbHVhdGVzIHRvIHRydWU6IFBBU1MKKyIoY29sb3Ii
IGV2YWx1YXRlcyB0byBmYWxzZTogUEFTUworImNvbG9yIiBldmFsdWF0ZXMgdG8gZmFsc2U6IFBB
U1MKKyJnYXJiYWdlIiBldmFsdWF0ZXMgdG8gZmFsc2U6IFBBU1MKKyIobWluLWRldmljZS13aWR0
aDogMTAwcHgpIiBldmFsdWF0ZXMgdG8gdHJ1ZTogUEFTUworIihtaW4tZGV2aWNlLXdpZHRoOiA1
MDAwMHB4KSIgZXZhbHVhdGVzIHRvIGZhbHNlOiBQQVNTCisiKC13ZWJraXQtYW5pbWF0aW9uOiAx
KSIgZXZhbHVhdGVzIHRvIHRydWU6IFBBU1MKKyIoLXdlYmtpdC10cmFuc2Zvcm0tMmQpIiBldmFs
dWF0ZXMgdG8gdHJ1ZTogUEFTUworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlh
L21lZGlhLXF1ZXJ5LWxpc3QtMDEuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEt
cXVlcnktbGlzdC0wMS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMz
ZGNjNjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1
ZXJ5LWxpc3QtMDEuaHRtbApAQCAtMCwwICsxLDUyIEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxl
PlRlc3QgQ1NTT00gVmlldyBtb2R1bGU6IE1lZGlhUXVlcnlMaXN0IGludGVyZmFjZTwvdGl0bGU+
Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorCis8L3N0eWxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisK
KyAgICBmdW5jdGlvbiBsb2cobSkKKyAgICB7CisgICAgICAgIHZhciByZXN1bHRzID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdHMnKTsKKyAgICAgICAgcmVzdWx0cy5pbm5lckhUTUwg
Kz0gbSArICc8YnI+JzsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0UXVlcnkocXVlcnksIGV4
cGVjdGVkKQorICAgIHsKKyAgICAgICAgdmFyIGlzVHJ1ZSA9IHdpbmRvdy5tYXRjaE1lZGlhKHF1
ZXJ5KS5tYXRjaGVzOworICAgICAgICB2YXIgbWVzc2FnZSA9ICdcIicgKyBxdWVyeSArICdcIiBl
dmFsdWF0ZXMgdG8gJyArIChpc1RydWUgPyAndHJ1ZScgOiAnZmFsc2UnKTsKKyAgICAgICAgbWVz
c2FnZSArPSAoaXNUcnVlID09IGV4cGVjdGVkKSA/ICc6IFBBU1MnIDogJzogRkFJTCc7CisgICAg
ICAgIGxvZyhtZXNzYWdlKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0cygpCisgICAg
eworICAgICAgICB0ZXN0UXVlcnkoJ3NjcmVlbicsIHRydWUpOworICAgICAgICB0ZXN0UXVlcnko
J3Byb2plY3Rpb24nLCBmYWxzZSk7CisKKyAgICAgICAgdGVzdFF1ZXJ5KCdhbGwgYW5kIChjb2xv
ciknLCB0cnVlKTsKKyAgICAgICAgdGVzdFF1ZXJ5KCdub3QgcHJvamVjdGlvbiBhbmQgKGNvbG9y
KScsIHRydWUpOworICAgICAgICB0ZXN0UXVlcnkoJyhjb2xvciknLCB0cnVlKTsKKyAgICAgICAg
dGVzdFF1ZXJ5KCcoY29sb3InLCBmYWxzZSk7CisgICAgICAgIHRlc3RRdWVyeSgnY29sb3InLCBm
YWxzZSk7CisKKyAgICAgICAgdGVzdFF1ZXJ5KCdnYXJiYWdlJywgZmFsc2UpOworCisgICAgICAg
IHRlc3RRdWVyeSgnKG1pbi1kZXZpY2Utd2lkdGg6IDEwMHB4KScsIHRydWUpOworICAgICAgICB0
ZXN0UXVlcnkoJyhtaW4tZGV2aWNlLXdpZHRoOiA1MDAwMHB4KScsIGZhbHNlKTsKKworICAgICAg
ICB0ZXN0UXVlcnkoJygtd2Via2l0LWFuaW1hdGlvbjogMSknLCB0cnVlKTsKKyAgICAgICAgdGVz
dFF1ZXJ5KCcoLXdlYmtpdC10cmFuc2Zvcm0tMmQpJywgdHJ1ZSk7CisgICAgfQorCis8L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdHMoKSI+CisgICAgPHA+VGVzdCB0aGUg
TWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlOiA8YSBocmVmPSJodHRwOi8vZGV2LnczLm9yZy9jc3N3
Zy9jc3NvbS12aWV3LyN0aGUtbWVkaWFxdWVyeWxpc3QtaW50ZXJmYWNlIiB0aXRsZT0iQ1NTT00g
VmlldyBNb2R1bGUiPmh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzc29tLXZpZXcvI3RoZS1tZWRp
YXF1ZXJ5bGlzdC1pbnRlcmZhY2U8L2E+LjwvcD4KKyAgICA8ZGl2IGlkPSJyZXN1bHRzIj4KKyAg
ICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
bWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjYzNjQzZDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MjUgQEAKK1Rlc3QgdGhlIE1lZGlhUXVlcnlMaXN0IGludGVyZmFjZTogaHR0cDovL2Rldi53My5v
cmcvY3Nzd2cvY3Nzb20tdmlldy8jdGhlLW1lZGlhcXVlcnlsaXN0LWludGVyZmFjZS4KKworVGVz
dGluZyBhZGRMaXN0ZW5lciBpbiBkaWZmZXJlbnQgTWVkaWFRdWVyeUxpc3Qgb2JqZWN0cyBhbmQg
dGhlIGNhbGxiYWNrIGNhbGwgc2VxdWVuY2UKKworLS0tLS0tLS0tLS0tLSBtaW5pbWl6ZWQgLS0t
LS0tLS0tLS0tLQorWzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hh
bmdlZCB0byBmYWxzZQorWzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQp
IGNoYW5nZWQgdG8gdHJ1ZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dl
ZCkgY2hhbmdlZCB0byBmYWxzZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtaW5p
bWl6ZWQpIGNoYW5nZWQgdG8gdHJ1ZQorLS0tLS0tLS0tLS0tLSBtYXhpbWl6ZWQgLS0tLS0tLS0t
LS0tLQorWzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQpIGNoYW5nZWQg
dG8gZmFsc2UKK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWF4aW1pemVkKSBjaGFu
Z2VkIHRvIHRydWUKK1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSBj
aGFuZ2VkIHRvIGZhbHNlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1heGltaXpl
ZCkgY2hhbmdlZCB0byB0cnVlCistLS0tLS0tLS0tLS0tIHdpbmRvd2VkIC0tLS0tLS0tLS0tLS0K
K1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQgdG8gdHJ1
ZQorWzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtYXhpbWl6ZWQpIGNoYW5nZWQgdG8g
ZmFsc2UKK1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQg
dG8gdHJ1ZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtYXhpbWl6ZWQpIGNoYW5n
ZWQgdG8gZmFsc2UKKy0tLS0tLS0tLS0tLS0gZmxvYXRpbmcgLS0tLS0tLS0tLS0tLQorWzFdIC0g
cXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0byBmYWxzZQorWzFd
IC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBmbG9hdGluZykgY2hhbmdlZCB0byB0cnVlCitb
Ml0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFuZ2VkIHRvIGZhbHNl
CitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IGZsb2F0aW5nKSBjaGFuZ2VkIHRvIHRy
dWUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0
LTAyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDIuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZGVjZTQzCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAyLmh0bWwK
QEAgLTAsMCArMSw2MSBAQAorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5UZXN0IENTU09NIFZpZXcg
bW9kdWxlOiBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U8L3RpdGxlPgorPHN0eWxlIHR5cGU9InRl
eHQvY3NzIj4KKworPC9zdHlsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFy
c2V0PSJ1dGYtOCI+CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgICAgZnVuY3Rpb24gbG9n
KG0pIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdHMnKS5pbm5lckhU
TUwgKz0gbSArICc8YnI+JzsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjYWxsYmFjazEocXVlcnkp
IHsKKyAgICAgICAgbG9nKCJbMV0gLSBxdWVyeSAiICsgcXVlcnkubWVkaWEgKyAiIGNoYW5nZWQg
dG8gIiArIChxdWVyeS5tYXRjaGVzID8gInRydWUiIDogImZhbHNlIikpOworICAgIH0KKworICAg
IGZ1bmN0aW9uIGNhbGxiYWNrMihxdWVyeSkgeworICAgICAgICBsb2coIlsyXSAtIHF1ZXJ5ICIg
KyBxdWVyeS5tZWRpYSArICIgY2hhbmdlZCB0byAiICsgKHF1ZXJ5Lm1hdGNoZXMgPyAidHJ1ZSIg
OiAiZmFsc2UiKSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdHMoKQorICAgIHsKKyAg
ICAgICAgaWYgKCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICByZXR1
cm47CisKKyAgICAgICAgd2luZG93ZWRRdWVyeSA9IHdpbmRvdy5tYXRjaE1lZGlhKCIoLXdlYmtp
dC12aWV3LW1vZGU6IHdpbmRvd2VkKSIpOworICAgICAgICBmbG9hdGluZ1F1ZXJ5ID0gd2luZG93
Lm1hdGNoTWVkaWEoIigtd2Via2l0LXZpZXctbW9kZTogZmxvYXRpbmcpIik7CisgICAgICAgIG1p
bmltaXplZFF1ZXJ5ID0gd2luZG93Lm1hdGNoTWVkaWEoIigtd2Via2l0LXZpZXctbW9kZTogbWlu
aW1pemVkKSIpOworICAgICAgICBtYXhpbWl6ZWRRdWVyeSA9IHdpbmRvdy5tYXRjaE1lZGlhKCIo
LXdlYmtpdC12aWV3LW1vZGU6IG1heGltaXplZCkiKTsKKworICAgICAgICB3aW5kb3dlZFF1ZXJ5
LmFkZExpc3RlbmVyKGNhbGxiYWNrMSk7CisgICAgICAgIGZsb2F0aW5nUXVlcnkuYWRkTGlzdGVu
ZXIoY2FsbGJhY2sxKTsKKyAgICAgICAgbWluaW1pemVkUXVlcnkuYWRkTGlzdGVuZXIoY2FsbGJh
Y2sxKTsKKyAgICAgICAgbWF4aW1pemVkUXVlcnkuYWRkTGlzdGVuZXIoY2FsbGJhY2sxKTsKKwor
ICAgICAgICB3aW5kb3dlZFF1ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNrMik7CisgICAgICAgIGZs
b2F0aW5nUXVlcnkuYWRkTGlzdGVuZXIoY2FsbGJhY2syKTsKKyAgICAgICAgbWluaW1pemVkUXVl
cnkuYWRkTGlzdGVuZXIoY2FsbGJhY2syKTsKKyAgICAgICAgbWF4aW1pemVkUXVlcnkuYWRkTGlz
dGVuZXIoY2FsbGJhY2syKTsKKworICAgICAgICBsb2coIi0tLS0tLS0tLS0tLS0gbWluaW1pemVk
IC0tLS0tLS0tLS0tLS0iKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Vmlld01v
ZGVNZWRpYUZlYXR1cmUoIm1pbmltaXplZCIpOworICAgICAgICBsb2coIi0tLS0tLS0tLS0tLS0g
bWF4aW1pemVkIC0tLS0tLS0tLS0tLS0iKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
c2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoIm1heGltaXplZCIpOworICAgICAgICBsb2coIi0tLS0t
LS0tLS0tLS0gd2luZG93ZWQgLS0tLS0tLS0tLS0tLSIpOworICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSgid2luZG93ZWQiKTsKKyAgICAgICAgbG9n
KCItLS0tLS0tLS0tLS0tIGZsb2F0aW5nIC0tLS0tLS0tLS0tLS0iKTsKKyAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoImZsb2F0aW5nIik7CisgICAg
fQorCis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdHMoKSI+CisgICAg
PHA+VGVzdCB0aGUgTWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlOiA8YSBocmVmPSJodHRwOi8vZGV2
LnczLm9yZy9jc3N3Zy9jc3NvbS12aWV3LyN0aGUtbWVkaWFxdWVyeWxpc3QtaW50ZXJmYWNlIiB0
aXRsZT0iQ1NTT00gVmlldyBNb2R1bGUiPmh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzc29tLXZp
ZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2U8L2E+LjwvcD4KKyAgICA8cD5UZXN0aW5n
IGFkZExpc3RlbmVyIGluIGRpZmZlcmVudCBNZWRpYVF1ZXJ5TGlzdCBvYmplY3RzIGFuZCB0aGUg
Y2FsbGJhY2sgY2FsbCBzZXF1ZW5jZTwvcD4KKyAgICA8ZGl2IGlkPSJyZXN1bHRzIj4KKyAgICA8
L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVk
aWEvbWVkaWEtcXVlcnktbGlzdC0wMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21l
ZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmYyNGUyMDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDEg
QEAKK1Rlc3QgdGhlIE1lZGlhUXVlcnlMaXN0IGludGVyZmFjZTogaHR0cDovL2Rldi53My5vcmcv
Y3Nzd2cvY3Nzb20tdmlldy8jdGhlLW1lZGlhcXVlcnlsaXN0LWludGVyZmFjZS4KKworVGVzdGlu
ZyByZW1vdmVMaXN0ZW5lciBpbiBkaWZmZXJlbnQgTWVkaWFRdWVyeUxpc3Qgb2JqZWN0cyBhbmQg
dGhlIGNhbGxiYWNrIGNhbGwgc2VxdWVuY2UKKworYWRkaW5nIHdpbmRvd2VkWzFdLCBtaW5pbWl6
ZWRbMV0sIHdpbmRvd2VkWzJdIGFuZCBtaW5pbWl6ZWRbMl0KKworLS0tLS0tLS0tLS0tLSBtaW5p
bWl6ZWQgLS0tLS0tLS0tLS0tLQorWzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5k
b3dlZCkgY2hhbmdlZCB0byBmYWxzZQorWzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBt
aW5pbWl6ZWQpIGNoYW5nZWQgdG8gdHJ1ZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2Rl
OiB3aW5kb3dlZCkgY2hhbmdlZCB0byBmYWxzZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1t
b2RlOiBtaW5pbWl6ZWQpIGNoYW5nZWQgdG8gdHJ1ZQorLS0tLS0tLS0tLS0tLSB3aW5kb3dlZCAt
LS0tLS0tLS0tLS0tCitbMV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBj
aGFuZ2VkIHRvIHRydWUKK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVk
KSBjaGFuZ2VkIHRvIGZhbHNlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRv
d2VkKSBjaGFuZ2VkIHRvIHRydWUKK1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWlu
aW1pemVkKSBjaGFuZ2VkIHRvIGZhbHNlCisKKworcmVtb3Zpbmcgd2luZG93ZWRbMV0gYW5kIG1p
bmltaXplZFsyXQorCistLS0tLS0tLS0tLS0tIG1pbmltaXplZCAtLS0tLS0tLS0tLS0tCitbMV0g
LSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCkgY2hhbmdlZCB0byB0cnVlCitb
Ml0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFuZ2VkIHRvIGZhbHNl
CistLS0tLS0tLS0tLS0tIHdpbmRvd2VkIC0tLS0tLS0tLS0tLS0KK1sxXSAtIHF1ZXJ5ICgtd2Vi
a2l0LXZpZXctbW9kZTogbWluaW1pemVkKSBjaGFuZ2VkIHRvIGZhbHNlCitbMl0gLSBxdWVyeSAo
LXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFuZ2VkIHRvIHRydWUKKworCithZGRpbmcg
d2luZG93ZWRbMV0gYW5kIG1pbmltaXplZFsyXQorCistLS0tLS0tLS0tLS0tIG1pbmltaXplZCAt
LS0tLS0tLS0tLS0tCitbMV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCkg
Y2hhbmdlZCB0byB0cnVlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2Vk
KSBjaGFuZ2VkIHRvIGZhbHNlCitbMV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRv
d2VkKSBjaGFuZ2VkIHRvIGZhbHNlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1p
bmltaXplZCkgY2hhbmdlZCB0byB0cnVlCistLS0tLS0tLS0tLS0tIHdpbmRvd2VkIC0tLS0tLS0t
LS0tLS0KK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSBjaGFuZ2Vk
IHRvIGZhbHNlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFu
Z2VkIHRvIHRydWUKK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNo
YW5nZWQgdG8gdHJ1ZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQp
IGNoYW5nZWQgdG8gZmFsc2UKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9t
ZWRpYS1xdWVyeS1saXN0LTAzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1
ZXJ5LWxpc3QtMDMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMmQ0
MDhkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVy
eS1saXN0LTAzLmh0bWwKQEAgLTAsMCArMSw3MCBAQAorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5U
ZXN0IENTU09NIFZpZXcgbW9kdWxlOiBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U8L3RpdGxlPgor
PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKworPC9zdHlsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisg
ICAgZnVuY3Rpb24gbG9nKG0pIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jl
c3VsdHMnKS5pbm5lckhUTUwgKz0gbSArICc8YnI+JzsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBj
YWxsYmFjazEocXVlcnkpIHsKKyAgICAgICAgbG9nKCJbMV0gLSBxdWVyeSAiICsgcXVlcnkubWVk
aWEgKyAiIGNoYW5nZWQgdG8gIiArIChxdWVyeS5tYXRjaGVzID8gInRydWUiIDogImZhbHNlIikp
OworICAgIH0KKworICAgIGZ1bmN0aW9uIGNhbGxiYWNrMihxdWVyeSkgeworICAgICAgICBsb2co
IlsyXSAtIHF1ZXJ5ICIgKyBxdWVyeS5tZWRpYSArICIgY2hhbmdlZCB0byAiICsgKHF1ZXJ5Lm1h
dGNoZXMgPyAidHJ1ZSIgOiAiZmFsc2UiKSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVz
dHMoKQorICAgIHsKKyAgICAgICAgaWYgKCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisg
ICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgd2luZG93ZWRRdWVyeSA9IHdpbmRvdy5tYXRj
aE1lZGlhKCIoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSIpOworICAgICAgICBtaW5pbWl6
ZWRRdWVyeSA9IHdpbmRvdy5tYXRjaE1lZGlhKCIoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXpl
ZCkiKTsKKworICAgICAgICBsb2coImFkZGluZyB3aW5kb3dlZFsxXSwgbWluaW1pemVkWzFdLCB3
aW5kb3dlZFsyXSBhbmQgbWluaW1pemVkWzJdPGJyPiIpOworICAgICAgICB3aW5kb3dlZFF1ZXJ5
LmFkZExpc3RlbmVyKGNhbGxiYWNrMSk7CisgICAgICAgIG1pbmltaXplZFF1ZXJ5LmFkZExpc3Rl
bmVyKGNhbGxiYWNrMSk7CisgICAgICAgIHdpbmRvd2VkUXVlcnkuYWRkTGlzdGVuZXIoY2FsbGJh
Y2syKTsKKyAgICAgICAgbWluaW1pemVkUXVlcnkuYWRkTGlzdGVuZXIoY2FsbGJhY2syKTsKKwor
ICAgICAgICBsb2coIi0tLS0tLS0tLS0tLS0gbWluaW1pemVkIC0tLS0tLS0tLS0tLS0iKTsKKyAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoIm1pbmlt
aXplZCIpOworICAgICAgICBsb2coIi0tLS0tLS0tLS0tLS0gd2luZG93ZWQgLS0tLS0tLS0tLS0t
LSIpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVy
ZSgid2luZG93ZWQiKTsKKworICAgICAgICBsb2coIjxicj48YnI+cmVtb3Zpbmcgd2luZG93ZWRb
MV0gYW5kIG1pbmltaXplZFsyXTxicj4iKTsKKyAgICAgICAgd2luZG93ZWRRdWVyeS5yZW1vdmVM
aXN0ZW5lcihjYWxsYmFjazEpOworICAgICAgICBtaW5pbWl6ZWRRdWVyeS5yZW1vdmVMaXN0ZW5l
cihjYWxsYmFjazIpOworCisgICAgICAgIGxvZygiLS0tLS0tLS0tLS0tLSBtaW5pbWl6ZWQgLS0t
LS0tLS0tLS0tLSIpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9kZU1l
ZGlhRmVhdHVyZSgibWluaW1pemVkIik7CisgICAgICAgIGxvZygiLS0tLS0tLS0tLS0tLSB3aW5k
b3dlZCAtLS0tLS0tLS0tLS0tIik7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFZp
ZXdNb2RlTWVkaWFGZWF0dXJlKCJ3aW5kb3dlZCIpOworCisgICAgICAgIGxvZygiPGJyPjxicj5h
ZGRpbmcgd2luZG93ZWRbMV0gYW5kIG1pbmltaXplZFsyXTxicj4iKTsKKyAgICAgICAgd2luZG93
ZWRRdWVyeS5hZGRMaXN0ZW5lcihjYWxsYmFjazEpOworICAgICAgICBtaW5pbWl6ZWRRdWVyeS5h
ZGRMaXN0ZW5lcihjYWxsYmFjazIpOworCisgICAgICAgIGxvZygiLS0tLS0tLS0tLS0tLSBtaW5p
bWl6ZWQgLS0tLS0tLS0tLS0tLSIpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRW
aWV3TW9kZU1lZGlhRmVhdHVyZSgibWluaW1pemVkIik7CisgICAgICAgIGxvZygiLS0tLS0tLS0t
LS0tLSB3aW5kb3dlZCAtLS0tLS0tLS0tLS0tIik7CisgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCJ3aW5kb3dlZCIpOworCisgICAgfQorCis8L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdHMoKSI+CisgICAgPHA+VGVzdCB0
aGUgTWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlOiA8YSBocmVmPSJodHRwOi8vZGV2LnczLm9yZy9j
c3N3Zy9jc3NvbS12aWV3LyN0aGUtbWVkaWFxdWVyeWxpc3QtaW50ZXJmYWNlIiB0aXRsZT0iQ1NT
T00gVmlldyBNb2R1bGUiPmh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzc29tLXZpZXcvI3RoZS1t
ZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2U8L2E+LjwvcD4KKyAgICA8cD5UZXN0aW5nIHJlbW92ZUxp
c3RlbmVyIGluIGRpZmZlcmVudCBNZWRpYVF1ZXJ5TGlzdCBvYmplY3RzIGFuZCB0aGUgY2FsbGJh
Y2sgY2FsbCBzZXF1ZW5jZTwvcD4KKyAgICA8ZGl2IGlkPSJyZXN1bHRzIj4KKyAgICA8L2Rpdj4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
L3Rlc3RfZXhwZWN0YXRpb25zLnR4dAppbmRleCA2ZTU5YjUyLi4wNDI3YzJlIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CkBA
IC0yNDkyLDggKzI0OTIsMTAgQEAgQlVHMzg1NzggOiBwbHVnaW5zL292ZXJyaWRlLW5vZGUtbWV0
aG9kLmh0bWwgPSBURVhUCiBCVUczODY1MyBNQUMgOiBlZGl0aW5nL3NlbGVjdGlvbi9maW5kLXll
bnNpZ24tYW5kLWJhY2tzbGFzaC5odG1sID0gVEVYVAogQlVHMzg2NTYgOiBmYXN0L21lZGlhL3By
aW50LXJlc3RvcmVzLXByZXZpb3VzLW1lZGlhdHlwZS5odG1sID0gVEVYVAogCi0vLyBOZWVkcyBs
YXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSgpIChpbXBsZW1lbnRl
ZCBvbiBRdCBvbmx5KQorLy8gTmVlZHMgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Vmlld01vZGVN
ZWRpYUZlYXR1cmUoKQogQlVHNDA2ODAgU0tJUCA6IGZhc3QvbWVkaWEvdmlldy1tb2RlLW1lZGlh
LWZlYXR1cmUuaHRtbCA9IEZBSUwKK0JVRzQwNjgwIFNLSVAgOiBmYXN0L21lZGlhL21lZGlhLXF1
ZXJ5LWxpc3QtMDIuaHRtbCA9IEZBSUwKK0JVRzQwNjgwIFNLSVAgOiBmYXN0L21lZGlhL21lZGlh
LXF1ZXJ5LWxpc3QtMDMuaHRtbCA9IEZBSUwKIAogLy8gVW5rbm93biBmbGFraW5lc3MuCiBCVUcz
ODcwNiA6IHN2Zy9jdXN0b20vZGVlcC1keW5hbWljLXVwZGF0ZXMuc3ZnID0gSU1BR0UrVEVYVCBJ
TUFHRSBQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCmluZGV4IDhkYTU3MTkuLmZhNTkxY2Qg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCkBAIC0xNDAsOCArMTQwLDEwIEBAIGh0dHAvdGVz
dHMvcGx1Z2lucy9wbHVnaW4tZG9jdW1lbnQtaGFzLWZvY3VzLmh0bWwKICMgTWlzc2VzIHNldE1l
ZGlhVHlwZSgpIGFuZCBpbXBsZW1lbnRhdGlvbgogZmFzdC9tZWRpYS9wcmludC1yZXN0b3Jlcy1w
cmV2aW91cy1tZWRpYXR5cGUuaHRtbAogCi0jIHZpZXcgbW9kZSBtZWRpYSBmZWF0dXJlCisjIE5l
ZWRzIGxheW91dFRlc3RDb250cm9sbGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCkKIGZhc3Qv
bWVkaWEvdmlldy1tb2RlLW1lZGlhLWZlYXR1cmUuaHRtbAorZmFzdC9tZWRpYS9tZWRpYS1xdWVy
eS1saXN0LTAyLmh0bWwKK2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMy5odG1sCiAKICMg
VGVzdCBpcyBmbGFreSBhbmQgdGh1cyBub3QgdXNlZnVsIHVudGlsIGZpeGVkLgogIyBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzY2NDIKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Nr
aXBwZWQKaW5kZXggYjQzZTUyYy4uMmVlOGFiMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vd2luL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQK
QEAgLTg0OCw4ICs4NDgsMTAgQEAgZmFzdC9kb20vSFRNTE1ldGVyRWxlbWVudC9tZXRlci1wZXJj
ZW50LXNpemUuaHRtbAogZmFzdC9kb20vSFRNTE1ldGVyRWxlbWVudC9tZXRlci1zdHlsZXMuaHRt
bAogZmFzdC9kb20vSFRNTE1ldGVyRWxlbWVudC9tZXRlci1zdHlsZXMtY2hhbmdpbmctcHNldWRv
Lmh0bWwKIAotIyB2aWV3IG1vZGUgbWVkaWEgZmVhdHVyZQorIyBOZWVkcyBsYXlvdXRUZXN0Q29u
dHJvbGxlci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSgpCiBmYXN0L21lZGlhL3ZpZXctbW9kZS1t
ZWRpYS1mZWF0dXJlLmh0bWwKK2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMi5odG1sCitm
YXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMuaHRtbAogCiAjIE5lZWQgZXhwZWN0YXRpb25z
LiBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM2NDYxCiBmYXN0
L3JlcGFpbnQvb3ZlcmZsb3ctc2Nyb2xsLWJvZHktYXBwZWFyLmh0bWwKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTE3MjhmMi4uYWUwYjUz
NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMDQgQEAKKzIwMTAtMDktMTAgIEx1aXogQWdvc3RpbmkgIDxsdWl6LmFnb3N0
aW5pQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgSW1wbGVtZW50IENTU09NIFZpZXcgbWF0Y2hNZWRpYSBpbnRlcmZhY2UKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3MjA1CisKKyAg
ICAgICAgTmV3IGludGVyZmFjZXMgbWF5IGJlIHVzZWQgdG8gZXZhbHVhdGUgbWVkaWEgcXVlcmll
cyBhbmQgdG8gYXNzb2NpYXRlIGxpc3RlbmVycworICAgICAgICB0byBtZWRpYSBxdWVyaWVzLiBU
aG9zZSBsaXN0ZW5lcnMgYXJlIGNhbGxlZCB3aGVuZXZlciB0aGUgYXNzb2NpYXRlZCBxdWVyeSBj
aGFuZ2VzLgorICAgICAgICBTcGVjaWZpY2F0aW9uIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vZGV2
LnczLm9yZy9jc3N3Zy9jc3NvbS12aWV3LyN0aGUtbWVkaWFxdWVyeWxpc3QtaW50ZXJmYWNlCisK
KyAgICAgICAgVjggYW5kIEpTIGNvZGUgZ2VuZXJhdG9ycyBjaGFuZ2VkIHRvIGFjY2VwdCB2b2lk
IGNhbGxiYWNrcy4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgorCisg
ICAgICAgIE5ldyBpbnRlcmZhY2VzIE1lZGlhUXVlcnlMaXN0IGFuZCBNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyLgorICAgICAgICBTZWUgaHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3Nzb20tdmlldy8j
dGhlLW1lZGlhcXVlcnlsaXN0LWludGVyZmFjZQorCisgICAgICAgICogY3NzL01lZGlhUXVlcnlM
aXN0TGlzdGVuZXIuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUxpc3QuaWRs
OiBBZGRlZC4KKworICAgICAgICBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIGlzIGEgY2FsbGJhY2su
IEN1c3RvbSBtZXRob2RzIGFyZSBuZWVkZWQgdG8gaW1wbGVtZW50CisgICAgICAgIGNhbGxiYWNr
IGNvbXBhcmlzb24uCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU01lZGlhUXVlcnlMaXN0TGlz
dGVuZXJDdXN0b20uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTTWVkaWFRdWVyeUxp
c3RMaXN0ZW5lcjo6dHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpKU01lZGlhUXVlcnlMaXN0TGlz
dGVuZXI6OmlzRXF1YWxUbyk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVkaWFR
dWVyeUxpc3RMaXN0ZW5lckN1c3RvbS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6VjhN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjp0eXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlY4TWVkaWFR
dWVyeUxpc3RMaXN0ZW5lcjo6aXNFcXVhbFRvKToKKworICAgICAgICBDbGFzc2VzIE1lZGlhUXVl
cnlMaXN0IGFuZCBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLgorCisgICAgICAgICogY3NzL01lZGlh
UXVlcnlMaXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdDo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlMaXN0OjpNZWRpYVF1ZXJ5TGlz
dCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdDo6fk1lZGlhUXVlcnlMaXN0KToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlMaXN0OjptZWRpYSk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVF1ZXJ5TGlzdDo6YWRkTGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFRdWVyeUxpc3Q6OnJlbW92ZUxpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVl
cnlMaXN0OjpldmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdDo6c2V0
TWF0Y2hlcyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdDo6Y2hhbmdlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdDo6bWF0Y2hlcyk6CisgICAgICAgICogY3Nz
L01lZGlhUXVlcnlMaXN0Lmg6IEFkZGVkLgorICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeUxpc3RMaXN0ZW5l
cjo6fk1lZGlhUXVlcnlMaXN0TGlzdGVuZXIpOgorCisgICAgICAgIFRvIGF2b2lkIGFkZGluZyBj
b2RlIHRvIGNsYXNzZXMgRE9NV2luZG93IGFuZCBEb2N1bWVudCBhIG5ldyBjbGFzcyBNZWRpYVF1
ZXJ5TWF0Y2hlciB3YXMKKyAgICAgICAgY3JlYXRlZC4KKworICAgICAgICAqIGNzcy9NZWRpYVF1
ZXJ5TWF0Y2hlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeU1hdGNo
ZXI6Okxpc3RlbmVyOjpMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5TWF0
Y2hlcjo6TGlzdGVuZXI6On5MaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5
TWF0Y2hlcjo6TGlzdGVuZXI6OmV2YWx1YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVl
cnlNYXRjaGVyOjpNZWRpYVF1ZXJ5TWF0Y2hlcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1
ZXJ5TWF0Y2hlcjo6fk1lZGlhUXVlcnlNYXRjaGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UXVlcnlNYXRjaGVyOjp0ZXJtaW5hdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeU1h
dGNoZXI6Om1lZGlhVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5TWF0Y2hlcjo6
cHJlcGFyZUV2YWx1YXRvcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5TWF0Y2hlcjo6
ZXZhbHVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeU1hdGNoZXI6Om1hdGNoTWVk
aWEpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeU1hdGNoZXI6OmFkZExpc3RlbmVyKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlNYXRjaGVyOjpyZW1vdmVMaXN0ZW5lcik6Cisg
ICAgICAgICogY3NzL01lZGlhUXVlcnlNYXRjaGVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFRdWVyeU1hdGNoZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1
ZXJ5TWF0Y2hlcjo6ZXZhbFJvdW5kKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlNYXRj
aGVyOjpMaXN0ZW5lcjo6bGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeU1h
dGNoZXI6Okxpc3RlbmVyOjpxdWVyeSk6CisKKyAgICAgICAgRG9jdW1lbnQgYW5kIERPTVdpbmRv
dyBoYXZlIGNoYW5nZWQgdG8gc3VwcG9ydCBuZXcgZmVhdHVyZXMuIERPTVdpbmRvdyBpcyB0aGUg
Y2xhc3MgdGhhdAorICAgICAgICBwdWJsaXNoZXMgbWV0aG9kcyBtYXRjaE1lZGlhIGJ1dCBmb3Ig
cGFnZSBjYWNoZSB0byB3b3JrIHByb3Blcmx5ICB0aGUgcmVmZXJlbmNlIHRvIHRoZSAKKyAgICAg
ICAgTWVkaWFRdWVyeU1hdGNoZXIgaXMga2VwdCBieSBEb2N1bWVudCBpbnN0YW5jZS4KKworICAg
ICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6fkRv
Y3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjptYXRjaE1lZGlhKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzdHlsZVNlbGVjdG9yQ2hhbmdlZCk6CisgICAgICAgICog
ZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RE9NV2luZG93OjptYXRjaE1lZGlhKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvdzo6Y2xlYXIpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93Lmg6CisgICAgICAgIChXZWJD
b3JlOjpET01XaW5kb3c6OmRlZmF1bHRTdGF0dXMpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93
LmlkbDoKKworICAgICAgICBCdWlsZCBpc3N1ZXMKKworICAgICAgICAqIERlcml2ZWRTb3VyY2Vz
Lm1ha2U6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5neXBp
OgorICAgICAgICAqIFdlYkNvcmUucHJpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5n
cy9nb2JqZWN0L0dOVW1ha2VmaWxlLmFtOgorCisgICAgICAgIFRlc3RzOiBmYXN0L21lZGlhL21l
ZGlhLXF1ZXJ5LWxpc3QtMDEuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9tZWRpYS9tZWRpYS1x
dWVyeS1saXN0LTAyLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnkt
bGlzdC0wMy5odG1sCisKIDIwMTAtMDktMTAgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBLaWx6ZXIuCmRpZmYgLS1naXQg
YS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UKaW5kZXggYzM3ZWZiMy4uNGI1MTc1NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlCisrKyBiL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMjU5LDYgKzI1
OSw4IEBAIERPTV9DTEFTU0VTID0gXAogICAgIExvY2F0aW9uIFwKICAgICBNZWRpYUVycm9yIFwK
ICAgICBNZWRpYUxpc3QgXAorICAgIE1lZGlhUXVlcnlMaXN0IFwKKyAgICBNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyIFwKICAgICBNZW1vcnlJbmZvIFwKICAgICBNZXNzYWdlQ2hhbm5lbCBcCiAgICAg
TWVzc2FnZUV2ZW50IFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9XZWJD
b3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDFmZWIyZGEuLjU5NDc4NTUgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtNDE3
LDYgKzQxNywxMCBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNNZWRpYUVycm9yLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRp
YUxpc3QuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFMaXN0LmggXAorCURl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVF1ZXJ5TGlzdC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNNZWRpYVF1ZXJ5TGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNN
ZW1vcnlJbmZvLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lbW9yeUluZm8uaCBc
CiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lc3NhZ2VDaGFubmVsLmNwcCBcCkBAIC03Mjks
NiArNzMzLDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pT
TG9jYXRpb25DdXN0b20uaCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01haW5UaHJlYWRFeGVj
U3RhdGUuY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5o
IFwKKwlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVkaWFRdWVyeUxpc3RMaXN0ZW5lckN1c3RvbS5j
cHAgXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlQ2hhbm5lbEN1c3RvbS5jcHAgXAog
CVdlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwIFwKIAlXZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uY3BwIFwKQEAgLTk1MCwxMSArOTU1LDE2
IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9jc3MvTWVkaWFMaXN0LmNwcCBcCiAJ
V2ViQ29yZS9jc3MvTWVkaWFMaXN0LmggXAogCVdlYkNvcmUvY3NzL01lZGlhUXVlcnkuY3BwIFwK
KwlXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5LmggXAogCVdlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFs
dWF0b3IuY3BwIFwKIAlXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmggXAogCVdlYkNv
cmUvY3NzL01lZGlhUXVlcnlFeHAuY3BwIFwKIAlXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwLmgg
XAotCVdlYkNvcmUvY3NzL01lZGlhUXVlcnkuaCBcCisJV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxp
c3QuY3BwIFwKKwlXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdC5oIFwKKwlXZWJDb3JlL2Nzcy9N
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggXAorCVdlYkNvcmUvY3NzL01lZGlhUXVlcnlNYXRjaGVy
LmNwcCBcCisJV2ViQ29yZS9jc3MvTWVkaWFRdWVyeU1hdGNoZXIuaCBcCiAJV2ViQ29yZS9jc3Mv
UGFpci5oIFwKIAlXZWJDb3JlL2Nzcy9SZWN0LmggXAogCVdlYkNvcmUvY3NzL1JHQkNvbG9yLmNw
cCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCmluZGV4IDdjM2E4ZGEuLjY2ODEwNDkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0xOSw2ICsxOSw4IEBACiAgICAgICAg
ICAgICAnY3NzL0NTU1ZhcmlhYmxlc1J1bGUuaWRsJywKICAgICAgICAgICAgICdjc3MvQ291bnRl
ci5pZGwnLAogICAgICAgICAgICAgJ2Nzcy9NZWRpYUxpc3QuaWRsJywKKyAgICAgICAgICAgICdj
c3MvTWVkaWFRdWVyeUxpc3QuaWRsJywKKyAgICAgICAgICAgICdjc3MvTWVkaWFRdWVyeUxpc3RM
aXN0ZW5lci5pZGwnLAogICAgICAgICAgICAgJ2Nzcy9SZWN0LmlkbCcsCiAgICAgICAgICAgICAn
Y3NzL1JHQkNvbG9yLmlkbCcsCiAgICAgICAgICAgICAnY3NzL1N0eWxlTWVkaWEuaWRsJywKQEAg
LTc5NSw2ICs3OTcsNyBAQAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEluc3Bl
Y3RvckZyb250ZW5kSG9zdEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOEphdmFTY3JpcHRDYWxsRnJhbWVDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5k
aW5ncy92OC9jdXN0b20vVjhMb2NhdGlvbkN1c3RvbS5jcHAnLAorICAgICAgICAgICAgJ2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJDdXN0b20uY3BwJywKICAgICAg
ICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhNZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yLmNw
cCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2FnZUV2ZW50Q3VzdG9t
LmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2FnZVBvcnRDdXN0
b20uY3BwJywKQEAgLTEwNTMsMTEgKzEwNTYsMTYgQEAKICAgICAgICAgICAgICdjc3MvTWVkaWFM
aXN0LmNwcCcsCiAgICAgICAgICAgICAnY3NzL01lZGlhTGlzdC5oJywKICAgICAgICAgICAgICdj
c3MvTWVkaWFRdWVyeS5jcHAnLAorICAgICAgICAgICAgJ2Nzcy9NZWRpYVF1ZXJ5LmgnLAogICAg
ICAgICAgICAgJ2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcCcsCiAgICAgICAgICAgICAnY3Nz
L01lZGlhUXVlcnlFdmFsdWF0b3IuaCcsCiAgICAgICAgICAgICAnY3NzL01lZGlhUXVlcnlFeHAu
Y3BwJywKICAgICAgICAgICAgICdjc3MvTWVkaWFRdWVyeUV4cC5oJywKLSAgICAgICAgICAgICdj
c3MvTWVkaWFRdWVyeS5oJywKKyAgICAgICAgICAgICdjc3MvTWVkaWFRdWVyeUxpc3QuY3BwJywK
KyAgICAgICAgICAgICdjc3MvTWVkaWFRdWVyeUxpc3QuaCcsCisgICAgICAgICAgICAnY3NzL01l
ZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCcsCisgICAgICAgICAgICAnY3NzL01lZGlhUXVlcnlNYXRj
aGVyLmNwcCcsCisgICAgICAgICAgICAnY3NzL01lZGlhUXVlcnlNYXRjaGVyLmgnLAogICAgICAg
ICAgICAgJ2Nzcy9QYWlyLmgnLAogICAgICAgICAgICAgJ2Nzcy9SZWN0LmgnLAogICAgICAgICAg
ICAgJ2Nzcy9SR0JDb2xvci5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnByaSBi
L1dlYkNvcmUvV2ViQ29yZS5wcmkKaW5kZXggNDhiZDllZS4uZWE3MDZjYyAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9XZWJDb3JlLnByaQorKysgYi9XZWJDb3JlL1dlYkNvcmUucHJpCkBAIC04MSw2ICs4
MSw4IEBAIElETF9CSU5ESU5HUyArPSBcCiAgICAgY3NzL0NTU1ZhcmlhYmxlc0RlY2xhcmF0aW9u
LmlkbCBcCiAgICAgY3NzL0NTU1ZhcmlhYmxlc1J1bGUuaWRsIFwKICAgICBjc3MvTWVkaWFMaXN0
LmlkbCBcCisgICAgY3NzL01lZGlhUXVlcnlMaXN0LmlkbCBcCisgICAgY3NzL01lZGlhUXVlcnlM
aXN0TGlzdGVuZXIuaWRsIFwKICAgICBjc3MvUmVjdC5pZGwgXAogICAgIGNzcy9SR0JDb2xvci5p
ZGwgXAogICAgIGNzcy9TdHlsZU1lZGlhLmlkbCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNv
cmUucHJvIGIvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCA0YjZjYjg3Li5jYTU1NjFkIDEwMDY0
NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAg
LTM0OSw2ICszNDksNyBAQCBTT1VSQ0VTICs9IFwKICAgICBiaW5kaW5ncy9qcy9KU0luamVjdGVk
U2NyaXB0SG9zdEN1c3RvbS5jcHAgXAogICAgIGJpbmRpbmdzL2pzL0pTSW5zcGVjdG9yRnJvbnRl
bmRIb3N0Q3VzdG9tLmNwcCBcCiAgICAgYmluZGluZ3MvanMvSlNMb2NhdGlvbkN1c3RvbS5jcHAg
XAorICAgIGJpbmRpbmdzL2pzL0pTTWVkaWFRdWVyeUxpc3RMaXN0ZW5lckN1c3RvbS5jcHAgXAog
ICAgIGJpbmRpbmdzL2pzL0pTTmFtZWROb2RlTWFwQ3VzdG9tLmNwcCBcCiAgICAgYmluZGluZ3Mv
anMvSlNOYXZpZ2F0b3JDdXN0b20uY3BwICBcCiAgICAgYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9t
LmNwcCBcCkBAIC00NTksNiArNDYwLDggQEAgU09VUkNFUyArPSBcCiAgICAgY3NzL01lZGlhUXVl
cnkuY3BwIFwKICAgICBjc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAgXAogICAgIGNzcy9NZWRp
YVF1ZXJ5RXhwLmNwcCBcCisgICAgY3NzL01lZGlhUXVlcnlMaXN0LmNwcCBcCisgICAgY3NzL01l
ZGlhUXVlcnlNYXRjaGVyLmNwcCBcCiAgICAgY3NzL1JHQkNvbG9yLmNwcCBcCiAgICAgY3NzL1No
YWRvd1ZhbHVlLmNwcCBcCiAgICAgY3NzL1N0eWxlQmFzZS5jcHAgXApAQCAtMTI0Niw2ICsxMjQ5
LDkgQEAgSEVBREVSUyArPSBcCiAgICAgY3NzL01lZGlhTGlzdC5oIFwKICAgICBjc3MvTWVkaWFR
dWVyeUV2YWx1YXRvci5oIFwKICAgICBjc3MvTWVkaWFRdWVyeUV4cC5oIFwKKyAgICBjc3MvTWVk
aWFRdWVyeUxpc3QuaCBcCisgICAgY3NzL01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCBcCisgICAg
Y3NzL01lZGlhUXVlcnlNYXRjaGVyLmggXAogICAgIGNzcy9NZWRpYVF1ZXJ5LmggXAogICAgIGNz
cy9SR0JDb2xvci5oIFwKICAgICBjc3MvU2hhZG93VmFsdWUuaCBcCmRpZmYgLS1naXQgYS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDI0ZTBmNjQuLmNjNWMyOGEgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01MTkwLDYgKzUxOTAsMTYg
QEAKIAkJRDIzQ0E1NkMwQUIwRUI4RDAwNTEwOEE1IC8qIFJhbmdlRXhjZXB0aW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMjNDQTU2QjBBQjBFQjhE
MDA1MTA4QTUgLyogUmFuZ2VFeGNlcHRpb24uaCAqLzsgfTsKIAkJRDM5RDAwNkQxMUY4RTMwODAw
NjA0MUYyIC8qIFBvcHVwTWVudU1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRDM5RDAwNkMxMUY4RTMwODAwNjA0MUYyIC8qIFBvcHVwTWVudU1hYy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUQzOUQw
MDlEMTFGOTA3RTYwMDYwNDFGMiAvKiBTZWFyY2hQb3B1cE1lbnVNYWMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzOUQwMDlDMTFGOTA3RTYwMDYwNDFG
MiAvKiBTZWFyY2hQb3B1cE1lbnVNYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQlEM0E5NEEzODEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVy
eUxpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RDNBOTRBMzExMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0LmNwcCAqLzsgfTsKKwkJ
RDNBOTRBMzkxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0E5NEEzMjEyMkRBQkFDMDBBMzdC
QkMgLyogTWVkaWFRdWVyeUxpc3QuaCAqLzsgfTsKKwkJRDNBOTRBM0IxMjJEQUJBQzAwQTM3QkJD
IC8qIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEQzQTk0QTM0MTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyLmggKi87IH07CisJCUQzQTk0QTQ2MTIyREM0MEYwMEEzN0JCQyAvKiBKU01l
ZGlhUXVlcnlMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEQzQTk0QTQyMTIyREM0MEYwMEEzN0JCQyAvKiBKU01lZGlhUXVlcnlMaXN0LmNwcCAq
LzsgfTsKKwkJRDNBOTRBNDcxMjJEQzQwRjAwQTM3QkJDIC8qIEpTTWVkaWFRdWVyeUxpc3QuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQTk0QTQzMTIy
REM0MEYwMEEzN0JCQyAvKiBKU01lZGlhUXVlcnlMaXN0LmggKi87IH07CisJCUQzQTk0QTQ4MTIy
REM0MEYwMEEzN0JCQyAvKiBKU01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNBOTRBNDQxMjJEQzQwRjAwQTM3
QkJDIC8qIEpTTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgKi87IH07CisJCUQzQTk0QTQ5MTIy
REM0MEYwMEEzN0JCQyAvKiBKU01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQTk0QTQ1MTIyREM0MEYwMEEzN0JC
QyAvKiBKU01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCAqLzsgfTsKKwkJRDNBQTEwRjMxMjNBOThB
QTAwOTIxNTJCIC8qIE1lZGlhUXVlcnlNYXRjaGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQUExMEYxMTIzQTk4QUEwMDkyMTUyQiAvKiBNZWRp
YVF1ZXJ5TWF0Y2hlci5jcHAgKi87IH07CisJCUQzQUExMEY0MTIzQTk4QUEwMDkyMTUyQiAvKiBN
ZWRpYVF1ZXJ5TWF0Y2hlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRDNBQTEwRjIxMjNBOThBQTAwOTIxNTJCIC8qIE1lZGlhUXVlcnlNYXRjaGVyLmgg
Ki87IH07CisJCUQzRkRFRDlDMTIyRUZDNkEwMDhGNTI2RiAvKiBKU01lZGlhUXVlcnlMaXN0TGlz
dGVuZXJDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRDNGREVEOUIxMjJFRkM2QTAwOEY1MjZGIC8qIEpTTWVkaWFRdWVyeUxpc3RMaXN0ZW5l
ckN1c3RvbS5jcHAgKi87IH07CiAJCUQ4QjYxNTJGMTAzMjQ5NTEwMEM4NTU0QSAvKiBDb29raWUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQ4QjYxNTJF
MTAzMjQ5NTEwMEM4NTU0QSAvKiBDb29raWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlEQjIzQzJDQjBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50
T3V0ZGVudENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gREIyM0MyQzkwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5k
LmNwcCAqLzsgfTsKIAkJREIyM0MyQ0MwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRD
b21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBE
QjIzQzJDQTBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuaCAqLzsgfTsK
QEAgLTExMDQ2LDYgKzExMDU2LDE4IEBACiAJCUQyM0NBNTZCMEFCMEVCOEQwMDUxMDhBNSAvKiBS
YW5nZUV4Y2VwdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmFuZ2VF
eGNlcHRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDM5RDAwNkMxMUY4RTMw
ODAwNjA0MUYyIC8qIFBvcHVwTWVudU1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBQb3B1cE1lbnVNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDM5RDAw
OUMxMUY5MDdFNjAwNjA0MUYyIC8qIFNlYXJjaFBvcHVwTWVudU1hYy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTZWFyY2hQb3B1cE1lbnVNYWMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRDNBOTRBMzExMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhUXVlcnlMaXN0
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDNBOTRBMzIxMjJEQUJBQzAwQTM3
QkJDIC8qIE1lZGlhUXVlcnlMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE1lZGlhUXVlcnlMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQzQTk0QTMz
MTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdC5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gTWVkaWFRdWVyeUxpc3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlE
M0E5NEEzNDEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQzQTk0QTM1MTIyREFCQUMwMEEzN0JCQyAvKiBN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDNBOTRB
NDIxMjJEQzQwRjAwQTM3QkJDIC8qIEpTTWVkaWFRdWVyeUxpc3QuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNZWRpYVF1ZXJ5TGlzdC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUQzQTk0QTQzMTIyREM0MEYwMEEzN0JCQyAvKiBKU01lZGlhUXVl
cnlMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWVkaWFRdWVyeUxp
c3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDNBOTRBNDQxMjJEQzQwRjAwQTM3
QkJDIC8qIEpTTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlEM0E5NEE0NTEyMkRDNDBGMDBBMzdCQkMgLyogSlNNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWVk
aWFRdWVyeUxpc3RMaXN0ZW5lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEM0FB
MTBGMTEyM0E5OEFBMDA5MjE1MkIgLyogTWVkaWFRdWVyeU1hdGNoZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFRdWVyeU1hdGNoZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlEM0FBMTBGMjEyM0E5OEFBMDA5MjE1MkIgLyogTWVkaWFR
dWVyeU1hdGNoZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFRdWVy
eU1hdGNoZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDNGREVEOUIxMjJFRkM2
QTAwOEY1MjZGIC8qIEpTTWVkaWFRdWVyeUxpc3RMaXN0ZW5lckN1c3RvbS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU01lZGlhUXVlcnlMaXN0TGlzdGVuZXJDdXN0
b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEOEI2MTUyRTEwMzI0OTUxMDBD
ODU1NEEgLyogQ29va2llLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvb2tp
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQjIzQzJDOTBBNTA4RDI5MDAyNDg5
RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEluZGVudE91dGRlbnRDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJREIyM0MyQ0EwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21t
YW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmRlbnRPdXRkZW50Q29t
bWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTUxMjQsNiArMTUxNDYsMTAg
QEAKIAkJCQlCQzY4NkM3QTBFMEMzMzAxMDBERThBMDggLyogSlNDU1NWYXJpYWJsZXNSdWxlLmNw
cCAqLywKIAkJCQlCQzY4NkM3QjBFMEMzMzAxMDBERThBMDggLyogSlNDU1NWYXJpYWJsZXNSdWxl
LmggKi8sCiAJCQkJQkMzQzM5QjQwQzBEM0Q4RDAwNUY0RDdBIC8qIEpTTWVkaWFMaXN0LmNwcCAq
LywKKwkJCQlEM0E5NEE0MjEyMkRDNDBGMDBBMzdCQkMgLyogSlNNZWRpYVF1ZXJ5TGlzdC5jcHAg
Ki8sCisJCQkJRDNBOTRBNDMxMjJEQzQwRjAwQTM3QkJDIC8qIEpTTWVkaWFRdWVyeUxpc3QuaCAq
LywKKwkJCQlEM0E5NEE0NDEyMkRDNDBGMDBBMzdCQkMgLyogSlNNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyLmNwcCAqLywKKwkJCQlEM0E5NEE0NTEyMkRDNDBGMDBBMzdCQkMgLyogSlNNZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyLmggKi8sCiAJCQkJQkMzQzM5QjUwQzBEM0Q4RDAwNUY0RDdBIC8qIEpTTWVk
aWFMaXN0LmggKi8sCiAJCQkJQkNGRTJGMEYwQzFCNTgzNzAwMjAyMzVGIC8qIEpTUmVjdC5jcHAg
Ki8sCiAJCQkJQkNGRTJGMTAwQzFCNTgzNzAwMjAyMzVGIC8qIEpTUmVjdC5oICovLApAQCAtMTY0
MTEsNiArMTY0MzcsNyBAQAogCQkJCTQ5RUVDRjcxMTA1MDhEOUMwMDA5OUZBQiAvKiBKU0ludDhB
cnJheUN1c3RvbS5jcHAgKi8sCiAJCQkJMUM1RkFFRTYwRENGREE2ODAwRDU4Rjc4IC8qIEpTSmF2
YVNjcmlwdENhbGxGcmFtZUN1c3RvbS5jcHAgKi8sCiAJCQkJQkNFMUM0M0YwRDk4MzBGNDAwM0Iw
MkYyIC8qIEpTTG9jYXRpb25DdXN0b20uY3BwICovLAorCQkJCUQzRkRFRDlCMTIyRUZDNkEwMDhG
NTI2RiAvKiBKU01lZGlhUXVlcnlMaXN0TGlzdGVuZXJDdXN0b20uY3BwICovLAogCQkJCUUxQTVG
OTlBMEU3RUFBMjUwMEFGODVFQSAvKiBKU01lc3NhZ2VDaGFubmVsQ3VzdG9tLmNwcCAqLywKIAkJ
CQk0MTBCN0U3MTEwNDVGQUIwMDBEODIyNEYgLyogSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwICov
LAogCQkJCUUxQURFRDQ2MEU3NkI4REQwMDRBMUE1RSAvKiBKU01lc3NhZ2VQb3J0Q3VzdG9tLmNw
cCAqLywKQEAgLTE3MTMyLDYgKzE3MTU5LDEzIEBACiAJCQkJNEUxOTU5MjYwQTM5REFDQzAwMjIw
RkU1IC8qIE1lZGlhUXVlcnlFdmFsdWF0b3IuaCAqLywKIAkJCQk0RTE5NTkyNzBBMzlEQUNDMDAy
MjBGRTUgLyogTWVkaWFRdWVyeUV4cC5jcHAgKi8sCiAJCQkJNEUxOTU5MjgwQTM5REFDQzAwMjIw
RkU1IC8qIE1lZGlhUXVlcnlFeHAuaCAqLywKKwkJCQlEM0E5NEEzMTEyMkRBQkFDMDBBMzdCQkMg
LyogTWVkaWFRdWVyeUxpc3QuY3BwICovLAorCQkJCUQzQTk0QTMyMTIyREFCQUMwMEEzN0JCQyAv
KiBNZWRpYVF1ZXJ5TGlzdC5oICovLAorCQkJCUQzQTk0QTMzMTIyREFCQUMwMEEzN0JCQyAvKiBN
ZWRpYVF1ZXJ5TGlzdC5pZGwgKi8sCisJCQkJRDNBOTRBMzQxMjJEQUJBQzAwQTM3QkJDIC8qIE1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCAqLywKKwkJCQlEM0E5NEEzNTEyMkRBQkFDMDBBMzdCQkMg
LyogTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5pZGwgKi8sCisJCQkJRDNBQTEwRjExMjNBOThBQTAw
OTIxNTJCIC8qIE1lZGlhUXVlcnlNYXRjaGVyLmNwcCAqLywKKwkJCQlEM0FBMTBGMjEyM0E5OEFB
MDA5MjE1MkIgLyogTWVkaWFRdWVyeU1hdGNoZXIuaCAqLywKIAkJCQlBODBFNkNEMTBBMTk4OUNB
MDA3RkI4QzUgLyogUGFpci5oICovLAogCQkJCTkzQ0E0QzlGMDlERjkzRkEwMERGODY3NyAvKiBx
dWlya3MuY3NzICovLAogCQkJCUJDNDM2OEU3MEMyMjZFMzIwMDVFRkI1RiAvKiBSZWN0LmggKi8s
CkBAIC0yMDU1Nyw2ICsyMDU5MSwxMSBAQAogCQkJCTg5M0M0N0I4MTIzOEEwOTkwMDJCM0Q4NiAv
KiBKU0ZpbGVDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODkzQzQ3QkMxMjM4QTBBOTAw
MkIzRDg2IC8qIEpTRmlsZVdyaXRlckNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQk4QTMw
OUM5RjEyMzk1MEJFMDBDQjkyMDQgLyogTmVzdGluZ0xldmVsSW5jcmVtZW50ZXIuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUQzQTk0QTM5MTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJRDNBOTRBM0IxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUQzQTk0QTQ3MTIyREM0MEYwMEEz
N0JCQyAvKiBKU01lZGlhUXVlcnlMaXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQlEM0E5NEE0OTEy
MkRDNDBGMDBBMzdCQkMgLyogSlNNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggaW4gSGVhZGVycyAq
LywKKwkJCQlEM0FBMTBGNDEyM0E5OEFBMDA5MjE1MkIgLyogTWVkaWFRdWVyeU1hdGNoZXIuaCBp
biBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwogCQl9OwpAQCAtMjMwMzEsNiArMjMwNzAsMTEgQEAKIAkJCQlBNjIyQThGQzEyMkM0
NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5QmFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk4OTNDNDdCNzEyMzhBMDk5MDAyQjNEODYgLyogSlNGaWxlQ2FsbGJhY2suY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJODkzQzQ3QkIxMjM4QTBBOTAwMkIzRDg2IC8qIEpTRmlsZVdyaXRlckNhbGxi
YWNrLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUQzQTk0QTM4MTIyREFCQUMwMEEzN0JCQyAvKiBN
ZWRpYVF1ZXJ5TGlzdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlEM0E5NEE0NjEyMkRDNDBGMDBB
MzdCQkMgLyogSlNNZWRpYVF1ZXJ5TGlzdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlEM0E5NEE0
ODEyMkRDNDBGMDBBMzdCQkMgLyogSlNNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUQzRkRFRDlDMTIyRUZDNkEwMDhGNTI2RiAvKiBKU01lZGlhUXVlcnlMaXN0
TGlzdGVuZXJDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRDNBQTEwRjMxMjNBOThBQTAw
OTIxNTJCIC8qIE1lZGlhUXVlcnlNYXRjaGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJ
CXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29yZS9iaW5k
aW5ncy9nb2JqZWN0L0dOVW1ha2VmaWxlLmFtCmluZGV4IDEyODM1Y2MuLmYzZWZmMWIgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJD
b3JlL2JpbmRpbmdzL2dvYmplY3QvR05VbWFrZWZpbGUuYW0KQEAgLTE5Miw2ICsxOTIsMTAgQEAg
d2Via2l0Z3RrX2dkb21fYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0
L1dlYktpdERPTU1lZGlhRXJyb3JQcml2YXRlLmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9X
ZWJLaXRET01NZWRpYUxpc3QuY3BwIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9N
TWVkaWFMaXN0UHJpdmF0ZS5oIFwKKwlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NTWVk
aWFRdWVyeUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NTWVkaWFR
dWVyeUxpc3RQcml2YXRlLmggXAorCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01NZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERP
TU1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcml2YXRlLmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtp
dC9XZWJLaXRET01NZW1vcnlJbmZvLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktp
dERPTU1lbW9yeUluZm9Qcml2YXRlLmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRE
T01NZXNzYWdlUG9ydC5jcHAgXApAQCAtMjUwLDYgKzI1NCw4IEBAIHdlYmtpdGd0a19idWlsdF9o
X2FwaSArPSBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTUNTU1N0eWxlU2hlZXQu
aCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTUNTU1ZhbHVlLmggXAogCURlcml2
ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01NZWRpYUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMv
d2Via2l0L1dlYktpdERPTU1lZGlhUXVlcnlMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL3dlYmtp
dC9XZWJLaXRET01NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggXAogCURlcml2ZWRTb3VyY2VzL3dl
YmtpdC9XZWJLaXRET01TdHlsZU1lZGlhLmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJL
aXRET01TdHlsZVNoZWV0LmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01TdHls
ZVNoZWV0TGlzdC5oIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyQ3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyQ3VzdG9tLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi41MWQ1MGFhCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01l
ZGlhUXVlcnlMaXN0TGlzdGVuZXJDdXN0b20uY3BwCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5
KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkpTTWVkaWFRdWVy
eUxpc3RMaXN0ZW5lci5oIgorCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQVBJQ2FzdC5oPgor
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTVmFsdWVSZWYuaD4KKworI2luY2x1ZGUgPHJ1bnRp
bWUvSlNPYmplY3QuaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTVmFsdWUuaD4KKwordXNpbmcgbmFt
ZXNwYWNlIEpTQzsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitpbnQgSlNNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyOjp0eXBlKCkKK3sKKyAgICByZXR1cm4gSlNNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
VHlwZTsKK30KKworYm9vbCBKU01lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OmlzRXF1YWxUbyhNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyKiBvdGhlcikKK3sKKyAgICBpZiAoIW90aGVyIHx8IHR5cGUoKSAh
PSBvdGhlci0+dHlwZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBKU01lZGlhUXVl
cnlMaXN0TGlzdGVuZXIqIGpzTGlzdGVuZXIgPSBzdGF0aWNfY2FzdDxKU01lZGlhUXVlcnlMaXN0
TGlzdGVuZXIqPihvdGhlcik7CisKKyAgICBpZiAobV9kYXRhLT5jYWxsYmFjaygpID09IEpTQzo6
SlNWYWx1ZSgpKQorICAgICAgICByZXR1cm4ganNMaXN0ZW5lci0+bV9kYXRhLT5jYWxsYmFjaygp
ID09IEpTQzo6SlNWYWx1ZSgpOworCisgICAgRXhlY1N0YXRlKiBleGVjID0gbV9kYXRhLT5nbG9i
YWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpOworICAgIHJldHVybiBKU1ZhbHVlSXNFcXVhbCh0b1Jl
ZihleGVjKSwgdG9SZWYoZXhlYywgbV9kYXRhLT5jYWxsYmFjaygpKSwgdG9SZWYoZXhlYywganNM
aXN0ZW5lci0+bV9kYXRhLT5jYWxsYmFjaygpKSwgMCk7Cit9CisKK30KKwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggMWExMTRhNC4uYjJhNjI1MiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQor
KysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC02LDYg
KzYsNyBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIyBDb3B5cmlnaHQgKEMpIDIwMDkgQ2FtZXJv
biBNY0Nvcm1hY2sgPGNhbUBtY2MuaWQuYXU+CiAjIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4g
TW90aW9uIExpbWl0ZWQgMjAxMC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChD
KSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogIwog
IyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCiAjIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCkBAIC0yMTE3LDYgKzIxMTgsMTMgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50
YXRpb24KICAgICBwdXNoKEBpbXBsQ29udGVudCwgIlxuI2VuZGlmIC8vICR7Y29uZGl0aW9uYWxT
dHJpbmd9XG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CiB9CiAKK3N1YiBHZXROYXRpdmVUeXBl
Rm9yQ2FsbGJhY2tzCit7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKyAgICByZXR1cm4gInZvaWQi
IGlmICgkdHlwZSBlcSAidm9pZCIpOworICAgIHJldHVybiBHZXROYXRpdmVUeXBlKCR0eXBlKTsK
K30KKwogc3ViIEdlbmVyYXRlQ2FsbGJhY2tIZWFkZXIKIHsKICAgICBteSAkb2JqZWN0ID0gc2hp
ZnQ7CkBAIC0yMTUzLDExICsyMTYxLDE0IEBAIHN1YiBHZW5lcmF0ZUNhbGxiYWNrSGVhZGVyCiAg
ICAgICAgIGZvcmVhY2ggbXkgJGZ1bmN0aW9uIChAeyRkYXRhTm9kZS0+ZnVuY3Rpb25zfSkgewog
ICAgICAgICAgICAgbXkgQHBhcmFtcyA9IEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfTsKICAgICAg
ICAgICAgIGlmICghJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJD
dXN0b20ifSAmJgotICAgICAgICAgICAgICAgICEoR2V0TmF0aXZlVHlwZSgkZnVuY3Rpb24tPnNp
Z25hdHVyZS0+dHlwZSkgZXEgImJvb2wiKSkgeworICAgICAgICAgICAgICAgICEoJGZ1bmN0aW9u
LT5zaWduYXR1cmUtPnR5cGUgZXEgImJvb2xlYW4iKSAmJiAhKCRmdW5jdGlvbi0+c2lnbmF0dXJl
LT50eXBlIGVxICJ2b2lkIikpIHsKKyAgICAgICAgICAgICAgICAjIHB1dCBhIENPTVBJTEVfQVNT
RVJUKGZhbHNlKSBpbiBoZWFkZXIgZmlsZSBpZiB0aGUgbWV0aG9kIGlzIG5vdCAnQ3VzdG9tJwor
ICAgICAgICAgICAgICAgICMgYW5kIGl0cyBzaWduYXR1cmUgdHlwZSBpcyBub3QgYm9vbGVhbiBv
ciB2b2lkLgorICAgICAgICAgICAgICAgICMgbm8gc2lnbmF0dXJlIHR5cGUgb3RoZXIgdGhlbiBi
b29sZWFuIGFuZCB2b2lkIGlzIGFjY2VwdGVkLgogICAgICAgICAgICAgICAgIHB1c2goQGhlYWRl
ckNvbnRlbnQsICIgICAgQ09NUElMRV9BU1NFUlQoZmFsc2UpIik7CiAgICAgICAgICAgICB9CiAK
LSAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCAiIC4gR2V0TmF0
aXZlVHlwZSgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSkgLiAiICIgLiAkZnVuY3Rpb24tPnNp
Z25hdHVyZS0+bmFtZSAuICIoIik7CisgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAi
ICAgIHZpcnR1YWwgIiAuIEdldE5hdGl2ZVR5cGVGb3JDYWxsYmFja3MoJGZ1bmN0aW9uLT5zaWdu
YXR1cmUtPnR5cGUpIC4gIiAiIC4gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWUgLiAiKCIpOwog
CiAgICAgICAgICAgICBteSBAYXJncyA9ICgpOwogICAgICAgICAgICAgZm9yZWFjaCBteSAkcGFy
YW0gKEBwYXJhbXMpIHsKQEAgLTIyMzIsMTIgKzIyNDMsMTYgQEAgc3ViIEdlbmVyYXRlQ2FsbGJh
Y2tJbXBsZW1lbnRhdGlvbgogICAgICAgICBmb3JlYWNoIG15ICRmdW5jdGlvbiAoQHskZGF0YU5v
ZGUtPmZ1bmN0aW9uc30pIHsKICAgICAgICAgICAgIG15IEBwYXJhbXMgPSBAeyRmdW5jdGlvbi0+
cGFyYW1ldGVyc307CiAgICAgICAgICAgICBpZiAoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJDdXN0b20ifSB8fAotICAgICAgICAgICAgICAgICEoR2V0TmF0aXZl
VHlwZSgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSkgZXEgImJvb2wiKSkgeworICAgICAgICAg
ICAgICAgICghKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlIGVxICJib29sZWFuIikgJiYgISgk
ZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSBlcSAidm9pZCIpKSkgeworICAgICAgICAgICAgICAg
ICMgaWdub3JlIHRoZSBtZXRob2QgaWYgaGFzICdDdXN0b20nIGF0dHJpYnV0ZSBvciBpZgorICAg
ICAgICAgICAgICAgICMgaXRzIHNpZ25hdHVyZSB0eXBlIGlzIGRpZmZlcmVudCBvZiBib29sZWFu
IGFuZCB2b2lkLgorICAgICAgICAgICAgICAgICMgaWYgdGhlIHNpZ25hdHVyZSB0eXBlIGRpZmZl
cmVudCBvZiBib29sZWFuIGFuZCB2b2lkIHRoZW4gYQorICAgICAgICAgICAgICAgICMgQ09NUElM
RV9BU1NFUlQoZmFsc2UpIGhhcyBiZWVuIGFkZGVkIHRvIHRoZSBoZWFkZXIgZmlsZS4KICAgICAg
ICAgICAgICAgICBuZXh0OwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBBZGRJbmNsdWRl
c0ZvclR5cGUoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUpOwotICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICJcbiIgLiBHZXROYXRpdmVUeXBlKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50
eXBlKSAuICIgJHtjbGFzc05hbWV9OjoiIC4gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWUgLiAi
KCIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbiIgLiBHZXROYXRpdmVUeXBl
Rm9yQ2FsbGJhY2tzKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlKSAuICIgJHtjbGFzc05hbWV9
OjoiIC4gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWUgLiAiKCIpOwogCiAgICAgICAgICAgICBt
eSBAYXJncyA9ICgpOwogICAgICAgICAgICAgZm9yZWFjaCBteSAkcGFyYW0gKEBwYXJhbXMpIHsK
QEAgLTIyNDksNyArMjI2NCwxMyBAQCBzdWIgR2VuZXJhdGVDYWxsYmFja0ltcGxlbWVudGF0aW9u
CiAKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoIWNhbkludm9rZUNhbGxiYWNrKCkpXG4iKTsKLSAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4gdHJ1ZTtcblxuIik7
CisKKyAgICAgICAgICAgICMgYm9vbGVhbiBhbmQgdm9pZCBhcmUgdGhlIG9ubHkgcG9zc2libGUg
c2lnbmF0dXJlIHR5cGVzLgorICAgICAgICAgICAgaWYgKEdldE5hdGl2ZVR5cGUoJGZ1bmN0aW9u
LT5zaWduYXR1cmUtPnR5cGUpIGVxICJib29sIikgeworICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgICAgICByZXR1cm4gdHJ1ZTtcblxuIik7CisgICAgICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm47
XG5cbiIpOworICAgICAgICAgICAgfQogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgUmVmUHRyPCRjbGFzc05hbWU+IHByb3RlY3QodGhpcyk7XG5cbiIpOwogICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgSlNMb2NrIGxvY2soU2lsZW5jZUFzc2VydGlvbnNPbmx5
KTtcblxuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBFeGVjU3RhdGUq
IGV4ZWMgPSBtX2RhdGEtPmdsb2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCk7XG4iKTsKQEAgLTIy
NjYsNyArMjI4NywxMSBAQCBzdWIgR2VuZXJhdGVDYWxsYmFja0ltcGxlbWVudGF0aW9uCiAKICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiXG4gICAgYm9vbCByYWlzZWRFeGNlcHRpb24g
PSBmYWxzZTtcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgbV9kYXRh
LT5pbnZva2VDYWxsYmFjayhhcmdzLCAmcmFpc2VkRXhjZXB0aW9uKTtcbiIpOwotICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuICFyYWlzZWRFeGNlcHRpb247XG4iKTsK
KworICAgICAgICAgICAgIyBib29sZWFuIGFuZCB2b2lkIGFyZSB0aGUgb25seSBwb3NzaWJsZSBz
aWduYXR1cmUgdHlwZXMuCisgICAgICAgICAgICBpZiAoR2V0TmF0aXZlVHlwZSgkZnVuY3Rpb24t
PnNpZ25hdHVyZS0+dHlwZSkgZXEgImJvb2wiKSB7CisgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgcmV0dXJuICFyYWlzZWRFeGNlcHRpb247XG4iKTsKKyAgICAgICAgICAg
IH0KICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuIik7CiAgICAgICAgIH0KICAg
ICB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4
LnBtIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQppbmRleCAw
NmJjZTA0Li45NjY2ODI3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvclY4LnBtCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9yVjgucG0KQEAgLTYsNiArNiw3IEBACiAjIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21w
dXRlciwgSW5jLgogIyBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMDkgR29vZ2xlIEluYy4K
ICMgQ29weXJpZ2h0IChDKSAyMDA5IENhbWVyb24gTWNDb3JtYWNrIDxjYW1AbWNjLmlkLmF1Pgor
IyBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRp
YXJ5KC1pZXMpCiAjCiAjIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTI1LDYgKzI2LDkgQEAKIAogcGFja2FnZSBD
b2RlR2VuZXJhdG9yVjg7CiAKK3VzZSBjb25zdGFudCBDQUxMQkFDS19QQVJBTSAgICAgPT4gIDE7
Cit1c2UgY29uc3RhbnQgQ0FMTEJBQ0tfUkVUVVJOICAgID0+ICAyOworCiB1c2UgRmlsZTo6c3Rh
dDsKIHVzZSBEaWdlc3Q6Ok1ENTsKIApAQCAtMjI4NywxNSArMjI5MSwxOCBAQCBFTkQKICAgICAg
ICAgZm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7JGRhdGFOb2RlLT5mdW5jdGlvbnN9KSB7CiAgICAg
ICAgICAgICBteSBAcGFyYW1zID0gQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9OwogICAgICAgICAg
ICAgaWYgKCEkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3Rv
bSJ9ICYmCi0gICAgICAgICAgICAgICAgIShHZXROYXRpdmVUeXBlKCRmdW5jdGlvbi0+c2lnbmF0
dXJlLT50eXBlKSBlcSAiYm9vbCIpKSB7Ci0gICAgICAgICAgICAgICAgICAgIHB1c2goQGhlYWRl
ckNvbnRlbnQsICIgICAgQ09NUElMRV9BU1NFUlQoZmFsc2UpIik7CisgICAgICAgICAgICAgICAg
ISgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSBlcSAiYm9vbGVhbiIpICYmICEoJGZ1bmN0aW9u
LT5zaWduYXR1cmUtPnR5cGUgZXEgInZvaWQiKSkgeworICAgICAgICAgICAgICAgICMgcHV0IGEg
Q09NUElMRV9BU1NFUlQoZmFsc2UpIGluIGhlYWRlciBmaWxlIGlmIHRoZSBtZXRob2QgaXMgbm90
ICdDdXN0b20nCisgICAgICAgICAgICAgICAgIyBhbmQgaXRzIHNpZ25hdHVyZSB0eXBlIGlzIG5v
dCBib29sZWFuIG9yIHZvaWQuCisgICAgICAgICAgICAgICAgIyBubyBzaWduYXR1cmUgdHlwZSBv
dGhlciB0aGVuIGJvb2xlYW4gYW5kIHZvaWQgaXMgYWNjZXB0ZWQuCisgICAgICAgICAgICAgICAg
cHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBDT01QSUxFX0FTU0VSVChmYWxzZSkiKTsKICAgICAg
ICAgICAgIH0KIAotICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2aXJ0dWFs
ICIgLiBHZXROYXRpdmVUeXBlRm9yQ2FsbGJhY2tzKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBl
KSAuICIgIiAuICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lIC4gIigiKTsKKyAgICAgICAgICAg
IHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCAiIC4gR2V0TmF0aXZlVHlwZUZvckNh
bGxiYWNrcygkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSwgQ0FMTEJBQ0tfUkVUVVJOKSAuICIg
IiAuICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lIC4gIigiKTsKIAogICAgICAgICAgICAgbXkg
QGFyZ3MgPSAoKTsKICAgICAgICAgICAgIGZvcmVhY2ggbXkgJHBhcmFtIChAcGFyYW1zKSB7Ci0g
ICAgICAgICAgICAgICAgcHVzaChAYXJncywgR2V0TmF0aXZlVHlwZUZvckNhbGxiYWNrcygkcGFy
YW0tPnR5cGUpIC4gIiAiIC4gJHBhcmFtLT5uYW1lKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBh
cmdzLCBHZXROYXRpdmVUeXBlRm9yQ2FsbGJhY2tzKCRwYXJhbS0+dHlwZSwgQ0FMTEJBQ0tfUEFS
QU0pIC4gIiAiIC4gJHBhcmFtLT5uYW1lKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsIGpvaW4oIiwgIiwgQGFyZ3MpKTsKICAgICAgICAgICAgIHB1c2go
QGhlYWRlckNvbnRlbnQsICIpO1xuIik7CkBAIC0yMzU4LDM3ICsyMzY1LDU5IEBAIEVORAogICAg
ICAgICBmb3JlYWNoIG15ICRmdW5jdGlvbiAoQHskZGF0YU5vZGUtPmZ1bmN0aW9uc30pIHsKICAg
ICAgICAgICAgIG15IEBwYXJhbXMgPSBAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc307CiAgICAgICAg
ICAgICBpZiAoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0
b20ifSB8fAotICAgICAgICAgICAgICAgICEoR2V0TmF0aXZlVHlwZUZvckNhbGxiYWNrcygkZnVu
Y3Rpb24tPnNpZ25hdHVyZS0+dHlwZSkgZXEgImJvb2wiKSkgeworICAgICAgICAgICAgICAgICgh
KCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlIGVxICJib29sZWFuIikgJiYgISgkZnVuY3Rpb24t
PnNpZ25hdHVyZS0+dHlwZSBlcSAidm9pZCIpKSkgeworICAgICAgICAgICAgICAgICMgaWdub3Jl
IHRoZSBtZXRob2QgaWYgaGFzICdDdXN0b20nIGF0dHJpYnV0ZSBvciBpZgorICAgICAgICAgICAg
ICAgICMgaXRzIHNpZ25hdHVyZSB0eXBlIGlzIGRpZmZlcmVudCBvZiBib29sZWFuIGFuZCB2b2lk
LgorICAgICAgICAgICAgICAgICMgaWYgdGhlIHNpZ25hdHVyZSB0eXBlIGRpZmZlcmVudCBvZiBi
b29sZWFuIGFuZCB2b2lkIHRoZW4gYQorICAgICAgICAgICAgICAgICMgQ09NUElMRV9BU1NFUlQo
ZmFsc2UpIGhhcyBiZWVuIGFkZGVkIHRvIHRoZSBoZWFkZXIgZmlsZS4KICAgICAgICAgICAgICAg
ICBuZXh0OwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBBZGRJbmNsdWRlc0ZvclR5cGUo
JGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUpOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICJcbiIgLiBHZXROYXRpdmVUeXBlRm9yQ2FsbGJhY2tzKCRmdW5jdGlvbi0+c2lnbmF0dXJl
LT50eXBlKSAuICIgJHtjbGFzc05hbWV9OjoiIC4gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWUg
LiAiKCIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbiIgLiBHZXROYXRpdmVU
eXBlRm9yQ2FsbGJhY2tzKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlLCBDQUxMQkFDS19SRVRV
Uk4pIC4gIiAke2NsYXNzTmFtZX06OiIgLiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZSAuICIo
Iik7CiAKICAgICAgICAgICAgIG15IEBhcmdzID0gKCk7CiAgICAgICAgICAgICBmb3JlYWNoIG15
ICRwYXJhbSAoQHBhcmFtcykgewogICAgICAgICAgICAgICAgIEFkZEluY2x1ZGVzRm9yVHlwZSgk
cGFyYW0tPnR5cGUpOwotICAgICAgICAgICAgICAgIHB1c2goQGFyZ3MsIEdldE5hdGl2ZVR5cGVG
b3JDYWxsYmFja3MoJHBhcmFtLT50eXBlKSAuICIgIiAuICRwYXJhbS0+bmFtZSk7CisgICAgICAg
ICAgICAgICAgcHVzaChAYXJncywgR2V0TmF0aXZlVHlwZUZvckNhbGxiYWNrcygkcGFyYW0tPnR5
cGUsIENBTExCQUNLX1BBUkFNKSAuICIgIiAuICRwYXJhbS0+bmFtZSk7CiAgICAgICAgICAgICB9
CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgam9pbigiLCAiLCBAYXJncykpOwogCiAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIilcbiIpOwogICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IGlmICghY2FuSW52b2tlQ2FsbGJhY2soKSlcbiIpOwotICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgICAgIHJldHVybiB0cnVlO1xuXG4iKTsKKworICAgICAgICAgICAgIyBib29s
ZWFuIGFuZCB2b2lkIGFyZSB0aGUgb25seSBwb3NzaWJsZSBzaWduYXR1cmUgdHlwZXMuCisgICAg
ICAgICAgICBpZiAoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUgZXEgImJvb2xlYW4iKSB7Cisg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiB0cnVlO1xu
XG4iKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgICAgIHJldHVybjtcblxuIik7CisgICAgICAgICAgICB9CiAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB2ODo6SGFuZGxlU2NvcGUgaGFuZGxlU2NvcGU7XG5c
biIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgdjg6OkhhbmRsZTx2ODo6
Q29udGV4dD4gdjhDb250ZXh0ID0gdG9WOENvbnRleHQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
LCBtX3dvcmxkQ29udGV4dCk7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIGlmICh2OENvbnRleHQuSXNFbXB0eSgpKVxuIik7Ci0gICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICAgICAgcmV0dXJuIHRydWU7XG5cbiIpOworCisgICAgICAgICAgICAjIGJv
b2xlYW4gYW5kIHZvaWQgYXJlIHRoZSBvbmx5IHBvc3NpYmxlIHNpZ25hdHVyZSB0eXBlcy4KKyAg
ICAgICAgICAgIGlmICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSBlcSAiYm9vbGVhbiIpIHsK
KyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuIHRydWU7
XG5cbiIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICAgICAgcmV0dXJuO1xuXG4iKTsKKyAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHY4OjpDb250ZXh0OjpTY29wZSBzY29wZSh2OENv
bnRleHQpO1xuXG4iKTsKIAogICAgICAgICAgICAgQGFyZ3MgPSAoKTsKICAgICAgICAgICAgIGZv
cmVhY2ggbXkgJHBhcmFtIChAcGFyYW1zKSB7CiAgICAgICAgICAgICAgICAgbXkgJHBhcmFtTmFt
ZSA9ICRwYXJhbS0+bmFtZTsKKwogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiAke3BhcmFtTmFtZX1IYW5kbGUgPSB0b1Y4KCR7cGFy
YW1OYW1lfSk7XG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBp
ZiAoJHtwYXJhbU5hbWV9SGFuZGxlLklzRW1wdHkoKSkge1xuIik7CiAgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIENSQVNIKCk7XG4iKTsKLSAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuIHRydWU7XG4iKTsKKyAgICAgICAg
ICAgICAgICAjIGJvb2xlYW4gYW5kIHZvaWQgYXJlIHRoZSBvbmx5IHBvc3NpYmxlIHNpZ25hdHVy
ZSB0eXBlcy4KKyAgICAgICAgICAgICAgICBpZiAoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUg
ZXEgImJvb2xlYW4iKSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgICAgICByZXR1cm4gdHJ1ZTtcblxuIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybjtcblxu
Iik7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIH1cbiIpOwogICAgICAgICAgICAgICAgIHB1c2goQGFyZ3MsICIgICAgICAgICR7cGFy
YW1OYW1lfUhhbmRsZSIpOwogICAgICAgICAgICAgfQpAQCAtMjM5Nyw3ICsyNDI2LDEzIEBAIEVO
RAogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIGpvaW4oIixcbiIsIEBhcmdzKSk7CiAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIlxuICAgIH07XG5cbiIpOwogICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgYm9vbCBjYWxsYmFja1JldHVyblZhbHVlID0gZmFs
c2U7XG4iKTsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiAhaW52
b2tlQ2FsbGJhY2sobV9jYWxsYmFjaywgIiAuIHNjYWxhcihAcGFyYW1zKSAuICIsIGFyZ3YsIGNh
bGxiYWNrUmV0dXJuVmFsdWUsIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7XG4iKTsKKworICAg
ICAgICAgICAgIyBib29sZWFuIGFuZCB2b2lkIGFyZSB0aGUgb25seSBwb3NzaWJsZSBzaWduYXR1
cmUgdHlwZXMuCisgICAgICAgICAgICBpZiAoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUgZXEg
ImJvb2xlYW4iKSB7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0
dXJuICFpbnZva2VDYWxsYmFjayhtX2NhbGxiYWNrLCAiIC4gc2NhbGFyKEBwYXJhbXMpIC4gIiwg
YXJndiwgY2FsbGJhY2tSZXR1cm5WYWx1ZSwgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTtcbiIp
OworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICBpbnZva2VDYWxsYmFjayhtX2NhbGxiYWNrLCAiIC4gc2NhbGFyKEBwYXJhbXMpIC4g
IiwgYXJndiwgY2FsbGJhY2tSZXR1cm5WYWx1ZSwgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTtc
biIpOworICAgICAgICAgICAgfQogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG4i
KTsKICAgICAgICAgfQogICAgIH0KQEAgLTI4NzEsNyArMjkwNiw5IEBAIHN1YiBHZXROYXRpdmVU
eXBlCiBzdWIgR2V0TmF0aXZlVHlwZUZvckNhbGxiYWNrcwogewogICAgIG15ICR0eXBlID0gc2hp
ZnQ7CisgICAgbXkgJHVzYWdlID0gc2hpZnQ7CiAgICAgcmV0dXJuICJjb25zdCBTdHJpbmcmIiBp
ZiAkdHlwZSBlcSAiRE9NU3RyaW5nIjsKKyAgICByZXR1cm4gInZvaWQiIGlmICgkdHlwZSBlcSAi
dm9pZCIpIGFuZCAoJHVzYWdlIGVxIENBTExCQUNLX1JFVFVSTik7CiAKICAgICAjIENhbGxiYWNr
cyB1c2UgcmF3IHBvaW50ZXJzLCBzbyBwYXNzIGlzUGFyYW1ldGVyID0gMQogICAgIHJldHVybiBH
ZXROYXRpdmVUeXBlKCR0eXBlLCAxKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJDdXN0b20uY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE4MmY5MGMKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJDdXN0b20u
Y3BwCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIlY4TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2ludCBWOE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OnR5cGUoKQorewor
ICAgIHJldHVybiBWOE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJUeXBlOworfQorCitib29sIFY4TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lcjo6aXNFcXVhbFRvKE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqIG90
aGVyKQoreworICAgIGlmICghb3RoZXIgfHwgdHlwZSgpICE9IG90aGVyLT50eXBlKCkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIFY4TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciogdjhMaXN0
ZW5lciA9IHN0YXRpY19jYXN0PFY4TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcio+KG90aGVyKTsKKyAg
ICByZXR1cm4gdjhMaXN0ZW5lciAmJiBtX2NhbGxiYWNrLT5FcXVhbHModjhMaXN0ZW5lci0+bV9j
YWxsYmFjayk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0
LmNwcCBiL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5kYTNlZDdhCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9jc3Mv
TWVkaWFRdWVyeUxpc3QuY3BwCkBAIC0wLDAgKzEsOTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhUXVlcnlMaXN0LmgiCisKKyNp
bmNsdWRlICJNZWRpYUxpc3QuaCIKKyNpbmNsdWRlICJNZWRpYVF1ZXJ5RXZhbHVhdG9yLmgiCisj
aW5jbHVkZSAiTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oIgorI2luY2x1ZGUgIk1lZGlhUXVlcnlN
YXRjaGVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5
TGlzdD4gTWVkaWFRdWVyeUxpc3Q6OmNyZWF0ZShQYXNzUmVmUHRyPE1lZGlhUXVlcnlNYXRjaGVy
PiB2ZWN0b3IsIFBhc3NSZWZQdHI8TWVkaWFMaXN0PiBtZWRpYSwgYm9vbCBtYXRjaGVzKQorewor
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgTWVkaWFRdWVyeUxpc3QodmVjdG9yLCBtZWRpYSwgbWF0
Y2hlcykpOworfQorCitNZWRpYVF1ZXJ5TGlzdDo6TWVkaWFRdWVyeUxpc3QoUGFzc1JlZlB0cjxN
ZWRpYVF1ZXJ5TWF0Y2hlcj4gdmVjdG9yLCBQYXNzUmVmUHRyPE1lZGlhTGlzdD4gbWVkaWEsIGJv
b2wgbWF0Y2hlcykKKyAgICA6IG1fbWF0Y2hlcih2ZWN0b3IpCisgICAgLCBtX21lZGlhKG1lZGlh
KQorICAgICwgbV9ldmFsUm91bmQobV9tYXRjaGVyLT5ldmFsUm91bmQoKSkKKyAgICAsIG1fY2hh
bmdlUm91bmQobV9ldmFsUm91bmQgLSAxKSAvLyBtX2V2YWxSb3VuZCBhbmQgbV9jaGFuZ2VSb3Vu
ZCBpbml0aWFsIHZhbHVlcyBtdXN0IGJlIGRpZmZlcmVudAorICAgICwgbV9tYXRjaGVzKG1hdGNo
ZXMpCit7Cit9CisKK01lZGlhUXVlcnlMaXN0Ojp+TWVkaWFRdWVyeUxpc3QoKQoreworfQorCitT
dHJpbmcgTWVkaWFRdWVyeUxpc3Q6Om1lZGlhKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9tZWRp
YS0+bWVkaWFUZXh0KCk7Cit9CisKK3ZvaWQgTWVkaWFRdWVyeUxpc3Q6OmFkZExpc3RlbmVyKFBh
c3NSZWZQdHI8TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4gbGlzdGVuZXIpCit7CisgICAgbV9tYXRj
aGVyLT5hZGRMaXN0ZW5lcihsaXN0ZW5lciwgdGhpcyk7Cit9CisKK3ZvaWQgTWVkaWFRdWVyeUxp
c3Q6OnJlbW92ZUxpc3RlbmVyKFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4gbGlz
dGVuZXIpCit7CisgICAgbV9tYXRjaGVyLT5yZW1vdmVMaXN0ZW5lcihsaXN0ZW5lciwgdGhpcyk7
Cit9CisKK3ZvaWQgTWVkaWFRdWVyeUxpc3Q6OmV2YWx1YXRlKE1lZGlhUXVlcnlFdmFsdWF0b3Iq
IGV2YWx1YXRvcikKK3sKKyAgICBpZiAobV9ldmFsUm91bmQgPT0gbV9tYXRjaGVyLT5ldmFsUm91
bmQoKSB8fCAhZXZhbHVhdG9yKQorICAgICAgICByZXR1cm47CisgICAgc2V0TWF0Y2hlcyhldmFs
dWF0b3ItPmV2YWwobV9tZWRpYS5nZXQoKSkpOworfQorCit2b2lkIE1lZGlhUXVlcnlMaXN0Ojpz
ZXRNYXRjaGVzKGJvb2wgbmV3VmFsdWUpCit7CisgICAgbV9ldmFsUm91bmQgPSBtX21hdGNoZXIt
PmV2YWxSb3VuZCgpOworICAgIGlmIChuZXdWYWx1ZSAhPSBtX21hdGNoZXMpIHsKKyAgICAgICAg
bV9tYXRjaGVzID0gbmV3VmFsdWU7CisgICAgICAgIG1fY2hhbmdlUm91bmQgPSBtX2V2YWxSb3Vu
ZDsKKyAgICB9Cit9CisKK2Jvb2wgTWVkaWFRdWVyeUxpc3Q6OmNoYW5nZWQoKQoreworICAgIGlm
IChtX2V2YWxSb3VuZCAhPSBtX21hdGNoZXItPmV2YWxSb3VuZCgpKQorICAgICAgICBzZXRNYXRj
aGVzKG1fbWF0Y2hlci0+ZXZhbHVhdGUobV9tZWRpYS5nZXQoKSkpOworICAgIHJldHVybiBtX2V2
YWxSb3VuZCA9PSBtX2NoYW5nZVJvdW5kOworfQorCitib29sIE1lZGlhUXVlcnlMaXN0OjptYXRj
aGVzKCkKK3sKKyAgICBpZiAobV9ldmFsUm91bmQgIT0gbV9tYXRjaGVyLT5ldmFsUm91bmQoKSkK
KyAgICAgICAgc2V0TWF0Y2hlcyhtX21hdGNoZXItPmV2YWx1YXRlKG1fbWVkaWEuZ2V0KCkpKTsK
KyAgICByZXR1cm4gbV9tYXRjaGVzOworfQorCit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9N
ZWRpYVF1ZXJ5TGlzdC5oIGIvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3QuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZjk1YWY5Ci0tLSAvZGV2L251bGwKKysrIGIvV2Vi
Q29yZS9jc3MvTWVkaWFRdWVyeUxpc3QuaApAQCAtMCwwICsxLDczIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVz
KQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09N
UFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZm5kZWYgTWVkaWFRdWVyeUxpc3RfaAorI2RlZmluZSBNZWRpYVF1ZXJ5TGlz
dF9oCisKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE1lZGlhTGlzdDsKK2NsYXNz
IE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI7CitjbGFzcyBNZWRpYVF1ZXJ5RXZhbHVhdG9yOworY2xh
c3MgTWVkaWFRdWVyeU1hdGNoZXI7CisKKy8qKgorICBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2Ug
aXMgc3BlY2lmaWVkIGF0IGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzc29tLXZpZXcvI3RoZS1t
ZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2UKKyAgVGhlIG9iamVjdHMgb2YgdGhpcyBjbGFzcyBhcmUg
cmV0dW5lZCBieSB3aW5kb3cubWF0Y2hNZWRpYS4gVGhleSBtYXkgYmUgdXNlZCB0bworICByZXRy
aWV2ZSB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgZ2l2ZW4gbWVkaWEgcXVlcnkgYW5kIHRvIGFk
ZC9yZW1vdmUgbGlzdGVuZXJzIHRoYXQKKyAgd2lsbCBiZSBjYWxsZWQgd2hlbmV2ZXIgdGhlIHZh
bHVlIG9mIHRoZSBxdWVyeSBjaGFuZ2VzLgorKi8KK2NsYXNzIE1lZGlhUXVlcnlMaXN0IDogcHVi
bGljIFJlZkNvdW50ZWQ8TWVkaWFRdWVyeUxpc3Q+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdD4gY3JlYXRlKFBhc3NSZWZQdHI8TWVkaWFRdWVyeU1hdGNo
ZXI+LCBQYXNzUmVmUHRyPE1lZGlhTGlzdD4sIGJvb2wpOworICAgIH5NZWRpYVF1ZXJ5TGlzdCgp
OworICAgIFN0cmluZyBtZWRpYSgpIGNvbnN0OworICAgIGJvb2wgbWF0Y2hlcygpOworCisgICAg
dm9pZCBhZGRMaXN0ZW5lcihQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+KTsKKyAg
ICB2b2lkIHJlbW92ZUxpc3RlbmVyKFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4p
OworCisgICAgdm9pZCBldmFsdWF0ZShNZWRpYVF1ZXJ5RXZhbHVhdG9yKik7CisgICAgYm9vbCBj
aGFuZ2VkKCk7CisKK3ByaXZhdGU6CisgICAgTWVkaWFRdWVyeUxpc3QoUGFzc1JlZlB0cjxNZWRp
YVF1ZXJ5TWF0Y2hlcj4sIFBhc3NSZWZQdHI8TWVkaWFMaXN0PiwgYm9vbCBtYXRjaGVzKTsKKyAg
ICB2b2lkIHNldE1hdGNoZXMoYm9vbCk7CisKKyAgICBSZWZQdHI8TWVkaWFRdWVyeU1hdGNoZXI+
IG1fbWF0Y2hlcjsKKyAgICBSZWZQdHI8TWVkaWFMaXN0PiBtX21lZGlhOworICAgIGludCBtX2V2
YWxSb3VuZDsgLy8gaW5kaWNhdGVzIGlmIHRoZSBxdWVyeSBoYXMgYmVlbiBldmFsdWF0ZWQgYWZ0
ZXIgdGhlIGxhc3Qgc3R5bGUgc2VsZWN0b3IgY2hhbmdlLgorICAgIGludCBtX2NoYW5nZVJvdW5k
OyAvLyB1c2VkIHRvIGtub3cgaWYgdGhlIHF1ZXJ5IGhhcyBjaGFuZ2VkIGluIHRoZSBsYXN0IHN0
eWxlIHNlbGVjdG9yIGNoYW5nZS4KKyAgICBib29sIG1fbWF0Y2hlczsKK307CisKK30KKworI2Vu
ZGlmIC8vIE1lZGlhUXVlcnlMaXN0X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL01lZGlhUXVl
cnlMaXN0LmlkbCBiL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0LmlkbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNjVlNWY3Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29y
ZS9jc3MvTWVkaWFRdWVyeUxpc3QuaWRsCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBV
VEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworbW9kdWxlIHZpZXcgeworICAgIGludGVyZmFjZSBNZWRpYVF1ZXJ5TGlzdCB7Cisg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbWVkaWE7CisgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBib29sZWFuIG1hdGNoZXM7CisgICAgICAgIHZvaWQgYWRkTGlzdGVuZXIo
aW4gW0NhbGxiYWNrXSBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIGxpc3RlbmVyKTsKKyAgICAgICAg
dm9pZCByZW1vdmVMaXN0ZW5lcihpbiBbQ2FsbGJhY2tdIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIg
bGlzdGVuZXIpOworICAgIH07Cit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyLmggYi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGQzYTZlMAotLS0gL2Rldi9udWxsCisr
KyBiL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaApAQCAtMCwwICsxLDU0IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMg
c3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTWVkaWFRdWVyeUxpc3RMaXN0ZW5lcl9o
CisjZGVmaW5lIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJfaAorCisjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBNZWRpYVF1ZXJ5TGlzdDsK
KworLyoqCisgIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIgaXMgYW4gYWJzdHJhY3Rpb24gb2YgdGhl
IGNhbGxiYWNrcy4KKyAgc2VlIGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzc29tLXZpZXcvI3Ro
ZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2UKKyovCitjbGFzcyBNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyIDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4geworcHVibGlj
OgorICAgIGVudW0gVHlwZSB7CisgICAgICAgIEpTTWVkaWFRdWVyeUxpc3RMaXN0ZW5lclR5cGUs
CisgICAgICAgIFY4TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclR5cGUKKyAgICB9OworCisgICAgdmly
dHVhbCB+TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcigpIHt9CisgICAgdmlydHVhbCB2b2lkIHF1ZXJ5
Q2hhbmdlZChNZWRpYVF1ZXJ5TGlzdCopID0gMDsKKyAgICB2aXJ0dWFsIGludCB0eXBlKCkgPSAw
OworICAgIHZpcnR1YWwgYm9vbCBpc0VxdWFsVG8oTWVkaWFRdWVyeUxpc3RMaXN0ZW5lciogb3Ro
ZXIpID0gMDsKK307CisKK30KKworI2VuZGlmIC8vIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJfaApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5pZGwgYi9XZWJD
b3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5iNWZmNzI4Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9jc3MvTWVk
aWFRdWVyeUxpc3RMaXN0ZW5lci5pZGwKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykK
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBV
VEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVU
RVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCittb2R1bGUgdmlldyB7CisgICAgaW50ZXJmYWNlIFtDYWxsYmFja10gTWVkaWFRdWVy
eUxpc3RMaXN0ZW5lciB7CisgICAgICAgIHZvaWQgcXVlcnlDaGFuZ2VkKGluIE1lZGlhUXVlcnlM
aXN0IG1xbCk7CisgICAgICAgIFtDdXN0b21dIGxvbmcgdHlwZSgpOworICAgICAgICBbQ3VzdG9t
XSBib29sZWFuIGlzRXF1YWxUbyhpbiBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIG90aGVyKTsKKyAg
ICB9OworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeU1hdGNoZXIuY3BwIGIv
V2ViQ29yZS9jc3MvTWVkaWFRdWVyeU1hdGNoZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmVjYWQ2ODEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2Nzcy9NZWRp
YVF1ZXJ5TWF0Y2hlci5jcHAKQEAgLTAsMCArMSwxNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhUXVlcnlNYXRjaGVyLmgiCisK
KyNpbmNsdWRlICJDU1NTdHlsZVNlbGVjdG9yLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNp
bmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAiTWVk
aWFMaXN0LmgiCisjaW5jbHVkZSAiTWVkaWFRdWVyeUV2YWx1YXRvci5oIgorI2luY2x1ZGUgIk1l
ZGlhUXVlcnlMaXN0LmgiCisjaW5jbHVkZSAiTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK01lZGlhUXVlcnlNYXRjaGVyOjpMaXN0ZW5lcjo6TGlzdGVu
ZXIoUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyPiBsaXN0ZW5lciwgUGFzc1JlZlB0
cjxNZWRpYVF1ZXJ5TGlzdD4gcXVlcnkpCisgICAgOiBtX2xpc3RlbmVyKGxpc3RlbmVyKQorICAg
ICwgbV9xdWVyeShxdWVyeSkKK3sKK30KKworTWVkaWFRdWVyeU1hdGNoZXI6Okxpc3RlbmVyOjp+
TGlzdGVuZXIoKQoreworfQorCit2b2lkIE1lZGlhUXVlcnlNYXRjaGVyOjpMaXN0ZW5lcjo6ZXZh
bHVhdGUoTWVkaWFRdWVyeUV2YWx1YXRvciogZXZhbHVhdG9yKQoreworICAgIG1fcXVlcnktPmV2
YWx1YXRlKGV2YWx1YXRvcik7CisgICAgaWYgKG1fcXVlcnktPmNoYW5nZWQoKSkKKyAgICAgICAg
bV9saXN0ZW5lci0+cXVlcnlDaGFuZ2VkKG1fcXVlcnkuZ2V0KCkpOworfQorCitNZWRpYVF1ZXJ5
TWF0Y2hlcjo6TWVkaWFRdWVyeU1hdGNoZXIoRG9jdW1lbnQqIGRvYykKKyAgICA6IG1fZG9jKGRv
YykKKyAgICAsIG1fZXZhbFJvdW5kKDApCisgICAgLCBtX3Rlcm1pbmF0ZWQoZmFsc2UpCit7Cit9
CisKK01lZGlhUXVlcnlNYXRjaGVyOjp+TWVkaWFRdWVyeU1hdGNoZXIoKQoreworICAgIGRlbGV0
ZUFsbFZhbHVlcyhtX2xpc3RlbmVycyk7Cit9CisKK3ZvaWQgTWVkaWFRdWVyeU1hdGNoZXI6OnRl
cm1pbmF0ZSgpCit7CisgICAgbV90ZXJtaW5hdGVkID0gdHJ1ZTsKKyAgICBkZWxldGVBbGxWYWx1
ZXMobV9saXN0ZW5lcnMpOworICAgIG1fbGlzdGVuZXJzLmNsZWFyKCk7CisgICAgbV9kb2MgPSAw
OworfQorCitTdHJpbmcgTWVkaWFRdWVyeU1hdGNoZXI6Om1lZGlhVHlwZSgpIGNvbnN0Cit7Cisg
ICAgaWYgKCFtX2RvYyB8fCAhbV9kb2MtPmZyYW1lKCkgfHwgIW1fZG9jLT5mcmFtZSgpLT52aWV3
KCkpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKworICAgIHJldHVybiBtX2RvYy0+ZnJhbWUo
KS0+dmlldygpLT5tZWRpYVR5cGUoKTsKK30KKworUGFzc093blB0cjxNZWRpYVF1ZXJ5RXZhbHVh
dG9yPiBNZWRpYVF1ZXJ5TWF0Y2hlcjo6cHJlcGFyZUV2YWx1YXRvcigpIGNvbnN0Cit7CisgICAg
aWYgKCFtX2RvYyB8fCAhbV9kb2MtPmZyYW1lKCkpCisgICAgICAgIHJldHVybiAwOworCisgICAg
RG9jdW1lbnQqIGRvY3VtZW50ID0gbV9kb2MtPmZyYW1lKCktPmRvY3VtZW50KCk7CisgICAgaWYg
KCFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBFbGVtZW50KiBkb2N1bWVudEVs
ZW1lbnQgPSBkb2N1bWVudC0+ZG9jdW1lbnRFbGVtZW50KCk7CisgICAgaWYgKCFkb2N1bWVudEVs
ZW1lbnQpCisgICAgICAgIHJldHVybiAwOworCisgICAgQ1NTU3R5bGVTZWxlY3Rvciogc3R5bGVT
ZWxlY3RvciA9IGRvY3VtZW50LT5zdHlsZVNlbGVjdG9yKCk7CisgICAgaWYgKCFzdHlsZVNlbGVj
dG9yKQorICAgICAgICByZXR1cm4gMDsKKworICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gcm9vdFN0
eWxlID0gc3R5bGVTZWxlY3Rvci0+c3R5bGVGb3JFbGVtZW50KGRvY3VtZW50RWxlbWVudCwgMCAv
KmRlZmF1bHRQYXJlbnQqLywgZmFsc2UgLyphbGxvd1NoYXJpbmcqLywgdHJ1ZSAvKnJlc29sdmVG
b3JSb290RGVmYXVsdCovKTsKKworICAgIHJldHVybiBhZG9wdFB0cihuZXcgTWVkaWFRdWVyeUV2
YWx1YXRvcihtZWRpYVR5cGUoKSwgbV9kb2MtPmZyYW1lKCksIHJvb3RTdHlsZS5nZXQoKSkpOwor
fQorCitib29sIE1lZGlhUXVlcnlNYXRjaGVyOjpldmFsdWF0ZShNZWRpYUxpc3QqIG1lZGlhKQor
eworICAgIGlmICghbWVkaWEpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIE93blB0cjxN
ZWRpYVF1ZXJ5RXZhbHVhdG9yPiBldmFsdWF0b3IocHJlcGFyZUV2YWx1YXRvcigpKTsKKyAgICBy
ZXR1cm4gZXZhbHVhdG9yICYmIGV2YWx1YXRvci0+ZXZhbChtZWRpYSk7Cit9CisKK1Bhc3NSZWZQ
dHI8TWVkaWFRdWVyeUxpc3Q+IE1lZGlhUXVlcnlNYXRjaGVyOjptYXRjaE1lZGlhKGNvbnN0IFN0
cmluZyYgcXVlcnkpCit7CisgICAgaWYgKG1fdGVybWluYXRlZCkKKyAgICAgICAgcmV0dXJuIDA7
CisKKyAgICBSZWZQdHI8TWVkaWFMaXN0PiBtZWRpYSA9IE1lZGlhTGlzdDo6Y3JlYXRlKHF1ZXJ5
LCBmYWxzZSk7CisgICAgcmV0dXJuIE1lZGlhUXVlcnlMaXN0OjpjcmVhdGUodGhpcywgbWVkaWEs
IGV2YWx1YXRlKG1lZGlhLmdldCgpKSk7Cit9CisKK3ZvaWQgTWVkaWFRdWVyeU1hdGNoZXI6OmFk
ZExpc3RlbmVyKFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4gbGlzdGVuZXIsIFBh
c3NSZWZQdHI8TWVkaWFRdWVyeUxpc3Q+IHF1ZXJ5KQoreworICAgIGlmIChtX3Rlcm1pbmF0ZWQp
CisgICAgICAgIHJldHVybjsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9saXN0ZW5l
cnMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgaWYgKG1fbGlzdGVuZXJzW2ldLT5saXN0ZW5lcigp
LT5pc0VxdWFsVG8obGlzdGVuZXIuZ2V0KCkpICYmIG1fbGlzdGVuZXJzW2ldLT5xdWVyeSgpID09
IHF1ZXJ5LmdldCgpKQorICAgICAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fbGlzdGVu
ZXJzLmFwcGVuZChuZXcgTGlzdGVuZXIobGlzdGVuZXIsIHF1ZXJ5KSk7Cit9CisKK3ZvaWQgTWVk
aWFRdWVyeU1hdGNoZXI6OnJlbW92ZUxpc3RlbmVyKFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3RM
aXN0ZW5lcj4gbGlzdGVuZXIsIFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3Q+IHF1ZXJ5KQorewor
ICAgIGlmIChtX3Rlcm1pbmF0ZWQpCisgICAgICAgIHJldHVybjsKKworICAgIGZvciAoaW50IGkg
PSBtX2xpc3RlbmVycy5zaXplKCkgLSAxOyBpID49IDA7IC0taSkgeworICAgICAgICBpZiAobV9s
aXN0ZW5lcnNbaV0tPmxpc3RlbmVyKCktPmlzRXF1YWxUbyhsaXN0ZW5lci5nZXQoKSkgJiYgbV9s
aXN0ZW5lcnNbaV0tPnF1ZXJ5KCkgPT0gcXVlcnkuZ2V0KCkpIHsKKyAgICAgICAgICAgIGRlbGV0
ZSBtX2xpc3RlbmVyc1tpXTsKKyAgICAgICAgICAgIG1fbGlzdGVuZXJzLnJlbW92ZShpKTsKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCBNZWRpYVF1ZXJ5
TWF0Y2hlcjo6ZXZhbHVhdGUoKQoreworICAgIEFTU0VSVCghbV90ZXJtaW5hdGVkKTsKKworICAg
ICsrbV9ldmFsUm91bmQ7CisgICAgT3duUHRyPE1lZGlhUXVlcnlFdmFsdWF0b3I+IGV2YWx1YXRv
ciA9IHByZXBhcmVFdmFsdWF0b3IoKTsKKyAgICBpZiAoIWV2YWx1YXRvcikKKyAgICAgICAgcmV0
dXJuOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2xpc3RlbmVycy5zaXplKCk7ICsr
aSkKKyAgICAgICAgbV9saXN0ZW5lcnNbaV0tPmV2YWx1YXRlKGV2YWx1YXRvci5nZXQoKSk7Cit9
CisKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlNYXRjaGVyLmggYi9XZWJD
b3JlL2Nzcy9NZWRpYVF1ZXJ5TWF0Y2hlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjM3MmUxNmYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5
TWF0Y2hlci5oCkBAIC0wLDAgKzEsOTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9r
aWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBNZWRpYVF1ZXJ5TWF0Y2hlcl9oCisjZGVmaW5lIE1lZGlhUXVlcnlNYXRjaGVyX2gKKworI2lu
Y2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNp
bmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBNZWRpYUxpc3Q7
CitjbGFzcyBNZWRpYVF1ZXJ5TGlzdDsKK2NsYXNzIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI7Citj
bGFzcyBNZWRpYVF1ZXJ5RXZhbHVhdG9yOworCisvKioKKyAgTWVkaWFRdWVyeU1hdGNoZXIgY2xh
c3MgaXMgcmVzcG9uc2libGUgZm9yIGtlZXBpbmcgYSB2ZWN0b3Igb2YgcGFpcnMKKyAgTWVkaWFR
dWVyeUxpc3QgeCBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLiBJdCBpcyByZXNwb25zaWJsZSBmb3Ig
ZXZhbHVhdGluZyB0aGUgcXVlcmllcworICB3aGVuZXZlciBpdCBpcyBuZWVkZWQgYW5kIHRvIGNh
bGwgdGhlIGxpc3RlbmVycyBpZiB0aGUgY29ycmVzcG9uZGluZyBxdWVyeSBoYXMgY2hhbmdlZC4K
KyAgVGhlIGxpc3RlbmVycyBtdXN0IGJlIGNhbGxlZCBpbiB0aGUgdmVyeSBzYW1lIG9yZGVyIGlu
IHdoaWNoIHRoZXkgaGF2ZSBiZWVuIGFkZGVkLgorKi8KK2NsYXNzIE1lZGlhUXVlcnlNYXRjaGVy
IDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFRdWVyeU1hdGNoZXI+IHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TWF0Y2hlcj4gY3JlYXRlKERvY3VtZW50KiBkb2Mp
IHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZWRpYVF1ZXJ5TWF0Y2hlcihkb2MpKTsgfQorICAgIH5N
ZWRpYVF1ZXJ5TWF0Y2hlcigpOworICAgIHZvaWQgdGVybWluYXRlKCk7CisKKyAgICB2b2lkIGFk
ZExpc3RlbmVyKFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4sIFBhc3NSZWZQdHI8
TWVkaWFRdWVyeUxpc3Q+KTsKKyAgICB2b2lkIHJlbW92ZUxpc3RlbmVyKFBhc3NSZWZQdHI8TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lcj4sIFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3Q+KTsKKworICAg
IFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3Q+IG1hdGNoTWVkaWEoY29uc3QgU3RyaW5nJik7CisK
KyAgICBpbnQgZXZhbFJvdW5kKCkgY29uc3QgeyByZXR1cm4gbV9ldmFsUm91bmQ7IH0KKyAgICB2
b2lkIGV2YWx1YXRlKCk7CisgICAgYm9vbCBldmFsdWF0ZShNZWRpYUxpc3QqKTsKKworcHJpdmF0
ZToKKyAgICBjbGFzcyBMaXN0ZW5lciB7CisgICAgcHVibGljOgorICAgICAgICBMaXN0ZW5lcihQ
YXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+LCBQYXNzUmVmUHRyPE1lZGlhUXVlcnlM
aXN0Pik7CisgICAgICAgIH5MaXN0ZW5lcigpOworCisgICAgICAgIHZvaWQgZXZhbHVhdGUoTWVk
aWFRdWVyeUV2YWx1YXRvciopOworCisgICAgICAgIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqIGxp
c3RlbmVyKCkgeyByZXR1cm4gbV9saXN0ZW5lci5nZXQoKTsgfQorICAgICAgICBNZWRpYVF1ZXJ5
TGlzdCogcXVlcnkoKSB7IHJldHVybiBtX3F1ZXJ5LmdldCgpOyB9CisKKyAgICBwcml2YXRlOgor
ICAgICAgICBSZWZQdHI8TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4gbV9saXN0ZW5lcjsKKyAgICAg
ICAgUmVmUHRyPE1lZGlhUXVlcnlMaXN0PiBtX3F1ZXJ5OworICAgIH07CisKK3ByaXZhdGU6Cisg
ICAgTWVkaWFRdWVyeU1hdGNoZXIoRG9jdW1lbnQqKTsKKyAgICBQYXNzT3duUHRyPE1lZGlhUXVl
cnlFdmFsdWF0b3I+IHByZXBhcmVFdmFsdWF0b3IoKSBjb25zdDsKKyAgICBTdHJpbmcgbWVkaWFU
eXBlKCkgY29uc3Q7CisKKyAgICBEb2N1bWVudCogbV9kb2M7CisgICAgVmVjdG9yPExpc3RlbmVy
Kj4gbV9saXN0ZW5lcnM7CisgICAgaW50IG1fZXZhbFJvdW5kOyAvLyB0aGlzIHZhbHVlIGlzIGlu
Y3JlbWVudGVkIGF0IHN0eWxlIHNlbGVjdG9yIGNoYW5nZXMuCisgICAgICAgICAgICAgICAgICAg
ICAvLyBpdCBpcyB1c2VkIHRvIGF2b2lkIGV2YWx1YXRpbmcgcXVlcmllcyBtb3JlIHRoZW4gb25j
ZQorICAgICAgICAgICAgICAgICAgICAgLy8gYW5kIHRvIGF2b2lkIG5vdGlmaW5nIGEgY2hhbmdl
IG1vcmUgdGhlbiBvbmNlLgorICAgIGJvb2wgbV90ZXJtaW5hdGVkOworfTsKKworfQorCisjZW5k
aWYgLy8gTWVkaWFRdWVyeU1hdGNoZXJfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDFjM2NjMWMuLjkzNGJlMmEg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKQEAgLTYsNiArNiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUs
IDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuIChodHRwOi8vd3d3LnRvcmNobW9iaWxlLmNvbS8pCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMDgsIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykK
ICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtODksNiArOTAsOCBAQAogI2luY2x1ZGUgIkluc3BlY3Rv
clRpbWVsaW5lQWdlbnQuaCIKICNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAi
TG9nZ2luZy5oIgorI2luY2x1ZGUgIk1lZGlhUXVlcnlMaXN0LmgiCisjaW5jbHVkZSAiTWVkaWFR
dWVyeU1hdGNoZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlRXZlbnQuaCIKICNpbmNsdWRlICJNb3Vz
ZUV2ZW50LmgiCiAjaW5jbHVkZSAiTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cy5oIgpAQCAt
NTU4LDYgKzU2MSwxNiBAQCBEb2N1bWVudDo6fkRvY3VtZW50KCkKICAgICAgICAgbV9zdHlsZVNo
ZWV0cy0+ZG9jdW1lbnREZXN0cm95ZWQoKTsKIAogICAgIG1fd2Vha1JlZmVyZW5jZS0+Y2xlYXIo
KTsKKworICAgIGlmIChtX21lZGlhUXVlcnlNYXRjaGVyKQorICAgICAgICBtX21lZGlhUXVlcnlN
YXRjaGVyLT50ZXJtaW5hdGUoKTsKK30KKworUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdD4gRG9j
dW1lbnQ6Om1hdGNoTWVkaWEoY29uc3QgU3RyaW5nJiBtZWRpYSkKK3sKKyAgICBpZiAoIW1fbWVk
aWFRdWVyeU1hdGNoZXIpCisgICAgICAgIG1fbWVkaWFRdWVyeU1hdGNoZXIgPSBNZWRpYVF1ZXJ5
TWF0Y2hlcjo6Y3JlYXRlKHRoaXMpOworICAgIHJldHVybiBtX21lZGlhUXVlcnlNYXRjaGVyLT5t
YXRjaE1lZGlhKG1lZGlhKTsKIH0KIAogI2lmIFVTRShKU0MpCkBAIC0yODQ4LDYgKzI4NjEsOSBA
QCB2b2lkIERvY3VtZW50OjpzdHlsZVNlbGVjdG9yQ2hhbmdlZChTdHlsZVNlbGVjdG9yVXBkYXRl
RmxhZyB1cGRhdGVGbGFnKQogICAgICAgICBpZiAodmlldygpKQogICAgICAgICAgICAgdmlldygp
LT5zY2hlZHVsZVJlbGF5b3V0KCk7CiAgICAgfQorCisgICAgaWYgKG1fbWVkaWFRdWVyeU1hdGNo
ZXIpCisgICAgICAgIG1fbWVkaWFRdWVyeU1hdGNoZXItPmV2YWx1YXRlKCk7CiB9CiAKIHZvaWQg
RG9jdW1lbnQ6OmFkZFN0eWxlU2hlZXRDYW5kaWRhdGVOb2RlKE5vZGUqIG5vZGUsIGJvb2wgY3Jl
YXRlZEJ5UGFyc2VyKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKaW5kZXggZGM3ZDllOC4uZDYyNGQ4ZiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC01LDYg
KzUsNyBAQAogICogICAgICAgICAgIChDKSAyMDA2IEFsZXhleSBQcm9za3VyeWFrb3YgKGFwQHdl
YmtpdC5vcmcpCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgs
IDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0
IChDKSAyMDA4LCAyMDA5IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuICho
dHRwOi8vd3d3LnRvcmNobW9iaWxlLmNvbS8pCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEg
Q29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgogICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKQEAgLTkyLDYgKzkzLDggQEAgY2xhc3MgSW50UG9pbnQ7CiBjbGFzcyBET01XcmFwcGVyV29y
bGQ7CiBjbGFzcyBKU05vZGU7CiBjbGFzcyBNZWRpYUNhblN0YXJ0TGlzdGVuZXI7CitjbGFzcyBN
ZWRpYVF1ZXJ5TGlzdDsKK2NsYXNzIE1lZGlhUXVlcnlNYXRjaGVyOwogY2xhc3MgTW91c2VFdmVu
dFdpdGhIaXRUZXN0UmVzdWx0czsKIGNsYXNzIE5vZGVGaWx0ZXI7CiBjbGFzcyBOb2RlSXRlcmF0
b3I7CkBAIC0xOTYsNiArMTk5LDggQEAgcHVibGljOgogICAgIH0KICAgICB2aXJ0dWFsIH5Eb2N1
bWVudCgpOwogCisgICAgUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdD4gbWF0Y2hNZWRpYShjb25z
dCBTdHJpbmcmKTsKKwogICAgIHVzaW5nIENvbnRhaW5lck5vZGU6OnJlZjsKICAgICB1c2luZyBD
b250YWluZXJOb2RlOjpkZXJlZjsKIApAQCAtMTMxMCw2ICsxMzE1LDggQEAgcHJpdmF0ZToKICNl
bmRpZgogCiAgICAgaW50IG1fbG9hZEV2ZW50RGVsYXlDb3VudDsKKworICAgIFJlZlB0cjxNZWRp
YVF1ZXJ5TWF0Y2hlcj4gbV9tZWRpYVF1ZXJ5TWF0Y2hlcjsKIH07CiAKIGlubGluZSBib29sIERv
Y3VtZW50OjpoYXNFbGVtZW50V2l0aElkKEF0b21pY1N0cmluZ0ltcGwqIGlkKSBjb25zdApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmNwcAppbmRleCAxNWYzZWQxLi4zMmY1ZmJlIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtMSw1ICsx
LDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0
aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC02NCw3ICs2NSw3IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dC5oIgogI2luY2x1ZGUgIktVUkwuaCIKICNpbmNsdWRlICJMb2NhdGlvbi5oIgotI2luY2x1ZGUg
IlN0eWxlTWVkaWEuaCIKKyNpbmNsdWRlICJNZWRpYVF1ZXJ5TGlzdC5oIgogI2luY2x1ZGUgIk1l
c3NhZ2VFdmVudC5oIgogI2luY2x1ZGUgIk5hdmlnYXRvci5oIgogI2luY2x1ZGUgIk5vdGlmaWNh
dGlvbkNlbnRlci5oIgpAQCAtODAsNiArODEsNyBAQAogI2luY2x1ZGUgIlN0b3JhZ2UuaCIKICNp
bmNsdWRlICJTdG9yYWdlQXJlYS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VOYW1lc3BhY2UuaCIKKyNp
bmNsdWRlICJTdHlsZU1lZGlhLmgiCiAjaW5jbHVkZSAiU3VkZGVuVGVybWluYXRpb24uaCIKICNp
bmNsdWRlICJXZWJLaXRQb2ludC5oIgogI2luY2x1ZGUgPGFsZ29yaXRobT4KQEAgLTQwNyw2ICs0
MDksMTEgQEAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogRE9NV2luZG93OjpzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCkgY29uc3QKICAgICByZXR1cm4gZG9jdW1lbnQoKTsKIH0KIAorUGFzc1JlZlB0
cjxNZWRpYVF1ZXJ5TGlzdD4gRE9NV2luZG93OjptYXRjaE1lZGlhKGNvbnN0IFN0cmluZyYgbWVk
aWEpCit7CisgICAgcmV0dXJuIGRvY3VtZW50KCkgPyBkb2N1bWVudCgpLT5tYXRjaE1lZGlhKG1l
ZGlhKSA6IDA7Cit9CisKIHZvaWQgRE9NV2luZG93OjpkaXNjb25uZWN0RnJhbWUoKQogewogICAg
IG1fZnJhbWUgPSAwOwpAQCAtNDk4LDYgKzUwNSw3IEBAIHZvaWQgRE9NV2luZG93OjpjbGVhcigp
CiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgbV9pZGJGYWN0b3J5ID0gMDsKICNl
bmRpZgorCiB9CiAKICNpZiBFTkFCTEUoT1JJRU5UQVRJT05fRVZFTlRTKQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCmluZGV4
IDE0NzA2MjguLmJkN2IwZGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAor
KysgYi9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29w
eXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA5IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTYwLDEw
ICs2MSwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgSW5zcGVjdG9yVGltZWxp
bmVBZ2VudDsKICAgICBjbGFzcyBMb2NhbEZpbGVTeXN0ZW07CiAgICAgY2xhc3MgTG9jYXRpb247
Ci0gICAgY2xhc3MgU3R5bGVNZWRpYTsKKyAgICBjbGFzcyBNZWRpYVF1ZXJ5TGlzdDsKICAgICBj
bGFzcyBOYXZpZ2F0b3I7CiAgICAgY2xhc3MgTm9kZTsKICAgICBjbGFzcyBOb3RpZmljYXRpb25D
ZW50ZXI7CisgICAgY2xhc3MgU3R5bGVNZWRpYTsKIAogI2lmIEVOQUJMRShXRUJfVElNSU5HKQog
ICAgIGNsYXNzIFBlcmZvcm1hbmNlOwpAQCAtOTksNiArMTAxLDggQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiAgICAgICAgIHZvaWQgY2xlYXIoKTsKIAorICAgICAgICBQYXNzUmVmUHRyPE1lZGlh
UXVlcnlMaXN0PiBtYXRjaE1lZGlhKGNvbnN0IFN0cmluZyYpOworCiAjaWYgRU5BQkxFKE9SSUVO
VEFUSU9OX0VWRU5UUykKICAgICAgICAgLy8gVGhpcyBpcyB0aGUgaW50ZXJmYWNlIG9yaWVudGF0
aW9uIGluIGRlZ3JlZXMuIFNvbWUgZXhhbXBsZXMgYXJlOgogICAgICAgICAvLyAgMCBpcyBzdHJh
aWdodCB1cDsgLTkwIGlzIHdoZW4gdGhlIGRldmljZSBpcyByb3RhdGVkIDkwIGNsb2Nrd2lzZTsK
QEAgLTQ2Miw3ICs0NjYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgaW5saW5lIFN0cmlu
ZyBET01XaW5kb3c6OmRlZmF1bHRTdGF0dXMoKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJu
IG1fZGVmYXVsdFN0YXR1czsKLSAgICB9IAorICAgIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbCBiL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuaWRsCmluZGV4IGIxYzI5MmEuLjQwNGZjMDkgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3cuaWRsCisrKyBiL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCkBA
IC0xNDEsNyArMTQxLDggQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBEb2N1bWVudCBkb2N1bWVudDsKIAogICAgICAgICAvLyBDU1NPTSBWaWV3IE1vZHVsZQot
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU3R5bGVNZWRpYSBzdHlsZU1lZGlhOworICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgU3R5bGVNZWRpYSBzdHlsZU1lZGlhOyAvLyBkZXByZWNhdGVk
CisgICAgICAgIE1lZGlhUXVlcnlMaXN0IG1hdGNoTWVkaWEoaW4gRE9NU3RyaW5nIHF1ZXJ5KTsK
IAogICAgICAgICAvLyBET00gTGV2ZWwgMiBTdHlsZSBJbnRlcmZhY2UKICAgICAgICAgQ1NTU3R5
bGVEZWNsYXJhdGlvbiBnZXRDb21wdXRlZFN0eWxlKGluIEVsZW1lbnQgZWxlbWVudCwKLS0gCjEu
Ny4yLjIKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67227</attachid>
            <date>2010-09-10 13:25:40 -0700</date>
            <delta_ts>2010-09-17 16:40:17 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-Implement-CSSOM-View-matchMedia-interface.patch</filename>
            <type>text/plain</type>
            <size>95397</size>
            <attacher name="Luiz Agostini">luiz</attacher>
            
              <data encoding="base64">RnJvbSAyZjMwZDA2N2FmYjJlOTA5MGZmZjU4NGE4NGJhODYwNDhiN2JmOWRjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWl6IEFnb3N0aW5pIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IEZyaSwgMTAgU2VwIDIwMTAgMTM6NDY6MTAgLTAzMDAKU3ViamVjdDogW1BB
VENIXSBJbXBsZW1lbnQgQ1NTT00gVmlldyBtYXRjaE1lZGlhIGludGVyZmFjZQogaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3MjA1CgpSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KCldlYkNvcmU6CgpOZXcgaW50ZXJmYWNlcyBtYXkgYmUgdXNlZCB0byBldmFsdWF0
ZSBtZWRpYSBxdWVyaWVzIGFuZCB0byBhc3NvY2lhdGUgbGlzdGVuZXJzCnRvIG1lZGlhIHF1ZXJp
ZXMuIFRob3NlIGxpc3RlbmVycyBhcmUgY2FsbGVkIHdoZW5ldmVyIHRoZSBhc3NvY2lhdGVkIHF1
ZXJ5IGNoYW5nZXMuClNwZWNpZmljYXRpb24gbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9kZXYudzMu
b3JnL2Nzc3dnL2Nzc29tLXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2UKClY4IGFu
ZCBKUyBjb2RlIGdlbmVyYXRvcnMgY2hhbmdlZCB0byBhY2NlcHQgdm9pZCBjYWxsYmFja3MuCgoq
IGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgoqIGJpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvclY4LnBtOgoKTmV3IGludGVyZmFjZXMgTWVkaWFRdWVyeUxpc3QgYW5kIE1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXIuClNlZSBodHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9jc3NvbS12
aWV3LyN0aGUtbWVkaWFxdWVyeWxpc3QtaW50ZXJmYWNlCgoqIGNzcy9NZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyLmlkbDogQWRkZWQuCiogY3NzL01lZGlhUXVlcnlMaXN0LmlkbDogQWRkZWQuCgpNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyIGlzIGEgY2FsbGJhY2suIEN1c3RvbSBtZXRob2RzIGFyZSBuZWVk
ZWQgdG8gaW1wbGVtZW50CmNhbGxiYWNrIGNvbXBhcmlzb24uCgoqIGJpbmRpbmdzL2pzL0pTTWVk
aWFRdWVyeUxpc3RMaXN0ZW5lckN1c3RvbS5jcHA6IEFkZGVkLgooV2ViQ29yZTo6SlNNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyOjp0eXBlKToKKFdlYkNvcmU6OkpTTWVkaWFRdWVyeUxpc3RMaXN0ZW5l
cjo6aXNFcXVhbFRvKToKKiBiaW5kaW5ncy92OC9jdXN0b20vVjhNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyQ3VzdG9tLmNwcDogQWRkZWQuCihXZWJDb3JlOjpWOE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6
OnR5cGUpOgooV2ViQ29yZTo6VjhNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjppc0VxdWFsVG8pOgoK
Q2xhc3NlcyBNZWRpYVF1ZXJ5TGlzdCBhbmQgTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci4KCiogY3Nz
L01lZGlhUXVlcnlMaXN0LmNwcDogQWRkZWQuCihXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdDo6Y3Jl
YXRlKToKKFdlYkNvcmU6Ok1lZGlhUXVlcnlMaXN0OjpNZWRpYVF1ZXJ5TGlzdCk6CihXZWJDb3Jl
OjpNZWRpYVF1ZXJ5TGlzdDo6fk1lZGlhUXVlcnlMaXN0KToKKFdlYkNvcmU6Ok1lZGlhUXVlcnlM
aXN0OjptZWRpYSk6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdDo6YWRkTGlzdGVuZXIpOgooV2Vi
Q29yZTo6TWVkaWFRdWVyeUxpc3Q6OnJlbW92ZUxpc3RlbmVyKToKKFdlYkNvcmU6Ok1lZGlhUXVl
cnlMaXN0OjpldmFsdWF0ZSk6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdDo6c2V0TWF0Y2hlcyk6
CihXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdDo6Y2hhbmdlZCk6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5
TGlzdDo6bWF0Y2hlcyk6CiogY3NzL01lZGlhUXVlcnlMaXN0Lmg6IEFkZGVkLgoqIGNzcy9NZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyLmg6IEFkZGVkLgooV2ViQ29yZTo6TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lcjo6fk1lZGlhUXVlcnlMaXN0TGlzdGVuZXIpOgoKVG8gYXZvaWQgYWRkaW5nIGNvZGUgdG8g
Y2xhc3NlcyBET01XaW5kb3cgYW5kIERvY3VtZW50IGEgbmV3IGNsYXNzIE1lZGlhUXVlcnlNYXRj
aGVyIHdhcwpjcmVhdGVkLgoKKiBjc3MvTWVkaWFRdWVyeU1hdGNoZXIuY3BwOiBBZGRlZC4KKFdl
YkNvcmU6Ok1lZGlhUXVlcnlNYXRjaGVyOjpMaXN0ZW5lcjo6TGlzdGVuZXIpOgooV2ViQ29yZTo6
TWVkaWFRdWVyeU1hdGNoZXI6Okxpc3RlbmVyOjp+TGlzdGVuZXIpOgooV2ViQ29yZTo6TWVkaWFR
dWVyeU1hdGNoZXI6Okxpc3RlbmVyOjpldmFsdWF0ZSk6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5TWF0
Y2hlcjo6TWVkaWFRdWVyeU1hdGNoZXIpOgooV2ViQ29yZTo6TWVkaWFRdWVyeU1hdGNoZXI6On5N
ZWRpYVF1ZXJ5TWF0Y2hlcik6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5TWF0Y2hlcjo6dGVybWluYXRl
KToKKFdlYkNvcmU6Ok1lZGlhUXVlcnlNYXRjaGVyOjptZWRpYVR5cGUpOgooV2ViQ29yZTo6TWVk
aWFRdWVyeU1hdGNoZXI6OnByZXBhcmVFdmFsdWF0b3IpOgooV2ViQ29yZTo6TWVkaWFRdWVyeU1h
dGNoZXI6OmV2YWx1YXRlKToKKFdlYkNvcmU6Ok1lZGlhUXVlcnlNYXRjaGVyOjptYXRjaE1lZGlh
KToKKFdlYkNvcmU6Ok1lZGlhUXVlcnlNYXRjaGVyOjphZGRMaXN0ZW5lcik6CihXZWJDb3JlOjpN
ZWRpYVF1ZXJ5TWF0Y2hlcjo6cmVtb3ZlTGlzdGVuZXIpOgoqIGNzcy9NZWRpYVF1ZXJ5TWF0Y2hl
ci5oOiBBZGRlZC4KKFdlYkNvcmU6Ok1lZGlhUXVlcnlNYXRjaGVyOjpjcmVhdGUpOgooV2ViQ29y
ZTo6TWVkaWFRdWVyeU1hdGNoZXI6OmV2YWxSb3VuZCk6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5TWF0
Y2hlcjo6TGlzdGVuZXI6Omxpc3RlbmVyKToKKFdlYkNvcmU6Ok1lZGlhUXVlcnlNYXRjaGVyOjpM
aXN0ZW5lcjo6cXVlcnkpOgoKRG9jdW1lbnQgYW5kIERPTVdpbmRvdyBoYXZlIGNoYW5nZWQgdG8g
c3VwcG9ydCBuZXcgZmVhdHVyZXMuIERPTVdpbmRvdyBpcyB0aGUgY2xhc3MgdGhhdApwdWJsaXNo
ZXMgbWV0aG9kcyBtYXRjaE1lZGlhIGJ1dCBmb3IgcGFnZSBjYWNoZSB0byB3b3JrIHByb3Blcmx5
ICB0aGUgcmVmZXJlbmNlIHRvIHRoZQpNZWRpYVF1ZXJ5TWF0Y2hlciBpcyBrZXB0IGJ5IERvY3Vt
ZW50IGluc3RhbmNlLgoKKiBkb20vRG9jdW1lbnQuY3BwOgooV2ViQ29yZTo6RG9jdW1lbnQ6On5E
b2N1bWVudCk6CihXZWJDb3JlOjpEb2N1bWVudDo6bWF0Y2hNZWRpYSk6CihXZWJDb3JlOjpEb2N1
bWVudDo6c3R5bGVTZWxlY3RvckNoYW5nZWQpOgoqIGRvbS9Eb2N1bWVudC5oOgoqIHBhZ2UvRE9N
V2luZG93LmNwcDoKKFdlYkNvcmU6OkRPTVdpbmRvdzo6bWF0Y2hNZWRpYSk6CihXZWJDb3JlOjpE
T01XaW5kb3c6OmNsZWFyKToKKiBwYWdlL0RPTVdpbmRvdy5oOgooV2ViQ29yZTo6RE9NV2luZG93
OjpkZWZhdWx0U3RhdHVzKToKKiBwYWdlL0RPTVdpbmRvdy5pZGw6CgpCdWlsZCBpc3N1ZXMKCiog
RGVyaXZlZFNvdXJjZXMubWFrZToKKiBHTlVtYWtlZmlsZS5hbToKKiBXZWJDb3JlLmd5cGk6Ciog
V2ViQ29yZS5wcmk6CiogV2ViQ29yZS5wcm86CiogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgoqIGJpbmRpbmdzL2dvYmplY3QvR05VbWFrZWZpbGUuYW06CiogV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2o6CgpUZXN0czogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAx
Lmh0bWwKICAgICAgIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMi5odG1sCiAgICAgICBm
YXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMuaHRtbAoKTGF5b3V0VGVzdHM6Cgp3aW5kb3cu
bWF0Y2hNZWRpYSBhbmQgTWVkaWFRdWVyeUxpc3QgdGVzdHMuCgoqIGZhc3QvZG9tL1dpbmRvdy93
aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQ6CiogZmFzdC9kb20vV2luZG93L3dpbmRvdy1w
cm9wZXJ0eS1kZXNjcmlwdG9ycy1leHBlY3RlZC50eHQ6CiogZmFzdC9tZWRpYS9tZWRpYS1xdWVy
eS1saXN0LTAxLWV4cGVjdGVkLnR4dDogQWRkZWQuCiogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1s
aXN0LTAxLmh0bWw6IEFkZGVkLgoqIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMi1leHBl
Y3RlZC50eHQ6IEFkZGVkLgoqIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMi5odG1sOiBB
ZGRlZC4KKiBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKiBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMuaHRtbDogQWRkZWQuCiogcGxhdGZv
cm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0OgoqIHBsYXRmb3JtL21hYy9Ta2lwcGVk
OgoqIHBsYXRmb3JtL3dpbi9Ta2lwcGVkOgotLS0KIExheW91dFRlc3RzL0NoYW5nZUxvZyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyMSArKysKIC4uLi9mYXN0L2RvbS9XaW5kb3cv
d2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0IHwgICAgMSArCiAuLi4vd2luZG93LXByb3Bl
cnR5LWRlc2NyaXB0b3JzLWV4cGVjdGVkLnR4dCAgICAgICB8ICAgIDEgKwogLi4uL2Zhc3QvbWVk
aWEvbWVkaWEtcXVlcnktbGlzdC0wMS1leHBlY3RlZC50eHQgICAgfCAgIDE1ICsrCiBMYXlvdXRU
ZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDEuaHRtbCAgICB8ICAgNTIgKysrKysr
CiAuLi4vZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAyLWV4cGVjdGVkLnR4dCAgICB8ICAg
MjUgKysrCiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDIuaHRtbCAg
ICB8ICAgNjEgKysrKysrKwogLi4uL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMy1leHBl
Y3RlZC50eHQgICAgfCAgIDQxICsrKysrCiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1
ZXJ5LWxpc3QtMDMuaHRtbCAgICB8ICAgNzAgKysrKysrKysKIC4uLi9wbGF0Zm9ybS9jaHJvbWl1
bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQgICAgICAgIHwgICAgNCArLQogTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL1NraXBwZWQgICAgICAgICAgICAgICAgICAgfCAgICA0ICstCiBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS93aW4vU2tpcHBlZCAgICAgICAgICAgICAgICAgICB8ICAgIDQgKy0KIFdlYkNv
cmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEwMiArKysr
KysrKysrKysKIFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSAgICAgICAgICAgICAgICAgICAg
ICAgIHwgICAgMiArCiBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgMTIgKystCiBXZWJDb3JlL1dlYkNvcmUuZ3lwaSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgMTAgKy0KIFdlYkNvcmUvV2ViQ29yZS5wcmkgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAgMiArCiBXZWJDb3JlL1dlYkNvcmUucHJvICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDYgKwogV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvaiAgICAgICAgICAgICAgfCAgMTMyICsrKysrKysrKysrKysrKysKIFdlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qICAgICAgICAgIHwgICA0NCArKysr
KwogV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dOVW1ha2VmaWxlLmFtICAgICAgICAgICAgfCAg
ICA2ICsKIC4uLi9iaW5kaW5ncy9qcy9KU01lZGlhUXVlcnlMaXN0TGlzdGVuZXJDdXN0b20uY3Bw
IHwgICA1OSArKysrKysrCiBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtICAgICAgICB8ICAgMzcgKysrKy0KIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yVjgucG0gICAgICAgIHwgICA1OSArKysrKystLQogLi4uL3Y4L2N1c3RvbS9WOE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXJDdXN0b20uY3BwICAgfCAgIDQ1ICsrKysrKwogV2ViQ29yZS9jc3Mv
TWVkaWFRdWVyeUxpc3QuY3BwICAgICAgICAgICAgICAgICAgICAgfCAgIDk5ICsrKysrKysrKysr
KwogV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3QuaCAgICAgICAgICAgICAgICAgICAgICAgfCAg
IDczICsrKysrKysrKwogV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3QuaWRsICAgICAgICAgICAg
ICAgICAgICAgfCAgIDMzICsrKysKIFdlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0TGlzdGVuZXIu
aCAgICAgICAgICAgICAgIHwgICA1NCArKysrKysrCiBXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyLmlkbCAgICAgICAgICAgICB8ICAgMzIgKysrKwogV2ViQ29yZS9jc3MvTWVkaWFR
dWVyeU1hdGNoZXIuY3BwICAgICAgICAgICAgICAgICAgfCAgMTY1ICsrKysrKysrKysrKysrKysr
KysrCiBXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TWF0Y2hlci5oICAgICAgICAgICAgICAgICAgICB8
ICAxNDUgKysrKysrKysrKysrKysrKysKIFdlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAxNiArKwogV2ViQ29yZS9kb20vRG9jdW1lbnQuaCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA3ICsKIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cu
Y3BwICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMCArLQogV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5oICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA4ICstCiBXZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmlkbCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDMgKy0KIDM3IGZpbGVz
IGNoYW5nZWQsIDE0MzQgaW5zZXJ0aW9ucygrKSwgMjYgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAxLWV4cGVj
dGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEt
cXVlcnktbGlzdC0wMS5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAyLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0
IExheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMi5odG1sCiBjcmVhdGUg
bW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAzLWV4
cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVk
aWEtcXVlcnktbGlzdC0wMy5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU01lZGlhUXVlcnlMaXN0TGlzdGVuZXJDdXN0b20uY3BwCiBjcmVhdGUgbW9kZSAxMDA2
NDQgV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ3Vz
dG9tLmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0LmNw
cAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0LmgKIGNyZWF0
ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdC5pZGwKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmlkbAogY3JlYXRlIG1v
ZGUgMTAwNjQ0IFdlYkNvcmUvY3NzL01lZGlhUXVlcnlNYXRjaGVyLmNwcAogY3JlYXRlIG1vZGUg
MTAwNjQ0IFdlYkNvcmUvY3NzL01lZGlhUXVlcnlNYXRjaGVyLmgKCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYmZhYTRmYS4u
ZTJhNmIwNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEwLTA5LTEwICBMdWl6IEFnb3N0aW5p
ICA8bHVpei5hZ29zdGluaUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBDU1NPTSBWaWV3IG1hdGNoTWVkaWEg
aW50ZXJmYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0zNzIwNQorCisgICAgICAgIHdpbmRvdy5tYXRjaE1lZGlhIGFuZCBNZWRpYVF1ZXJ5TGlzdCB0
ZXN0cy4KKworICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1kZXNj
cmlwdG9ycy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1s
aXN0LTAxLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYS9tZWRpYS1x
dWVyeS1saXN0LTAxLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWEvbWVkaWEtcXVl
cnktbGlzdC0wMi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWEvbWVk
aWEtcXVlcnktbGlzdC0wMi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhL21lZGlh
LXF1ZXJ5LWxpc3QtMDMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlh
L21lZGlhLXF1ZXJ5LWxpc3QtMDMuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hy
b21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9Ta2lw
cGVkOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9Ta2lwcGVkOgorCiAyMDEwLTA5LTEwICBSeW9z
dWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFudG9u
aW8gR29tZXMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93
LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dp
bmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAppbmRleCBlNTUzYmVjLi43ZTk2MzUwIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVy
dGllcy1leHBlY3RlZC50eHQKQEAgLTIyMzUsNiArMjIzNSw3IEBAIHdpbmRvdy5sb2NhdGlvbmJh
ci52aXNpYmxlIFtib29sZWFuXQogd2luZG93LmxvZyBbZnVuY3Rpb25dCiB3aW5kb3cubG9nUHJv
cGVydGllcyBbZnVuY3Rpb25dCiB3aW5kb3cubG9nVmFsdWUgW2Z1bmN0aW9uXQord2luZG93Lm1h
dGNoTWVkaWEgW2Z1bmN0aW9uXQogd2luZG93Lm1lbnViYXIgW29iamVjdCBCYXJJbmZvXQogd2lu
ZG93Lm1lbnViYXIudmlzaWJsZSBbYm9vbGVhbl0KIHdpbmRvdy5tb3ZlQnkgW2Z1bmN0aW9uXQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1k
ZXNjcmlwdG9ycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2lu
ZG93LXByb3BlcnR5LWRlc2NyaXB0b3JzLWV4cGVjdGVkLnR4dAppbmRleCBhNzZiZjczLi4zMzQ5
YzgwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3Bl
cnR5LWRlc2NyaXB0b3JzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9X
aW5kb3cvd2luZG93LXByb3BlcnR5LWRlc2NyaXB0b3JzLWV4cGVjdGVkLnR4dApAQCAtNTA0LDYg
KzUwNCw3IEBAIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdn
ZXRNYXRjaGVkQ1NTUnVsZXMnKSBpcyB1bmRlZmluZWQuCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnZ2V0U2VsZWN0aW9uJykgaXMgdW5kZWZpbmVkLgogUEFT
UyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ2hhc093blByb3BlcnR5
JykgaXMgdW5kZWZpbmVkLgogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdp
bmRvdywgJ2lzUHJvdG90eXBlT2YnKSBpcyB1bmRlZmluZWQuCitQQVNTIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnbWF0Y2hNZWRpYScpIGlzIHVuZGVmaW5lZC4KIFBB
U1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdtb3ZlQnknKSBpcyB1
bmRlZmluZWQuCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAn
bW92ZVRvJykgaXMgdW5kZWZpbmVkLgogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKHdpbmRvdywgJ29wZW4nKSBpcyB1bmRlZmluZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAxLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZWJhM2Y1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAxLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDE1IEBACitUZXN0IHRoZSBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U6IGh0dHA6Ly9k
ZXYudzMub3JnL2Nzc3dnL2Nzc29tLXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2Uu
CisKKyJzY3JlZW4iIGV2YWx1YXRlcyB0byB0cnVlOiBQQVNTCisicHJvamVjdGlvbiIgZXZhbHVh
dGVzIHRvIGZhbHNlOiBQQVNTCisiYWxsIGFuZCAoY29sb3IpIiBldmFsdWF0ZXMgdG8gdHJ1ZTog
UEFTUworIm5vdCBwcm9qZWN0aW9uIGFuZCAoY29sb3IpIiBldmFsdWF0ZXMgdG8gdHJ1ZTogUEFT
UworIihjb2xvcikiIGV2YWx1YXRlcyB0byB0cnVlOiBQQVNTCisiKGNvbG9yIiBldmFsdWF0ZXMg
dG8gZmFsc2U6IFBBU1MKKyJjb2xvciIgZXZhbHVhdGVzIHRvIGZhbHNlOiBQQVNTCisiZ2FyYmFn
ZSIgZXZhbHVhdGVzIHRvIGZhbHNlOiBQQVNTCisiKG1pbi1kZXZpY2Utd2lkdGg6IDEwMHB4KSIg
ZXZhbHVhdGVzIHRvIHRydWU6IFBBU1MKKyIobWluLWRldmljZS13aWR0aDogNTAwMDBweCkiIGV2
YWx1YXRlcyB0byBmYWxzZTogUEFTUworIigtd2Via2l0LWFuaW1hdGlvbjogMSkiIGV2YWx1YXRl
cyB0byB0cnVlOiBQQVNTCisiKC13ZWJraXQtdHJhbnNmb3JtLTJkKSIgZXZhbHVhdGVzIHRvIHRy
dWU6IFBBU1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVy
eS1saXN0LTAxLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3Qt
MDEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zM2RjYzY3Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAx
Lmh0bWwKQEAgLTAsMCArMSw1MiBAQAorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5UZXN0IENTU09N
IFZpZXcgbW9kdWxlOiBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U8L3RpdGxlPgorPHN0eWxlIHR5
cGU9InRleHQvY3NzIj4KKworPC9zdHlsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiBjaGFyc2V0PSJ1dGYtOCI+CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
KyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgICAgZnVuY3Rp
b24gbG9nKG0pCisgICAgeworICAgICAgICB2YXIgcmVzdWx0cyA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdyZXN1bHRzJyk7CisgICAgICAgIHJlc3VsdHMuaW5uZXJIVE1MICs9IG0gKyAnPGJy
Pic7CisgICAgfQorCisgICAgZnVuY3Rpb24gdGVzdFF1ZXJ5KHF1ZXJ5LCBleHBlY3RlZCkKKyAg
ICB7CisgICAgICAgIHZhciBpc1RydWUgPSB3aW5kb3cubWF0Y2hNZWRpYShxdWVyeSkubWF0Y2hl
czsKKyAgICAgICAgdmFyIG1lc3NhZ2UgPSAnXCInICsgcXVlcnkgKyAnXCIgZXZhbHVhdGVzIHRv
ICcgKyAoaXNUcnVlID8gJ3RydWUnIDogJ2ZhbHNlJyk7CisgICAgICAgIG1lc3NhZ2UgKz0gKGlz
VHJ1ZSA9PSBleHBlY3RlZCkgPyAnOiBQQVNTJyA6ICc6IEZBSUwnOworICAgICAgICBsb2cobWVz
c2FnZSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdHMoKQorICAgIHsKKyAgICAgICAg
dGVzdFF1ZXJ5KCdzY3JlZW4nLCB0cnVlKTsKKyAgICAgICAgdGVzdFF1ZXJ5KCdwcm9qZWN0aW9u
JywgZmFsc2UpOworCisgICAgICAgIHRlc3RRdWVyeSgnYWxsIGFuZCAoY29sb3IpJywgdHJ1ZSk7
CisgICAgICAgIHRlc3RRdWVyeSgnbm90IHByb2plY3Rpb24gYW5kIChjb2xvciknLCB0cnVlKTsK
KyAgICAgICAgdGVzdFF1ZXJ5KCcoY29sb3IpJywgdHJ1ZSk7CisgICAgICAgIHRlc3RRdWVyeSgn
KGNvbG9yJywgZmFsc2UpOworICAgICAgICB0ZXN0UXVlcnkoJ2NvbG9yJywgZmFsc2UpOworCisg
ICAgICAgIHRlc3RRdWVyeSgnZ2FyYmFnZScsIGZhbHNlKTsKKworICAgICAgICB0ZXN0UXVlcnko
JyhtaW4tZGV2aWNlLXdpZHRoOiAxMDBweCknLCB0cnVlKTsKKyAgICAgICAgdGVzdFF1ZXJ5KCco
bWluLWRldmljZS13aWR0aDogNTAwMDBweCknLCBmYWxzZSk7CisKKyAgICAgICAgdGVzdFF1ZXJ5
KCcoLXdlYmtpdC1hbmltYXRpb246IDEpJywgdHJ1ZSk7CisgICAgICAgIHRlc3RRdWVyeSgnKC13
ZWJraXQtdHJhbnNmb3JtLTJkKScsIHRydWUpOworICAgIH0KKworPC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3RzKCkiPgorICAgIDxwPlRlc3QgdGhlIE1lZGlhUXVlcnlM
aXN0IGludGVyZmFjZTogPGEgaHJlZj0iaHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3Nzb20tdmll
dy8jdGhlLW1lZGlhcXVlcnlsaXN0LWludGVyZmFjZSIgdGl0bGU9IkNTU09NIFZpZXcgTW9kdWxl
Ij5odHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9jc3NvbS12aWV3LyN0aGUtbWVkaWFxdWVyeWxpc3Qt
aW50ZXJmYWNlPC9hPi48L3A+CisgICAgPGRpdiBpZD0icmVzdWx0cyI+CisgICAgPC9kaXY+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlh
LXF1ZXJ5LWxpc3QtMDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRp
YS1xdWVyeS1saXN0LTAyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi42MzY0M2Q4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YS9tZWRpYS1xdWVyeS1saXN0LTAyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI1IEBACitUZXN0
IHRoZSBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U6IGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nz
c29tLXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2UuCisKK1Rlc3RpbmcgYWRkTGlz
dGVuZXIgaW4gZGlmZmVyZW50IE1lZGlhUXVlcnlMaXN0IG9iamVjdHMgYW5kIHRoZSBjYWxsYmFj
ayBjYWxsIHNlcXVlbmNlCisKKy0tLS0tLS0tLS0tLS0gbWluaW1pemVkIC0tLS0tLS0tLS0tLS0K
K1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQgdG8gZmFs
c2UKK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSBjaGFuZ2VkIHRv
IHRydWUKK1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQg
dG8gZmFsc2UKK1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSBjaGFu
Z2VkIHRvIHRydWUKKy0tLS0tLS0tLS0tLS0gbWF4aW1pemVkIC0tLS0tLS0tLS0tLS0KK1sxXSAt
IHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSBjaGFuZ2VkIHRvIGZhbHNlCitb
MV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1heGltaXplZCkgY2hhbmdlZCB0byB0cnVl
CitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCkgY2hhbmdlZCB0byBm
YWxzZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtYXhpbWl6ZWQpIGNoYW5nZWQg
dG8gdHJ1ZQorLS0tLS0tLS0tLS0tLSB3aW5kb3dlZCAtLS0tLS0tLS0tLS0tCitbMV0gLSBxdWVy
eSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFuZ2VkIHRvIHRydWUKK1sxXSAtIHF1
ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWF4aW1pemVkKSBjaGFuZ2VkIHRvIGZhbHNlCitbMl0g
LSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFuZ2VkIHRvIHRydWUKK1sy
XSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWF4aW1pemVkKSBjaGFuZ2VkIHRvIGZhbHNl
CistLS0tLS0tLS0tLS0tIGZsb2F0aW5nIC0tLS0tLS0tLS0tLS0KK1sxXSAtIHF1ZXJ5ICgtd2Vi
a2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQgdG8gZmFsc2UKK1sxXSAtIHF1ZXJ5ICgt
d2Via2l0LXZpZXctbW9kZTogZmxvYXRpbmcpIGNoYW5nZWQgdG8gdHJ1ZQorWzJdIC0gcXVlcnkg
KC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0byBmYWxzZQorWzJdIC0gcXVl
cnkgKC13ZWJraXQtdmlldy1tb2RlOiBmbG9hdGluZykgY2hhbmdlZCB0byB0cnVlCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMi5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAyLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGRlY2U0MwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMi5odG1sCkBAIC0wLDAgKzEs
NjEgQEAKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+VGVzdCBDU1NPTSBWaWV3IG1vZHVsZTogTWVk
aWFRdWVyeUxpc3QgaW50ZXJmYWNlPC90aXRsZT4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisK
Kzwvc3R5bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgi
PgorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworICAgIGZ1bmN0aW9uIGxvZyhtKSB7CisgICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHRzJykuaW5uZXJIVE1MICs9IG0gKyAn
PGJyPic7CisgICAgfQorCisgICAgZnVuY3Rpb24gY2FsbGJhY2sxKHF1ZXJ5KSB7CisgICAgICAg
IGxvZygiWzFdIC0gcXVlcnkgIiArIHF1ZXJ5Lm1lZGlhICsgIiBjaGFuZ2VkIHRvICIgKyAocXVl
cnkubWF0Y2hlcyA/ICJ0cnVlIiA6ICJmYWxzZSIpKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBj
YWxsYmFjazIocXVlcnkpIHsKKyAgICAgICAgbG9nKCJbMl0gLSBxdWVyeSAiICsgcXVlcnkubWVk
aWEgKyAiIGNoYW5nZWQgdG8gIiArIChxdWVyeS5tYXRjaGVzID8gInRydWUiIDogImZhbHNlIikp
OworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3RzKCkKKyAgICB7CisgICAgICAgIGlmICgh
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAg
ICAgIHdpbmRvd2VkUXVlcnkgPSB3aW5kb3cubWF0Y2hNZWRpYSgiKC13ZWJraXQtdmlldy1tb2Rl
OiB3aW5kb3dlZCkiKTsKKyAgICAgICAgZmxvYXRpbmdRdWVyeSA9IHdpbmRvdy5tYXRjaE1lZGlh
KCIoLXdlYmtpdC12aWV3LW1vZGU6IGZsb2F0aW5nKSIpOworICAgICAgICBtaW5pbWl6ZWRRdWVy
eSA9IHdpbmRvdy5tYXRjaE1lZGlhKCIoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCkiKTsK
KyAgICAgICAgbWF4aW1pemVkUXVlcnkgPSB3aW5kb3cubWF0Y2hNZWRpYSgiKC13ZWJraXQtdmll
dy1tb2RlOiBtYXhpbWl6ZWQpIik7CisKKyAgICAgICAgd2luZG93ZWRRdWVyeS5hZGRMaXN0ZW5l
cihjYWxsYmFjazEpOworICAgICAgICBmbG9hdGluZ1F1ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNr
MSk7CisgICAgICAgIG1pbmltaXplZFF1ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNrMSk7CisgICAg
ICAgIG1heGltaXplZFF1ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNrMSk7CisKKyAgICAgICAgd2lu
ZG93ZWRRdWVyeS5hZGRMaXN0ZW5lcihjYWxsYmFjazIpOworICAgICAgICBmbG9hdGluZ1F1ZXJ5
LmFkZExpc3RlbmVyKGNhbGxiYWNrMik7CisgICAgICAgIG1pbmltaXplZFF1ZXJ5LmFkZExpc3Rl
bmVyKGNhbGxiYWNrMik7CisgICAgICAgIG1heGltaXplZFF1ZXJ5LmFkZExpc3RlbmVyKGNhbGxi
YWNrMik7CisKKyAgICAgICAgbG9nKCItLS0tLS0tLS0tLS0tIG1pbmltaXplZCAtLS0tLS0tLS0t
LS0tIik7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0
dXJlKCJtaW5pbWl6ZWQiKTsKKyAgICAgICAgbG9nKCItLS0tLS0tLS0tLS0tIG1heGltaXplZCAt
LS0tLS0tLS0tLS0tIik7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFZpZXdNb2Rl
TWVkaWFGZWF0dXJlKCJtYXhpbWl6ZWQiKTsKKyAgICAgICAgbG9nKCItLS0tLS0tLS0tLS0tIHdp
bmRvd2VkIC0tLS0tLS0tLS0tLS0iKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0
Vmlld01vZGVNZWRpYUZlYXR1cmUoIndpbmRvd2VkIik7CisgICAgICAgIGxvZygiLS0tLS0tLS0t
LS0tLSBmbG9hdGluZyAtLS0tLS0tLS0tLS0tIik7CisgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCJmbG9hdGluZyIpOworICAgIH0KKworPC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3RzKCkiPgorICAgIDxwPlRlc3QgdGhl
IE1lZGlhUXVlcnlMaXN0IGludGVyZmFjZTogPGEgaHJlZj0iaHR0cDovL2Rldi53My5vcmcvY3Nz
d2cvY3Nzb20tdmlldy8jdGhlLW1lZGlhcXVlcnlsaXN0LWludGVyZmFjZSIgdGl0bGU9IkNTU09N
IFZpZXcgTW9kdWxlIj5odHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9jc3NvbS12aWV3LyN0aGUtbWVk
aWFxdWVyeWxpc3QtaW50ZXJmYWNlPC9hPi48L3A+CisgICAgPHA+VGVzdGluZyBhZGRMaXN0ZW5l
ciBpbiBkaWZmZXJlbnQgTWVkaWFRdWVyeUxpc3Qgb2JqZWN0cyBhbmQgdGhlIGNhbGxiYWNrIGNh
bGwgc2VxdWVuY2U8L3A+CisgICAgPGRpdiBpZD0icmVzdWx0cyI+CisgICAgPC9kaXY+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1
ZXJ5LWxpc3QtMDMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1x
dWVyeS1saXN0LTAzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5mMjRlMjA2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9t
ZWRpYS1xdWVyeS1saXN0LTAzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQxIEBACitUZXN0IHRo
ZSBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U6IGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzc29t
LXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2UuCisKK1Rlc3RpbmcgcmVtb3ZlTGlz
dGVuZXIgaW4gZGlmZmVyZW50IE1lZGlhUXVlcnlMaXN0IG9iamVjdHMgYW5kIHRoZSBjYWxsYmFj
ayBjYWxsIHNlcXVlbmNlCisKK2FkZGluZyB3aW5kb3dlZFsxXSwgbWluaW1pemVkWzFdLCB3aW5k
b3dlZFsyXSBhbmQgbWluaW1pemVkWzJdCisKKy0tLS0tLS0tLS0tLS0gbWluaW1pemVkIC0tLS0t
LS0tLS0tLS0KK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5n
ZWQgdG8gZmFsc2UKK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSBj
aGFuZ2VkIHRvIHRydWUKK1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQp
IGNoYW5nZWQgdG8gZmFsc2UKK1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1p
emVkKSBjaGFuZ2VkIHRvIHRydWUKKy0tLS0tLS0tLS0tLS0gd2luZG93ZWQgLS0tLS0tLS0tLS0t
LQorWzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0byB0
cnVlCitbMV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCkgY2hhbmdlZCB0
byBmYWxzZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdl
ZCB0byB0cnVlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCkgY2hh
bmdlZCB0byBmYWxzZQorCisKK3JlbW92aW5nIHdpbmRvd2VkWzFdIGFuZCBtaW5pbWl6ZWRbMl0K
KworLS0tLS0tLS0tLS0tLSBtaW5pbWl6ZWQgLS0tLS0tLS0tLS0tLQorWzFdIC0gcXVlcnkgKC13
ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQpIGNoYW5nZWQgdG8gdHJ1ZQorWzJdIC0gcXVlcnkg
KC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0byBmYWxzZQorLS0tLS0tLS0t
LS0tLSB3aW5kb3dlZCAtLS0tLS0tLS0tLS0tCitbMV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1v
ZGU6IG1pbmltaXplZCkgY2hhbmdlZCB0byBmYWxzZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmll
dy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0byB0cnVlCisKKworYWRkaW5nIHdpbmRvd2VkWzFd
IGFuZCBtaW5pbWl6ZWRbMl0KKworLS0tLS0tLS0tLS0tLSBtaW5pbWl6ZWQgLS0tLS0tLS0tLS0t
LQorWzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQpIGNoYW5nZWQgdG8g
dHJ1ZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0
byBmYWxzZQorWzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdl
ZCB0byBmYWxzZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQpIGNo
YW5nZWQgdG8gdHJ1ZQorLS0tLS0tLS0tLS0tLSB3aW5kb3dlZCAtLS0tLS0tLS0tLS0tCitbMV0g
LSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCkgY2hhbmdlZCB0byBmYWxzZQor
WzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0byB0cnVl
CitbMV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFuZ2VkIHRvIHRy
dWUKK1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSBjaGFuZ2VkIHRv
IGZhbHNlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnkt
bGlzdC0wMy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAz
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjJkNDA4ZAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMy5o
dG1sCkBAIC0wLDAgKzEsNzAgQEAKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+VGVzdCBDU1NPTSBW
aWV3IG1vZHVsZTogTWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlPC90aXRsZT4KKzxzdHlsZSB0eXBl
PSJ0ZXh0L2NzcyI+CisKKzwvc3R5bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIg
Y2hhcnNldD0idXRmLTgiPgorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworICAgIGZ1bmN0aW9u
IGxvZyhtKSB7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHRzJykuaW5u
ZXJIVE1MICs9IG0gKyAnPGJyPic7CisgICAgfQorCisgICAgZnVuY3Rpb24gY2FsbGJhY2sxKHF1
ZXJ5KSB7CisgICAgICAgIGxvZygiWzFdIC0gcXVlcnkgIiArIHF1ZXJ5Lm1lZGlhICsgIiBjaGFu
Z2VkIHRvICIgKyAocXVlcnkubWF0Y2hlcyA/ICJ0cnVlIiA6ICJmYWxzZSIpKTsKKyAgICB9CisK
KyAgICBmdW5jdGlvbiBjYWxsYmFjazIocXVlcnkpIHsKKyAgICAgICAgbG9nKCJbMl0gLSBxdWVy
eSAiICsgcXVlcnkubWVkaWEgKyAiIGNoYW5nZWQgdG8gIiArIChxdWVyeS5tYXRjaGVzID8gInRy
dWUiIDogImZhbHNlIikpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3RzKCkKKyAgICB7
CisgICAgICAgIGlmICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAg
cmV0dXJuOworCisgICAgICAgIHdpbmRvd2VkUXVlcnkgPSB3aW5kb3cubWF0Y2hNZWRpYSgiKC13
ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkiKTsKKyAgICAgICAgbWluaW1pemVkUXVlcnkgPSB3
aW5kb3cubWF0Y2hNZWRpYSgiKC13ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQpIik7CisKKyAg
ICAgICAgbG9nKCJhZGRpbmcgd2luZG93ZWRbMV0sIG1pbmltaXplZFsxXSwgd2luZG93ZWRbMl0g
YW5kIG1pbmltaXplZFsyXTxicj4iKTsKKyAgICAgICAgd2luZG93ZWRRdWVyeS5hZGRMaXN0ZW5l
cihjYWxsYmFjazEpOworICAgICAgICBtaW5pbWl6ZWRRdWVyeS5hZGRMaXN0ZW5lcihjYWxsYmFj
azEpOworICAgICAgICB3aW5kb3dlZFF1ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNrMik7CisgICAg
ICAgIG1pbmltaXplZFF1ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNrMik7CisKKyAgICAgICAgbG9n
KCItLS0tLS0tLS0tLS0tIG1pbmltaXplZCAtLS0tLS0tLS0tLS0tIik7CisgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCJtaW5pbWl6ZWQiKTsKKyAg
ICAgICAgbG9nKCItLS0tLS0tLS0tLS0tIHdpbmRvd2VkIC0tLS0tLS0tLS0tLS0iKTsKKyAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoIndpbmRvd2Vk
Iik7CisKKyAgICAgICAgbG9nKCI8YnI+PGJyPnJlbW92aW5nIHdpbmRvd2VkWzFdIGFuZCBtaW5p
bWl6ZWRbMl08YnI+Iik7CisgICAgICAgIHdpbmRvd2VkUXVlcnkucmVtb3ZlTGlzdGVuZXIoY2Fs
bGJhY2sxKTsKKyAgICAgICAgbWluaW1pemVkUXVlcnkucmVtb3ZlTGlzdGVuZXIoY2FsbGJhY2sy
KTsKKworICAgICAgICBsb2coIi0tLS0tLS0tLS0tLS0gbWluaW1pemVkIC0tLS0tLS0tLS0tLS0i
KTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUo
Im1pbmltaXplZCIpOworICAgICAgICBsb2coIi0tLS0tLS0tLS0tLS0gd2luZG93ZWQgLS0tLS0t
LS0tLS0tLSIpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9kZU1lZGlh
RmVhdHVyZSgid2luZG93ZWQiKTsKKworICAgICAgICBsb2coIjxicj48YnI+YWRkaW5nIHdpbmRv
d2VkWzFdIGFuZCBtaW5pbWl6ZWRbMl08YnI+Iik7CisgICAgICAgIHdpbmRvd2VkUXVlcnkuYWRk
TGlzdGVuZXIoY2FsbGJhY2sxKTsKKyAgICAgICAgbWluaW1pemVkUXVlcnkuYWRkTGlzdGVuZXIo
Y2FsbGJhY2syKTsKKworICAgICAgICBsb2coIi0tLS0tLS0tLS0tLS0gbWluaW1pemVkIC0tLS0t
LS0tLS0tLS0iKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Vmlld01vZGVNZWRp
YUZlYXR1cmUoIm1pbmltaXplZCIpOworICAgICAgICBsb2coIi0tLS0tLS0tLS0tLS0gd2luZG93
ZWQgLS0tLS0tLS0tLS0tLSIpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3
TW9kZU1lZGlhRmVhdHVyZSgid2luZG93ZWQiKTsKKworICAgIH0KKworPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3RzKCkiPgorICAgIDxwPlRlc3QgdGhlIE1lZGlhUXVl
cnlMaXN0IGludGVyZmFjZTogPGEgaHJlZj0iaHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3Nzb20t
dmlldy8jdGhlLW1lZGlhcXVlcnlsaXN0LWludGVyZmFjZSIgdGl0bGU9IkNTU09NIFZpZXcgTW9k
dWxlIj5odHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9jc3NvbS12aWV3LyN0aGUtbWVkaWFxdWVyeWxp
c3QtaW50ZXJmYWNlPC9hPi48L3A+CisgICAgPHA+VGVzdGluZyByZW1vdmVMaXN0ZW5lciBpbiBk
aWZmZXJlbnQgTWVkaWFRdWVyeUxpc3Qgb2JqZWN0cyBhbmQgdGhlIGNhbGxiYWNrIGNhbGwgc2Vx
dWVuY2U8L3A+CisgICAgPGRpdiBpZD0icmVzdWx0cyI+CisgICAgPC9kaXY+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4
cGVjdGF0aW9ucy50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVj
dGF0aW9ucy50eHQKaW5kZXggNmU1OWI1Mi4uMDQyN2MyZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dApAQCAtMjQ5Miw4ICsy
NDkyLDEwIEBAIEJVRzM4NTc4IDogcGx1Z2lucy9vdmVycmlkZS1ub2RlLW1ldGhvZC5odG1sID0g
VEVYVAogQlVHMzg2NTMgTUFDIDogZWRpdGluZy9zZWxlY3Rpb24vZmluZC15ZW5zaWduLWFuZC1i
YWNrc2xhc2guaHRtbCA9IFRFWFQKIEJVRzM4NjU2IDogZmFzdC9tZWRpYS9wcmludC1yZXN0b3Jl
cy1wcmV2aW91cy1tZWRpYXR5cGUuaHRtbCA9IFRFWFQKIAotLy8gTmVlZHMgbGF5b3V0VGVzdENv
bnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoKSAoaW1wbGVtZW50ZWQgb24gUXQgb25s
eSkKKy8vIE5lZWRzIGxheW91dFRlc3RDb250cm9sbGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0dXJl
KCkKIEJVRzQwNjgwIFNLSVAgOiBmYXN0L21lZGlhL3ZpZXctbW9kZS1tZWRpYS1mZWF0dXJlLmh0
bWwgPSBGQUlMCitCVUc0MDY4MCBTS0lQIDogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAy
Lmh0bWwgPSBGQUlMCitCVUc0MDY4MCBTS0lQIDogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0
LTAzLmh0bWwgPSBGQUlMCiAKIC8vIFVua25vd24gZmxha2luZXNzLgogQlVHMzg3MDYgOiBzdmcv
Y3VzdG9tL2RlZXAtZHluYW1pYy11cGRhdGVzLnN2ZyA9IElNQUdFK1RFWFQgSU1BR0UgUEFTUwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAppbmRleCA4ZGE1NzE5Li5mYTU5MWNkIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvU2tpcHBlZApAQCAtMTQwLDggKzE0MCwxMCBAQCBodHRwL3Rlc3RzL3BsdWdpbnMv
cGx1Z2luLWRvY3VtZW50LWhhcy1mb2N1cy5odG1sCiAjIE1pc3NlcyBzZXRNZWRpYVR5cGUoKSBh
bmQgaW1wbGVtZW50YXRpb24KIGZhc3QvbWVkaWEvcHJpbnQtcmVzdG9yZXMtcHJldmlvdXMtbWVk
aWF0eXBlLmh0bWwKIAotIyB2aWV3IG1vZGUgbWVkaWEgZmVhdHVyZQorIyBOZWVkcyBsYXlvdXRU
ZXN0Q29udHJvbGxlci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSgpCiBmYXN0L21lZGlhL3ZpZXct
bW9kZS1tZWRpYS1mZWF0dXJlLmh0bWwKK2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMi5o
dG1sCitmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMuaHRtbAogCiAjIFRlc3QgaXMgZmxh
a3kgYW5kIHRodXMgbm90IHVzZWZ1bCB1bnRpbCBmaXhlZC4KICMgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTM2NjQyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS93aW4vU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCmluZGV4
IGI0M2U1MmMuLjJlZThhYjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9T
a2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCkBAIC04NDgsOCAr
ODQ4LDEwIEBAIGZhc3QvZG9tL0hUTUxNZXRlckVsZW1lbnQvbWV0ZXItcGVyY2VudC1zaXplLmh0
bWwKIGZhc3QvZG9tL0hUTUxNZXRlckVsZW1lbnQvbWV0ZXItc3R5bGVzLmh0bWwKIGZhc3QvZG9t
L0hUTUxNZXRlckVsZW1lbnQvbWV0ZXItc3R5bGVzLWNoYW5naW5nLXBzZXVkby5odG1sCiAKLSMg
dmlldyBtb2RlIG1lZGlhIGZlYXR1cmUKKyMgTmVlZHMgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0
Vmlld01vZGVNZWRpYUZlYXR1cmUoKQogZmFzdC9tZWRpYS92aWV3LW1vZGUtbWVkaWEtZmVhdHVy
ZS5odG1sCitmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDIuaHRtbAorZmFzdC9tZWRpYS9t
ZWRpYS1xdWVyeS1saXN0LTAzLmh0bWwKIAogIyBOZWVkIGV4cGVjdGF0aW9ucy4gU2VlIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNjQ2MQogZmFzdC9yZXBhaW50L292
ZXJmbG93LXNjcm9sbC1ib2R5LWFwcGVhci5odG1sCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGZlYjNhYjEuLjE2MDg1NGMgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTA1IEBACisyMDEwLTA5LTEwICBMdWl6IEFnb3N0aW5pICA8bHVpei5hZ29zdGluaUBvcGVuYm9z
c2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEltcGxlbWVudCBDU1NPTSBWaWV3IG1hdGNoTWVkaWEgaW50ZXJmYWNlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzIwNQorCisgICAgICAgIE5ldyBp
bnRlcmZhY2VzIG1heSBiZSB1c2VkIHRvIGV2YWx1YXRlIG1lZGlhIHF1ZXJpZXMgYW5kIHRvIGFz
c29jaWF0ZSBsaXN0ZW5lcnMKKyAgICAgICAgdG8gbWVkaWEgcXVlcmllcy4gVGhvc2UgbGlzdGVu
ZXJzIGFyZSBjYWxsZWQgd2hlbmV2ZXIgdGhlIGFzc29jaWF0ZWQgcXVlcnkgY2hhbmdlcy4KKyAg
ICAgICAgU3BlY2lmaWNhdGlvbiBtYXkgYmUgZm91bmQgYXQgaHR0cDovL2Rldi53My5vcmcvY3Nz
d2cvY3Nzb20tdmlldy8jdGhlLW1lZGlhcXVlcnlsaXN0LWludGVyZmFjZQorCisgICAgICAgIFY4
IGFuZCBKUyBjb2RlIGdlbmVyYXRvcnMgY2hhbmdlZCB0byBhY2NlcHQgdm9pZCBjYWxsYmFja3Mu
CisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbToKKworICAgICAgICBOZXcg
aW50ZXJmYWNlcyBNZWRpYVF1ZXJ5TGlzdCBhbmQgTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci4KKyAg
ICAgICAgU2VlIGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzc29tLXZpZXcvI3RoZS1tZWRpYXF1
ZXJ5bGlzdC1pbnRlcmZhY2UKKworICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
LmlkbDogQWRkZWQuCisgICAgICAgICogY3NzL01lZGlhUXVlcnlMaXN0LmlkbDogQWRkZWQuCisK
KyAgICAgICAgTWVkaWFRdWVyeUxpc3RMaXN0ZW5lciBpcyBhIGNhbGxiYWNrLiBDdXN0b20gbWV0
aG9kcyBhcmUgbmVlZGVkIHRvIGltcGxlbWVudAorICAgICAgICBjYWxsYmFjayBjb21wYXJpc29u
LgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ3VzdG9t
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpKU01lZGlhUXVlcnlMaXN0TGlzdGVuZXI6
OnR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6SlNNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjppc0Vx
dWFsVG8pOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXJDdXN0b20uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlY4TWVkaWFRdWVyeUxp
c3RMaXN0ZW5lcjo6dHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpWOE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXI6OmlzRXF1YWxUbyk6CisKKyAgICAgICAgQ2xhc3NlcyBNZWRpYVF1ZXJ5TGlzdCBhbmQg
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci4KKworICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5TGlzdC5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeUxpc3Q6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdDo6TWVkaWFRdWVyeUxpc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFRdWVyeUxpc3Q6On5NZWRpYVF1ZXJ5TGlzdCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdDo6bWVkaWEpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFR
dWVyeUxpc3Q6OmFkZExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlMaXN0
OjpyZW1vdmVMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdDo6ZXZh
bHVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeUxpc3Q6OnNldE1hdGNoZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeUxpc3Q6OmNoYW5nZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFRdWVyeUxpc3Q6Om1hdGNoZXMpOgorICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5
TGlzdC5oOiBBZGRlZC4KKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6On5NZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyKToKKworICAgICAgICBUbyBhdm9pZCBhZGRpbmcgY29kZSB0byBjbGFz
c2VzIERPTVdpbmRvdyBhbmQgRG9jdW1lbnQgYSBuZXcgY2xhc3MgTWVkaWFRdWVyeU1hdGNoZXIg
d2FzCisgICAgICAgIGNyZWF0ZWQuCisKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeU1hdGNoZXIu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlNYXRjaGVyOjpMaXN0ZW5l
cjo6TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeU1hdGNoZXI6Okxpc3Rl
bmVyOjp+TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeU1hdGNoZXI6Okxp
c3RlbmVyOjpldmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5TWF0Y2hlcjo6
TWVkaWFRdWVyeU1hdGNoZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeU1hdGNoZXI6
On5NZWRpYVF1ZXJ5TWF0Y2hlcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5TWF0Y2hl
cjo6dGVybWluYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlNYXRjaGVyOjptZWRp
YVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeU1hdGNoZXI6OnByZXBhcmVFdmFs
dWF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeU1hdGNoZXI6OmV2YWx1YXRlKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlNYXRjaGVyOjptYXRjaE1lZGlhKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlNYXRjaGVyOjphZGRMaXN0ZW5lcik6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVF1ZXJ5TWF0Y2hlcjo6cmVtb3ZlTGlzdGVuZXIpOgorICAgICAgICAqIGNz
cy9NZWRpYVF1ZXJ5TWF0Y2hlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVl
cnlNYXRjaGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeU1hdGNoZXI6
OmV2YWxSb3VuZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5TWF0Y2hlcjo6TGlzdGVu
ZXI6Omxpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlNYXRjaGVyOjpMaXN0
ZW5lcjo6cXVlcnkpOgorCisgICAgICAgIERvY3VtZW50IGFuZCBET01XaW5kb3cgaGF2ZSBjaGFu
Z2VkIHRvIHN1cHBvcnQgbmV3IGZlYXR1cmVzLiBET01XaW5kb3cgaXMgdGhlIGNsYXNzIHRoYXQK
KyAgICAgICAgcHVibGlzaGVzIG1ldGhvZHMgbWF0Y2hNZWRpYSBidXQgZm9yIHBhZ2UgY2FjaGUg
dG8gd29yayBwcm9wZXJseSAgdGhlIHJlZmVyZW5jZSB0byB0aGUgCisgICAgICAgIE1lZGlhUXVl
cnlNYXRjaGVyIGlzIGtlcHQgYnkgRG9jdW1lbnQgaW5zdGFuY2UuCisKKyAgICAgICAgKiBkb20v
RG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6On5Eb2N1bWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6bWF0Y2hNZWRpYSk6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6c3R5bGVTZWxlY3RvckNoYW5nZWQpOgorICAgICAgICAqIGRvbS9Eb2N1bWVu
dC5oOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRP
TVdpbmRvdzo6bWF0Y2hNZWRpYSk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmNsZWFy
KToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5oOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2lu
ZG93OjpkZWZhdWx0U3RhdHVzKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5pZGw6CisKKyAg
ICAgICAgQnVpbGQgaXNzdWVzCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAg
ICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAg
KiBXZWJDb3JlLnByaToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvZ29iamVjdC9H
TlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoK
KworICAgICAgICBUZXN0czogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAxLmh0bWwKKyAg
ICAgICAgICAgICAgIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMi5odG1sCisgICAgICAg
ICAgICAgICBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMuaHRtbAorCiAyMDEwLTA5LTEw
ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
RGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggYzM3ZWZiMy4uNGI1MTc1NyAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMubWFrZQpAQCAtMjU5LDYgKzI1OSw4IEBAIERPTV9DTEFTU0VTID0gXAogICAgIExvY2F0
aW9uIFwKICAgICBNZWRpYUVycm9yIFwKICAgICBNZWRpYUxpc3QgXAorICAgIE1lZGlhUXVlcnlM
aXN0IFwKKyAgICBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIFwKICAgICBNZW1vcnlJbmZvIFwKICAg
ICBNZXNzYWdlQ2hhbm5lbCBcCiAgICAgTWVzc2FnZUV2ZW50IFwKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvR05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDFmZWIyZGEu
LjU5NDc4NTUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbQpAQCAtNDE3LDYgKzQxNywxMCBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJj
ZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYUVycm9yLmggXAogCURlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYUxpc3QuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTTWVkaWFMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVF1ZXJ5
TGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVF1ZXJ5TGlzdC5oIFwK
KwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggXAogCURl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZW1vcnlJbmZvLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU01lbW9yeUluZm8uaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lc3Nh
Z2VDaGFubmVsLmNwcCBcCkBAIC03MjksNiArNzMzLDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwK
IAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTTG9jYXRpb25DdXN0b20uaCBcCiAJV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU01haW5UaHJlYWRFeGVjU3RhdGUuY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pz
L0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVkaWFR
dWVyeUxpc3RMaXN0ZW5lckN1c3RvbS5jcHAgXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNz
YWdlQ2hhbm5lbEN1c3RvbS5jcHAgXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlRXZl
bnRDdXN0b20uY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20u
Y3BwIFwKQEAgLTk1MCwxMSArOTU1LDE2IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29y
ZS9jc3MvTWVkaWFMaXN0LmNwcCBcCiAJV2ViQ29yZS9jc3MvTWVkaWFMaXN0LmggXAogCVdlYkNv
cmUvY3NzL01lZGlhUXVlcnkuY3BwIFwKKwlXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5LmggXAogCVdl
YkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwIFwKIAlXZWJDb3JlL2Nzcy9NZWRpYVF1
ZXJ5RXZhbHVhdG9yLmggXAogCVdlYkNvcmUvY3NzL01lZGlhUXVlcnlFeHAuY3BwIFwKIAlXZWJD
b3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwLmggXAotCVdlYkNvcmUvY3NzL01lZGlhUXVlcnkuaCBcCisJ
V2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3QuY3BwIFwKKwlXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5
TGlzdC5oIFwKKwlXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggXAorCVdlYkNv
cmUvY3NzL01lZGlhUXVlcnlNYXRjaGVyLmNwcCBcCisJV2ViQ29yZS9jc3MvTWVkaWFRdWVyeU1h
dGNoZXIuaCBcCiAJV2ViQ29yZS9jc3MvUGFpci5oIFwKIAlXZWJDb3JlL2Nzcy9SZWN0LmggXAog
CVdlYkNvcmUvY3NzL1JHQkNvbG9yLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDdjM2E4ZGEuLjY2ODEwNDkgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBA
IC0xOSw2ICsxOSw4IEBACiAgICAgICAgICAgICAnY3NzL0NTU1ZhcmlhYmxlc1J1bGUuaWRsJywK
ICAgICAgICAgICAgICdjc3MvQ291bnRlci5pZGwnLAogICAgICAgICAgICAgJ2Nzcy9NZWRpYUxp
c3QuaWRsJywKKyAgICAgICAgICAgICdjc3MvTWVkaWFRdWVyeUxpc3QuaWRsJywKKyAgICAgICAg
ICAgICdjc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5pZGwnLAogICAgICAgICAgICAgJ2Nzcy9S
ZWN0LmlkbCcsCiAgICAgICAgICAgICAnY3NzL1JHQkNvbG9yLmlkbCcsCiAgICAgICAgICAgICAn
Y3NzL1N0eWxlTWVkaWEuaWRsJywKQEAgLTc5NSw2ICs3OTcsNyBAQAogICAgICAgICAgICAgJ2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOEluc3BlY3RvckZyb250ZW5kSG9zdEN1c3RvbS5jcHAnLAogICAg
ICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEphdmFTY3JpcHRDYWxsRnJhbWVDdXN0b20u
Y3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhMb2NhdGlvbkN1c3RvbS5j
cHAnLAorICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXJDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhNZXNz
YWdlQ2hhbm5lbENvbnN0cnVjdG9yLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4TWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4TWVzc2FnZVBvcnRDdXN0b20uY3BwJywKQEAgLTEwNTMsMTEgKzEwNTYsMTYgQEAK
ICAgICAgICAgICAgICdjc3MvTWVkaWFMaXN0LmNwcCcsCiAgICAgICAgICAgICAnY3NzL01lZGlh
TGlzdC5oJywKICAgICAgICAgICAgICdjc3MvTWVkaWFRdWVyeS5jcHAnLAorICAgICAgICAgICAg
J2Nzcy9NZWRpYVF1ZXJ5LmgnLAogICAgICAgICAgICAgJ2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9y
LmNwcCcsCiAgICAgICAgICAgICAnY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuaCcsCiAgICAgICAg
ICAgICAnY3NzL01lZGlhUXVlcnlFeHAuY3BwJywKICAgICAgICAgICAgICdjc3MvTWVkaWFRdWVy
eUV4cC5oJywKLSAgICAgICAgICAgICdjc3MvTWVkaWFRdWVyeS5oJywKKyAgICAgICAgICAgICdj
c3MvTWVkaWFRdWVyeUxpc3QuY3BwJywKKyAgICAgICAgICAgICdjc3MvTWVkaWFRdWVyeUxpc3Qu
aCcsCisgICAgICAgICAgICAnY3NzL01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCcsCisgICAgICAg
ICAgICAnY3NzL01lZGlhUXVlcnlNYXRjaGVyLmNwcCcsCisgICAgICAgICAgICAnY3NzL01lZGlh
UXVlcnlNYXRjaGVyLmgnLAogICAgICAgICAgICAgJ2Nzcy9QYWlyLmgnLAogICAgICAgICAgICAg
J2Nzcy9SZWN0LmgnLAogICAgICAgICAgICAgJ2Nzcy9SR0JDb2xvci5jcHAnLApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9XZWJDb3JlLnByaSBiL1dlYkNvcmUvV2ViQ29yZS5wcmkKaW5kZXggNDhiZDll
ZS4uZWE3MDZjYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnByaQorKysgYi9XZWJDb3Jl
L1dlYkNvcmUucHJpCkBAIC04MSw2ICs4MSw4IEBAIElETF9CSU5ESU5HUyArPSBcCiAgICAgY3Nz
L0NTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uLmlkbCBcCiAgICAgY3NzL0NTU1ZhcmlhYmxlc1J1bGUu
aWRsIFwKICAgICBjc3MvTWVkaWFMaXN0LmlkbCBcCisgICAgY3NzL01lZGlhUXVlcnlMaXN0Lmlk
bCBcCisgICAgY3NzL01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaWRsIFwKICAgICBjc3MvUmVjdC5p
ZGwgXAogICAgIGNzcy9SR0JDb2xvci5pZGwgXAogICAgIGNzcy9TdHlsZU1lZGlhLmlkbCBcCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRl
eCA0YjZjYjg3Li5jYTU1NjFkIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBi
L1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTM0OSw2ICszNDksNyBAQCBTT1VSQ0VTICs9IFwKICAg
ICBiaW5kaW5ncy9qcy9KU0luamVjdGVkU2NyaXB0SG9zdEN1c3RvbS5jcHAgXAogICAgIGJpbmRp
bmdzL2pzL0pTSW5zcGVjdG9yRnJvbnRlbmRIb3N0Q3VzdG9tLmNwcCBcCiAgICAgYmluZGluZ3Mv
anMvSlNMb2NhdGlvbkN1c3RvbS5jcHAgXAorICAgIGJpbmRpbmdzL2pzL0pTTWVkaWFRdWVyeUxp
c3RMaXN0ZW5lckN1c3RvbS5jcHAgXAogICAgIGJpbmRpbmdzL2pzL0pTTmFtZWROb2RlTWFwQ3Vz
dG9tLmNwcCBcCiAgICAgYmluZGluZ3MvanMvSlNOYXZpZ2F0b3JDdXN0b20uY3BwICBcCiAgICAg
YmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcCBcCkBAIC00NTksNiArNDYwLDggQEAgU09VUkNF
UyArPSBcCiAgICAgY3NzL01lZGlhUXVlcnkuY3BwIFwKICAgICBjc3MvTWVkaWFRdWVyeUV2YWx1
YXRvci5jcHAgXAogICAgIGNzcy9NZWRpYVF1ZXJ5RXhwLmNwcCBcCisgICAgY3NzL01lZGlhUXVl
cnlMaXN0LmNwcCBcCisgICAgY3NzL01lZGlhUXVlcnlNYXRjaGVyLmNwcCBcCiAgICAgY3NzL1JH
QkNvbG9yLmNwcCBcCiAgICAgY3NzL1NoYWRvd1ZhbHVlLmNwcCBcCiAgICAgY3NzL1N0eWxlQmFz
ZS5jcHAgXApAQCAtMTI0Niw2ICsxMjQ5LDkgQEAgSEVBREVSUyArPSBcCiAgICAgY3NzL01lZGlh
TGlzdC5oIFwKICAgICBjc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5oIFwKICAgICBjc3MvTWVkaWFR
dWVyeUV4cC5oIFwKKyAgICBjc3MvTWVkaWFRdWVyeUxpc3QuaCBcCisgICAgY3NzL01lZGlhUXVl
cnlMaXN0TGlzdGVuZXIuaCBcCisgICAgY3NzL01lZGlhUXVlcnlNYXRjaGVyLmggXAogICAgIGNz
cy9NZWRpYVF1ZXJ5LmggXAogICAgIGNzcy9SR0JDb2xvci5oIFwKICAgICBjc3MvU2hhZG93VmFs
dWUuaCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
IGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA5Y2U3NGQzLi5k
ZGU2YzYwIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTk4MzcsNiAr
OTgzNywxMTggQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZl
UGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNl
c1xKU01lZGlhUXVlcnlMaXN0LmNwcCINCisJCQkJPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24N
CisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
DQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQor
CQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24NCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmln
dXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfSW50ZXJuYWx8V2luMzIiDQorCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm98V2luMzIiDQorCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb3xX
aW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRv
b2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1
Z19BbGx8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJ
CQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0
aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291
cmNlc1xKU01lZGlhUXVlcnlMaXN0LmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUN
CisJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUp
XERlcml2ZWRTb3VyY2VzXEpTTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAiDQorCQkJCT4NCisJ
CQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCisJCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4N
CisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0KKwkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnX0ludGVybmFs
fFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8
VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRl
YnVnX0NhaXJvfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+
DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0K
KwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJ
CU5hbWU9IlJlbGVhc2VfQ2Fpcm98V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIN
CisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJh
dGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxl
clRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCTwvRmlsZT4N
CisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQ
cm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgiDQor
CQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktp
dE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTTWVtb3J5SW5m
by5jcHAiDQogCQkJCT4NCiAJCQkJPEZpbGVDb25maWd1cmF0aW9uDQpAQCAtMjk1OTMsNiArMjk3
MDUsMjYgQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0
aD0iLi5cY3NzXE1lZGlhUXVlcnlMaXN0LmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8
RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xNZWRpYVF1ZXJ5TGlzdC5oIg0KKwkJCQk+
DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cY3NzXE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXIuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xNZWRpYVF1ZXJ5TWF0Y2hlci5jcHAiDQorCQkJCT4NCisJ
CQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxjc3NcTWVkaWFRdWVy
eU1hdGNoZXIuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGNzc1xQYWlyLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyNGUwZjY0Li5jYzVjMjhhIDEwMDY0
NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTE5MCw2ICs1MTkw
LDE2IEBACiAJCUQyM0NBNTZDMEFCMEVCOEQwMDUxMDhBNSAvKiBSYW5nZUV4Y2VwdGlvbi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDIzQ0E1NkIwQUIw
RUI4RDAwNTEwOEE1IC8qIFJhbmdlRXhjZXB0aW9uLmggKi87IH07CiAJCUQzOUQwMDZEMTFGOEUz
MDgwMDYwNDFGMiAvKiBQb3B1cE1lbnVNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEQzOUQwMDZDMTFGOEUzMDgwMDYwNDFGMiAvKiBQb3B1cE1lbnVN
YWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlE
MzlEMDA5RDExRjkwN0U2MDA2MDQxRjIgLyogU2VhcmNoUG9wdXBNZW51TWFjLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMzlEMDA5QzExRjkwN0U2MDA2
MDQxRjIgLyogU2VhcmNoUG9wdXBNZW51TWFjLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRDNBOTRBMzgxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlh
UXVlcnlMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEQzQTk0QTMxMTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdC5jcHAgKi87IH07
CisJCUQzQTk0QTM5MTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNBOTRBMzIxMjJEQUJBQzAw
QTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0LmggKi87IH07CisJCUQzQTk0QTNCMTIyREFCQUMwMEEz
N0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0E5NEEzNDEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFR
dWVyeUxpc3RMaXN0ZW5lci5oICovOyB9OworCQlEM0E5NEE0NjEyMkRDNDBGMDBBMzdCQkMgLyog
SlNNZWRpYVF1ZXJ5TGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBEM0E5NEE0MjEyMkRDNDBGMDBBMzdCQkMgLyogSlNNZWRpYVF1ZXJ5TGlzdC5j
cHAgKi87IH07CisJCUQzQTk0QTQ3MTIyREM0MEYwMEEzN0JCQyAvKiBKU01lZGlhUXVlcnlMaXN0
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0E5NEE0
MzEyMkRDNDBGMDBBMzdCQkMgLyogSlNNZWRpYVF1ZXJ5TGlzdC5oICovOyB9OworCQlEM0E5NEE0
ODEyMkRDNDBGMDBBMzdCQkMgLyogSlNNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQTk0QTQ0MTIyREM0MEYw
MEEzN0JCQyAvKiBKU01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwICovOyB9OworCQlEM0E5NEE0
OTEyMkRDNDBGMDBBMzdCQkMgLyogSlNNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0E5NEE0NTEyMkRDNDBGMDBB
MzdCQkMgLyogSlNNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggKi87IH07CisJCUQzQUExMEYzMTIz
QTk4QUEwMDkyMTUyQiAvKiBNZWRpYVF1ZXJ5TWF0Y2hlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0FBMTBGMTEyM0E5OEFBMDA5MjE1MkIgLyog
TWVkaWFRdWVyeU1hdGNoZXIuY3BwICovOyB9OworCQlEM0FBMTBGNDEyM0E5OEFBMDA5MjE1MkIg
LyogTWVkaWFRdWVyeU1hdGNoZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEQzQUExMEYyMTIzQTk4QUEwMDkyMTUyQiAvKiBNZWRpYVF1ZXJ5TWF0Y2hl
ci5oICovOyB9OworCQlEM0ZERUQ5QzEyMkVGQzZBMDA4RjUyNkYgLyogSlNNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEQzRkRFRDlCMTIyRUZDNkEwMDhGNTI2RiAvKiBKU01lZGlhUXVlcnlMaXN0TGlz
dGVuZXJDdXN0b20uY3BwICovOyB9OwogCQlEOEI2MTUyRjEwMzI0OTUxMDBDODU1NEEgLyogQ29v
a2llLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEOEI2
MTUyRTEwMzI0OTUxMDBDODU1NEEgLyogQ29va2llLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJREIyM0MyQ0IwQTUwOEQyOTAwMjQ4OUVCIC8qIElu
ZGVudE91dGRlbnRDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IERCMjNDMkM5MEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29t
bWFuZC5jcHAgKi87IH07CiAJCURCMjNDMkNDMEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRk
ZW50Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gREIyM0MyQ0EwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmggKi87
IH07CkBAIC0xMTA0Niw2ICsxMTA1NiwxOCBAQAogCQlEMjNDQTU2QjBBQjBFQjhEMDA1MTA4QTUg
LyogUmFuZ2VFeGNlcHRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJh
bmdlRXhjZXB0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQzOUQwMDZDMTFG
OEUzMDgwMDYwNDFGMiAvKiBQb3B1cE1lbnVNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUG9wdXBNZW51TWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQz
OUQwMDlDMTFGOTA3RTYwMDYwNDFGMiAvKiBTZWFyY2hQb3B1cE1lbnVNYWMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VhcmNoUG9wdXBNZW51TWFjLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUQzQTk0QTMxMTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5
TGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVF1ZXJ5
TGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQzQTk0QTMyMTIyREFCQUMw
MEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBNZWRpYVF1ZXJ5TGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEM0E5
NEEzMzEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeUxpc3QuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IE1lZGlhUXVlcnlMaXN0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRDNBOTRBMzQxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEM0E5NEEzNTEyMkRBQkFDMDBBMzdCQkMg
LyogTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTWVk
aWFRdWVyeUxpc3RMaXN0ZW5lci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQz
QTk0QTQyMTIyREM0MEYwMEEzN0JCQyAvKiBKU01lZGlhUXVlcnlMaXN0LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVkaWFRdWVyeUxpc3QuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlEM0E5NEE0MzEyMkRDNDBGMDBBMzdCQkMgLyogSlNNZWRp
YVF1ZXJ5TGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU01lZGlhUXVl
cnlMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQzQTk0QTQ0MTIyREM0MEYw
MEEzN0JCQyAvKiBKU01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDNBOTRBNDUxMjJEQzQwRjAwQTM3QkJDIC8qIEpTTWVk
aWFRdWVyeUxpc3RMaXN0ZW5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RDNBQTEwRjExMjNBOThBQTAwOTIxNTJCIC8qIE1lZGlhUXVlcnlNYXRjaGVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhUXVlcnlNYXRjaGVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDNBQTEwRjIxMjNBOThBQTAwOTIxNTJCIC8qIE1l
ZGlhUXVlcnlNYXRjaGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlh
UXVlcnlNYXRjaGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQzRkRFRDlCMTIy
RUZDNkEwMDhGNTI2RiAvKiBKU01lZGlhUXVlcnlMaXN0TGlzdGVuZXJDdXN0b20uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDhCNjE1MkUxMDMyNDk1
MTAwQzg1NTRBIC8qIENvb2tpZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBD
b29raWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREIyM0MyQzkwQTUwOEQyOTAw
MjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBJbmRlbnRPdXRkZW50Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCURCMjNDMkNBMEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50
Q29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5kZW50T3V0ZGVu
dENvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1MTI0LDYgKzE1MTQ2
LDEwIEBACiAJCQkJQkM2ODZDN0EwRTBDMzMwMTAwREU4QTA4IC8qIEpTQ1NTVmFyaWFibGVzUnVs
ZS5jcHAgKi8sCiAJCQkJQkM2ODZDN0IwRTBDMzMwMTAwREU4QTA4IC8qIEpTQ1NTVmFyaWFibGVz
UnVsZS5oICovLAogCQkJCUJDM0MzOUI0MEMwRDNEOEQwMDVGNEQ3QSAvKiBKU01lZGlhTGlzdC5j
cHAgKi8sCisJCQkJRDNBOTRBNDIxMjJEQzQwRjAwQTM3QkJDIC8qIEpTTWVkaWFRdWVyeUxpc3Qu
Y3BwICovLAorCQkJCUQzQTk0QTQzMTIyREM0MEYwMEEzN0JCQyAvKiBKU01lZGlhUXVlcnlMaXN0
LmggKi8sCisJCQkJRDNBOTRBNDQxMjJEQzQwRjAwQTM3QkJDIC8qIEpTTWVkaWFRdWVyeUxpc3RM
aXN0ZW5lci5jcHAgKi8sCisJCQkJRDNBOTRBNDUxMjJEQzQwRjAwQTM3QkJDIC8qIEpTTWVkaWFR
dWVyeUxpc3RMaXN0ZW5lci5oICovLAogCQkJCUJDM0MzOUI1MEMwRDNEOEQwMDVGNEQ3QSAvKiBK
U01lZGlhTGlzdC5oICovLAogCQkJCUJDRkUyRjBGMEMxQjU4MzcwMDIwMjM1RiAvKiBKU1JlY3Qu
Y3BwICovLAogCQkJCUJDRkUyRjEwMEMxQjU4MzcwMDIwMjM1RiAvKiBKU1JlY3QuaCAqLywKQEAg
LTE2NDExLDYgKzE2NDM3LDcgQEAKIAkJCQk0OUVFQ0Y3MTEwNTA4RDlDMDAwOTlGQUIgLyogSlNJ
bnQ4QXJyYXlDdXN0b20uY3BwICovLAogCQkJCTFDNUZBRUU2MERDRkRBNjgwMEQ1OEY3OCAvKiBK
U0phdmFTY3JpcHRDYWxsRnJhbWVDdXN0b20uY3BwICovLAogCQkJCUJDRTFDNDNGMEQ5ODMwRjQw
MDNCMDJGMiAvKiBKU0xvY2F0aW9uQ3VzdG9tLmNwcCAqLywKKwkJCQlEM0ZERUQ5QjEyMkVGQzZB
MDA4RjUyNkYgLyogSlNNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ3VzdG9tLmNwcCAqLywKIAkJCQlF
MUE1Rjk5QTBFN0VBQTI1MDBBRjg1RUEgLyogSlNNZXNzYWdlQ2hhbm5lbEN1c3RvbS5jcHAgKi8s
CiAJCQkJNDEwQjdFNzExMDQ1RkFCMDAwRDgyMjRGIC8qIEpTTWVzc2FnZUV2ZW50Q3VzdG9tLmNw
cCAqLywKIAkJCQlFMUFERUQ0NjBFNzZCOEREMDA0QTFBNUUgLyogSlNNZXNzYWdlUG9ydEN1c3Rv
bS5jcHAgKi8sCkBAIC0xNzEzMiw2ICsxNzE1OSwxMyBAQAogCQkJCTRFMTk1OTI2MEEzOURBQ0Mw
MDIyMEZFNSAvKiBNZWRpYVF1ZXJ5RXZhbHVhdG9yLmggKi8sCiAJCQkJNEUxOTU5MjcwQTM5REFD
QzAwMjIwRkU1IC8qIE1lZGlhUXVlcnlFeHAuY3BwICovLAogCQkJCTRFMTk1OTI4MEEzOURBQ0Mw
MDIyMEZFNSAvKiBNZWRpYVF1ZXJ5RXhwLmggKi8sCisJCQkJRDNBOTRBMzExMjJEQUJBQzAwQTM3
QkJDIC8qIE1lZGlhUXVlcnlMaXN0LmNwcCAqLywKKwkJCQlEM0E5NEEzMjEyMkRBQkFDMDBBMzdC
QkMgLyogTWVkaWFRdWVyeUxpc3QuaCAqLywKKwkJCQlEM0E5NEEzMzEyMkRBQkFDMDBBMzdCQkMg
LyogTWVkaWFRdWVyeUxpc3QuaWRsICovLAorCQkJCUQzQTk0QTM0MTIyREFCQUMwMEEzN0JCQyAv
KiBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggKi8sCisJCQkJRDNBOTRBMzUxMjJEQUJBQzAwQTM3
QkJDIC8qIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaWRsICovLAorCQkJCUQzQUExMEYxMTIzQTk4
QUEwMDkyMTUyQiAvKiBNZWRpYVF1ZXJ5TWF0Y2hlci5jcHAgKi8sCisJCQkJRDNBQTEwRjIxMjNB
OThBQTAwOTIxNTJCIC8qIE1lZGlhUXVlcnlNYXRjaGVyLmggKi8sCiAJCQkJQTgwRTZDRDEwQTE5
ODlDQTAwN0ZCOEM1IC8qIFBhaXIuaCAqLywKIAkJCQk5M0NBNEM5RjA5REY5M0ZBMDBERjg2Nzcg
LyogcXVpcmtzLmNzcyAqLywKIAkJCQlCQzQzNjhFNzBDMjI2RTMyMDA1RUZCNUYgLyogUmVjdC5o
ICovLApAQCAtMjA1NTcsNiArMjA1OTEsMTEgQEAKIAkJCQk4OTNDNDdCODEyMzhBMDk5MDAyQjNE
ODYgLyogSlNGaWxlQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTg5M0M0N0JDMTIzOEEw
QTkwMDJCM0Q4NiAvKiBKU0ZpbGVXcml0ZXJDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OEEzMDlDOUYxMjM5NTBCRTAwQ0I5MjA0IC8qIE5lc3RpbmdMZXZlbEluY3JlbWVudGVyLmggaW4g
SGVhZGVycyAqLywKKwkJCQlEM0E5NEEzOTEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeUxp
c3QuaCBpbiBIZWFkZXJzICovLAorCQkJCUQzQTk0QTNCMTIyREFCQUMwMEEzN0JCQyAvKiBNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlEM0E5NEE0NzEyMkRDNDBG
MDBBMzdCQkMgLyogSlNNZWRpYVF1ZXJ5TGlzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRDNBOTRB
NDkxMjJEQzQwRjAwQTM3QkJDIC8qIEpTTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oIGluIEhlYWRl
cnMgKi8sCisJCQkJRDNBQTEwRjQxMjNBOThBQTAwOTIxNTJCIC8qIE1lZGlhUXVlcnlNYXRjaGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKIAkJfTsKQEAgLTIzMDMxLDYgKzIzMDcwLDExIEBACiAJCQkJQTYyMkE4RkMx
MjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdTZWN1cml0eUJhc2UuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJODkzQzQ3QjcxMjM4QTA5OTAwMkIzRDg2IC8qIEpTRmlsZUNhbGxiYWNrLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTg5M0M0N0JCMTIzOEEwQTkwMDJCM0Q4NiAvKiBKU0ZpbGVXcml0ZXJD
YWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlEM0E5NEEzODEyMkRBQkFDMDBBMzdCQkMg
LyogTWVkaWFRdWVyeUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRDNBOTRBNDYxMjJEQzQw
RjAwQTM3QkJDIC8qIEpTTWVkaWFRdWVyeUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRDNB
OTRBNDgxMjJEQzQwRjAwQTM3QkJDIC8qIEpTTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlEM0ZERUQ5QzEyMkVGQzZBMDA4RjUyNkYgLyogSlNNZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUQzQUExMEYzMTIzQTk4
QUEwMDkyMTUyQiAvKiBNZWRpYVF1ZXJ5TWF0Y2hlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7
CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUv
YmluZGluZ3MvZ29iamVjdC9HTlVtYWtlZmlsZS5hbQppbmRleCAxMjgzNWNjLi5mM2VmZjFiIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvR05VbWFrZWZpbGUuYW0KKysrIGIv
V2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dOVW1ha2VmaWxlLmFtCkBAIC0xOTIsNiArMTkyLDEw
IEBAIHdlYmtpdGd0a19nZG9tX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL3dl
YmtpdC9XZWJLaXRET01NZWRpYUVycm9yUHJpdmF0ZS5oIFwKIAlEZXJpdmVkU291cmNlcy93ZWJr
aXQvV2ViS2l0RE9NTWVkaWFMaXN0LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktp
dERPTU1lZGlhTGlzdFByaXZhdGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERP
TU1lZGlhUXVlcnlMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTU1l
ZGlhUXVlcnlMaXN0UHJpdmF0ZS5oIFwKKwlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9N
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJL
aXRET01NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJpdmF0ZS5oIFwKIAlEZXJpdmVkU291cmNlcy93
ZWJraXQvV2ViS2l0RE9NTWVtb3J5SW5mby5jcHAgXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9X
ZWJLaXRET01NZW1vcnlJbmZvUHJpdmF0ZS5oIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2Vi
S2l0RE9NTWVzc2FnZVBvcnQuY3BwIFwKQEAgLTI1MCw2ICsyNTQsOCBAQCB3ZWJraXRndGtfYnVp
bHRfaF9hcGkgKz0gXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01DU1NTdHlsZVNo
ZWV0LmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01DU1NWYWx1ZS5oIFwKIAlE
ZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NTWVkaWFMaXN0LmggXAorCURlcml2ZWRTb3Vy
Y2VzL3dlYmtpdC9XZWJLaXRET01NZWRpYVF1ZXJ5TGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy93
ZWJraXQvV2ViS2l0RE9NTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oIFwKIAlEZXJpdmVkU291cmNl
cy93ZWJraXQvV2ViS2l0RE9NU3R5bGVNZWRpYS5oIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQv
V2ViS2l0RE9NU3R5bGVTaGVldC5oIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9N
U3R5bGVTaGVldExpc3QuaCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVk
aWFRdWVyeUxpc3RMaXN0ZW5lckN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVk
aWFRdWVyeUxpc3RMaXN0ZW5lckN1c3RvbS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uNTFkNTBhYQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ3VzdG9tLmNwcApAQCAtMCwwICsxLDU5IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lk
aWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJKU01lZGlh
UXVlcnlMaXN0TGlzdGVuZXIuaCIKKworI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0FQSUNhc3Qu
aD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU1ZhbHVlUmVmLmg+CisKKyNpbmNsdWRlIDxy
dW50aW1lL0pTT2JqZWN0Lmg+CisjaW5jbHVkZSA8cnVudGltZS9KU1ZhbHVlLmg+CisKK3VzaW5n
IG5hbWVzcGFjZSBKU0M7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworaW50IEpTTWVkaWFRdWVy
eUxpc3RMaXN0ZW5lcjo6dHlwZSgpCit7CisgICAgcmV0dXJuIEpTTWVkaWFRdWVyeUxpc3RMaXN0
ZW5lclR5cGU7Cit9CisKK2Jvb2wgSlNNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjppc0VxdWFsVG8o
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciogb3RoZXIpCit7CisgICAgaWYgKCFvdGhlciB8fCB0eXBl
KCkgIT0gb3RoZXItPnR5cGUoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgSlNNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyKiBqc0xpc3RlbmVyID0gc3RhdGljX2Nhc3Q8SlNNZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyKj4ob3RoZXIpOworCisgICAgaWYgKG1fZGF0YS0+Y2FsbGJhY2soKSA9PSBK
U0M6OkpTVmFsdWUoKSkKKyAgICAgICAgcmV0dXJuIGpzTGlzdGVuZXItPm1fZGF0YS0+Y2FsbGJh
Y2soKSA9PSBKU0M6OkpTVmFsdWUoKTsKKworICAgIEV4ZWNTdGF0ZSogZXhlYyA9IG1fZGF0YS0+
Z2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKTsKKyAgICByZXR1cm4gSlNWYWx1ZUlzRXF1YWwo
dG9SZWYoZXhlYyksIHRvUmVmKGV4ZWMsIG1fZGF0YS0+Y2FsbGJhY2soKSksIHRvUmVmKGV4ZWMs
IGpzTGlzdGVuZXItPm1fZGF0YS0+Y2FsbGJhY2soKSksIDApOworfQorCit9CisKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDFhMTE0YTQuLmIyYTYy
NTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0KKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAt
Niw2ICs2LDcgQEAKICMgQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMgQ29weXJpZ2h0IChDKSAyMDA5IENh
bWVyb24gTWNDb3JtYWNrIDxjYW1AbWNjLmlkLmF1PgogIyBDb3B5cmlnaHQgKEMpIFJlc2VhcmNo
IEluIE1vdGlvbiBMaW1pdGVkIDIwMTAuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdo
dCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykK
ICMKICMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgogIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwpAQCAtMjExNyw2ICsyMTE4LDEzIEBAIHN1YiBHZW5lcmF0ZUltcGxl
bWVudGF0aW9uCiAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbiNlbmRpZiAvLyAke2NvbmRpdGlv
bmFsU3RyaW5nfVxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwogfQogCitzdWIgR2V0TmF0aXZl
VHlwZUZvckNhbGxiYWNrcworeworICAgIG15ICR0eXBlID0gc2hpZnQ7CisgICAgcmV0dXJuICJ2
b2lkIiBpZiAoJHR5cGUgZXEgInZvaWQiKTsKKyAgICByZXR1cm4gR2V0TmF0aXZlVHlwZSgkdHlw
ZSk7Cit9CisKIHN1YiBHZW5lcmF0ZUNhbGxiYWNrSGVhZGVyCiB7CiAgICAgbXkgJG9iamVjdCA9
IHNoaWZ0OwpAQCAtMjE1MywxMSArMjE2MSwxNCBAQCBzdWIgR2VuZXJhdGVDYWxsYmFja0hlYWRl
cgogICAgICAgICBmb3JlYWNoIG15ICRmdW5jdGlvbiAoQHskZGF0YU5vZGUtPmZ1bmN0aW9uc30p
IHsKICAgICAgICAgICAgIG15IEBwYXJhbXMgPSBAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc307CiAg
ICAgICAgICAgICBpZiAoISRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiQ3VzdG9tIn0gJiYKLSAgICAgICAgICAgICAgICAhKEdldE5hdGl2ZVR5cGUoJGZ1bmN0aW9u
LT5zaWduYXR1cmUtPnR5cGUpIGVxICJib29sIikpIHsKKyAgICAgICAgICAgICAgICAhKCRmdW5j
dGlvbi0+c2lnbmF0dXJlLT50eXBlIGVxICJib29sZWFuIikgJiYgISgkZnVuY3Rpb24tPnNpZ25h
dHVyZS0+dHlwZSBlcSAidm9pZCIpKSB7CisgICAgICAgICAgICAgICAgIyBwdXQgYSBDT01QSUxF
X0FTU0VSVChmYWxzZSkgaW4gaGVhZGVyIGZpbGUgaWYgdGhlIG1ldGhvZCBpcyBub3QgJ0N1c3Rv
bScKKyAgICAgICAgICAgICAgICAjIGFuZCBpdHMgc2lnbmF0dXJlIHR5cGUgaXMgbm90IGJvb2xl
YW4gb3Igdm9pZC4KKyAgICAgICAgICAgICAgICAjIG5vIHNpZ25hdHVyZSB0eXBlIG90aGVyIHRo
ZW4gYm9vbGVhbiBhbmQgdm9pZCBpcyBhY2NlcHRlZC4KICAgICAgICAgICAgICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAiICAgIENPTVBJTEVfQVNTRVJUKGZhbHNlKSIpOwogICAgICAgICAgICAg
fQogCi0gICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwgIiAuIEdl
dE5hdGl2ZVR5cGUoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUpIC4gIiAiIC4gJGZ1bmN0aW9u
LT5zaWduYXR1cmUtPm5hbWUgLiAiKCIpOworICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIiAgICB2aXJ0dWFsICIgLiBHZXROYXRpdmVUeXBlRm9yQ2FsbGJhY2tzKCRmdW5jdGlvbi0+
c2lnbmF0dXJlLT50eXBlKSAuICIgIiAuICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lIC4gIigi
KTsKIAogICAgICAgICAgICAgbXkgQGFyZ3MgPSAoKTsKICAgICAgICAgICAgIGZvcmVhY2ggbXkg
JHBhcmFtIChAcGFyYW1zKSB7CkBAIC0yMjMyLDEyICsyMjQzLDE2IEBAIHN1YiBHZW5lcmF0ZUNh
bGxiYWNrSW1wbGVtZW50YXRpb24KICAgICAgICAgZm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7JGRh
dGFOb2RlLT5mdW5jdGlvbnN9KSB7CiAgICAgICAgICAgICBteSBAcGFyYW1zID0gQHskZnVuY3Rp
b24tPnBhcmFtZXRlcnN9OwogICAgICAgICAgICAgaWYgKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tIn0gfHwKLSAgICAgICAgICAgICAgICAhKEdldE5h
dGl2ZVR5cGUoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUpIGVxICJib29sIikpIHsKKyAgICAg
ICAgICAgICAgICAoISgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSBlcSAiYm9vbGVhbiIpICYm
ICEoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUgZXEgInZvaWQiKSkpIHsKKyAgICAgICAgICAg
ICAgICAjIGlnbm9yZSB0aGUgbWV0aG9kIGlmIGhhcyAnQ3VzdG9tJyBhdHRyaWJ1dGUgb3IgaWYK
KyAgICAgICAgICAgICAgICAjIGl0cyBzaWduYXR1cmUgdHlwZSBpcyBkaWZmZXJlbnQgb2YgYm9v
bGVhbiBhbmQgdm9pZC4KKyAgICAgICAgICAgICAgICAjIGlmIHRoZSBzaWduYXR1cmUgdHlwZSBk
aWZmZXJlbnQgb2YgYm9vbGVhbiBhbmQgdm9pZCB0aGVuIGEKKyAgICAgICAgICAgICAgICAjIENP
TVBJTEVfQVNTRVJUKGZhbHNlKSBoYXMgYmVlbiBhZGRlZCB0byB0aGUgaGVhZGVyIGZpbGUuCiAg
ICAgICAgICAgICAgICAgbmV4dDsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgQWRkSW5j
bHVkZXNGb3JUeXBlKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlKTsKLSAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiXG4iIC4gR2V0TmF0aXZlVHlwZSgkZnVuY3Rpb24tPnNpZ25hdHVy
ZS0+dHlwZSkgLiAiICR7Y2xhc3NOYW1lfTo6IiAuICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1l
IC4gIigiKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiXG4iIC4gR2V0TmF0aXZl
VHlwZUZvckNhbGxiYWNrcygkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSkgLiAiICR7Y2xhc3NO
YW1lfTo6IiAuICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lIC4gIigiKTsKIAogICAgICAgICAg
ICAgbXkgQGFyZ3MgPSAoKTsKICAgICAgICAgICAgIGZvcmVhY2ggbXkgJHBhcmFtIChAcGFyYW1z
KSB7CkBAIC0yMjQ5LDcgKzIyNjQsMTMgQEAgc3ViIEdlbmVyYXRlQ2FsbGJhY2tJbXBsZW1lbnRh
dGlvbgogCiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKCFjYW5JbnZva2VDYWxsYmFjaygpKVxuIik7
Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuIHRydWU7XG5c
biIpOworCisgICAgICAgICAgICAjIGJvb2xlYW4gYW5kIHZvaWQgYXJlIHRoZSBvbmx5IHBvc3Np
YmxlIHNpZ25hdHVyZSB0eXBlcy4KKyAgICAgICAgICAgIGlmIChHZXROYXRpdmVUeXBlKCRmdW5j
dGlvbi0+c2lnbmF0dXJlLT50eXBlKSBlcSAiYm9vbCIpIHsKKyAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuIHRydWU7XG5cbiIpOworICAgICAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0
dXJuO1xuXG4iKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIFJlZlB0cjwkY2xhc3NOYW1lPiBwcm90ZWN0KHRoaXMpO1xuXG4iKTsKICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEpTTG9jayBsb2NrKFNpbGVuY2VBc3NlcnRpb25z
T25seSk7XG5cbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgRXhlY1N0
YXRlKiBleGVjID0gbV9kYXRhLT5nbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpO1xuIik7CkBA
IC0yMjY2LDcgKzIyODcsMTEgQEAgc3ViIEdlbmVyYXRlQ2FsbGJhY2tJbXBsZW1lbnRhdGlvbgog
CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIlxuICAgIGJvb2wgcmFpc2VkRXhjZXB0
aW9uID0gZmFsc2U7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIG1f
ZGF0YS0+aW52b2tlQ2FsbGJhY2soYXJncywgJnJhaXNlZEV4Y2VwdGlvbik7XG4iKTsKLSAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiAhcmFpc2VkRXhjZXB0aW9uO1xu
Iik7CisKKyAgICAgICAgICAgICMgYm9vbGVhbiBhbmQgdm9pZCBhcmUgdGhlIG9ubHkgcG9zc2li
bGUgc2lnbmF0dXJlIHR5cGVzLgorICAgICAgICAgICAgaWYgKEdldE5hdGl2ZVR5cGUoJGZ1bmN0
aW9uLT5zaWduYXR1cmUtPnR5cGUpIGVxICJib29sIikgeworICAgICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgIHJldHVybiAhcmFpc2VkRXhjZXB0aW9uO1xuIik7CisgICAgICAg
ICAgICB9CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cbiIpOwogICAgICAgICB9
CiAgICAgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JWOC5wbSBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KaW5k
ZXggMDZiY2UwNC4uOTY2NjgyNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JWOC5wbQorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvclY4LnBtCkBAIC02LDYgKzYsNyBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUg
Q29tcHV0ZXIsIEluYy4KICMgQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAyMDA5IEdvb2dsZSBJ
bmMuCiAjIENvcHlyaWdodCAoQykgMjAwOSBDYW1lcm9uIE1jQ29ybWFjayA8Y2FtQG1jYy5pZC5h
dT4KKyMgQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vi
c2lkaWFyeSgtaWVzKQogIwogIyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAjIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yNSw2ICsyNiw5IEBACiAKIHBhY2th
Z2UgQ29kZUdlbmVyYXRvclY4OwogCit1c2UgY29uc3RhbnQgQ0FMTEJBQ0tfUEFSQU0gICAgID0+
ICAxOwordXNlIGNvbnN0YW50IENBTExCQUNLX1JFVFVSTiAgICA9PiAgMjsKKwogdXNlIEZpbGU6
OnN0YXQ7CiB1c2UgRGlnZXN0OjpNRDU7CiAKQEAgLTIyODcsMTUgKzIyOTEsMTggQEAgRU5ECiAg
ICAgICAgIGZvcmVhY2ggbXkgJGZ1bmN0aW9uIChAeyRkYXRhTm9kZS0+ZnVuY3Rpb25zfSkgewog
ICAgICAgICAgICAgbXkgQHBhcmFtcyA9IEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfTsKICAgICAg
ICAgICAgIGlmICghJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJD
dXN0b20ifSAmJgotICAgICAgICAgICAgICAgICEoR2V0TmF0aXZlVHlwZSgkZnVuY3Rpb24tPnNp
Z25hdHVyZS0+dHlwZSkgZXEgImJvb2wiKSkgewotICAgICAgICAgICAgICAgICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAiICAgIENPTVBJTEVfQVNTRVJUKGZhbHNlKSIpOworICAgICAgICAgICAg
ICAgICEoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUgZXEgImJvb2xlYW4iKSAmJiAhKCRmdW5j
dGlvbi0+c2lnbmF0dXJlLT50eXBlIGVxICJ2b2lkIikpIHsKKyAgICAgICAgICAgICAgICAjIHB1
dCBhIENPTVBJTEVfQVNTRVJUKGZhbHNlKSBpbiBoZWFkZXIgZmlsZSBpZiB0aGUgbWV0aG9kIGlz
IG5vdCAnQ3VzdG9tJworICAgICAgICAgICAgICAgICMgYW5kIGl0cyBzaWduYXR1cmUgdHlwZSBp
cyBub3QgYm9vbGVhbiBvciB2b2lkLgorICAgICAgICAgICAgICAgICMgbm8gc2lnbmF0dXJlIHR5
cGUgb3RoZXIgdGhlbiBib29sZWFuIGFuZCB2b2lkIGlzIGFjY2VwdGVkLgorICAgICAgICAgICAg
ICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgQ09NUElMRV9BU1NFUlQoZmFsc2UpIik7CiAg
ICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmly
dHVhbCAiIC4gR2V0TmF0aXZlVHlwZUZvckNhbGxiYWNrcygkZnVuY3Rpb24tPnNpZ25hdHVyZS0+
dHlwZSkgLiAiICIgLiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZSAuICIoIik7CisgICAgICAg
ICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwgIiAuIEdldE5hdGl2ZVR5cGVG
b3JDYWxsYmFja3MoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUsIENBTExCQUNLX1JFVFVSTikg
LiAiICIgLiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZSAuICIoIik7CiAKICAgICAgICAgICAg
IG15IEBhcmdzID0gKCk7CiAgICAgICAgICAgICBmb3JlYWNoIG15ICRwYXJhbSAoQHBhcmFtcykg
ewotICAgICAgICAgICAgICAgIHB1c2goQGFyZ3MsIEdldE5hdGl2ZVR5cGVGb3JDYWxsYmFja3Mo
JHBhcmFtLT50eXBlKSAuICIgIiAuICRwYXJhbS0+bmFtZSk7CisgICAgICAgICAgICAgICAgcHVz
aChAYXJncywgR2V0TmF0aXZlVHlwZUZvckNhbGxiYWNrcygkcGFyYW0tPnR5cGUsIENBTExCQUNL
X1BBUkFNKSAuICIgIiAuICRwYXJhbS0+bmFtZSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICBwdXNoKEBoZWFkZXJDb250ZW50LCBqb2luKCIsICIsIEBhcmdzKSk7CiAgICAgICAgICAgICBw
dXNoKEBoZWFkZXJDb250ZW50LCAiKTtcbiIpOwpAQCAtMjM1OCwzNyArMjM2NSw1OSBAQCBFTkQK
ICAgICAgICAgZm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7JGRhdGFOb2RlLT5mdW5jdGlvbnN9KSB7
CiAgICAgICAgICAgICBteSBAcGFyYW1zID0gQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9OwogICAg
ICAgICAgICAgaWYgKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
Q3VzdG9tIn0gfHwKLSAgICAgICAgICAgICAgICAhKEdldE5hdGl2ZVR5cGVGb3JDYWxsYmFja3Mo
JGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUpIGVxICJib29sIikpIHsKKyAgICAgICAgICAgICAg
ICAoISgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSBlcSAiYm9vbGVhbiIpICYmICEoJGZ1bmN0
aW9uLT5zaWduYXR1cmUtPnR5cGUgZXEgInZvaWQiKSkpIHsKKyAgICAgICAgICAgICAgICAjIGln
bm9yZSB0aGUgbWV0aG9kIGlmIGhhcyAnQ3VzdG9tJyBhdHRyaWJ1dGUgb3IgaWYKKyAgICAgICAg
ICAgICAgICAjIGl0cyBzaWduYXR1cmUgdHlwZSBpcyBkaWZmZXJlbnQgb2YgYm9vbGVhbiBhbmQg
dm9pZC4KKyAgICAgICAgICAgICAgICAjIGlmIHRoZSBzaWduYXR1cmUgdHlwZSBkaWZmZXJlbnQg
b2YgYm9vbGVhbiBhbmQgdm9pZCB0aGVuIGEKKyAgICAgICAgICAgICAgICAjIENPTVBJTEVfQVNT
RVJUKGZhbHNlKSBoYXMgYmVlbiBhZGRlZCB0byB0aGUgaGVhZGVyIGZpbGUuCiAgICAgICAgICAg
ICAgICAgbmV4dDsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgQWRkSW5jbHVkZXNGb3JU
eXBlKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlKTsKLSAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiXG4iIC4gR2V0TmF0aXZlVHlwZUZvckNhbGxiYWNrcygkZnVuY3Rpb24tPnNpZ25h
dHVyZS0+dHlwZSkgLiAiICR7Y2xhc3NOYW1lfTo6IiAuICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5u
YW1lIC4gIigiKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiXG4iIC4gR2V0TmF0
aXZlVHlwZUZvckNhbGxiYWNrcygkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSwgQ0FMTEJBQ0tf
UkVUVVJOKSAuICIgJHtjbGFzc05hbWV9OjoiIC4gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWUg
LiAiKCIpOwogCiAgICAgICAgICAgICBteSBAYXJncyA9ICgpOwogICAgICAgICAgICAgZm9yZWFj
aCBteSAkcGFyYW0gKEBwYXJhbXMpIHsKICAgICAgICAgICAgICAgICBBZGRJbmNsdWRlc0ZvclR5
cGUoJHBhcmFtLT50eXBlKTsKLSAgICAgICAgICAgICAgICBwdXNoKEBhcmdzLCBHZXROYXRpdmVU
eXBlRm9yQ2FsbGJhY2tzKCRwYXJhbS0+dHlwZSkgLiAiICIgLiAkcGFyYW0tPm5hbWUpOworICAg
ICAgICAgICAgICAgIHB1c2goQGFyZ3MsIEdldE5hdGl2ZVR5cGVGb3JDYWxsYmFja3MoJHBhcmFt
LT50eXBlLCBDQUxMQkFDS19QQVJBTSkgLiAiICIgLiAkcGFyYW0tPm5hbWUpOwogICAgICAgICAg
ICAgfQogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIGpvaW4oIiwgIiwgQGFyZ3MpKTsK
IAogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIpXG4iKTsKICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAie1xuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICBpZiAoIWNhbkludm9rZUNhbGxiYWNrKCkpXG4iKTsKLSAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgICAgICByZXR1cm4gdHJ1ZTtcblxuIik7CisKKyAgICAgICAgICAgICMg
Ym9vbGVhbiBhbmQgdm9pZCBhcmUgdGhlIG9ubHkgcG9zc2libGUgc2lnbmF0dXJlIHR5cGVzLgor
ICAgICAgICAgICAgaWYgKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlIGVxICJib29sZWFuIikg
eworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4gdHJ1
ZTtcblxuIik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgICAgICByZXR1cm47XG5cbiIpOworICAgICAgICAgICAgfQogICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgdjg6OkhhbmRsZVNjb3BlIGhhbmRsZVNjb3Bl
O1xuXG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHY4OjpIYW5kbGU8
djg6OkNvbnRleHQ+IHY4Q29udGV4dCA9IHRvVjhDb250ZXh0KHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSwgbV93b3JsZENvbnRleHQpO1xuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICBpZiAodjhDb250ZXh0LklzRW1wdHkoKSlcbiIpOwotICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiB0cnVlO1xuXG4iKTsKKworICAgICAgICAgICAg
IyBib29sZWFuIGFuZCB2b2lkIGFyZSB0aGUgb25seSBwb3NzaWJsZSBzaWduYXR1cmUgdHlwZXMu
CisgICAgICAgICAgICBpZiAoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUgZXEgImJvb2xlYW4i
KSB7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiB0
cnVlO1xuXG4iKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybjtcblxuIik7CisgICAgICAgICAgICB9CiAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB2ODo6Q29udGV4dDo6U2NvcGUgc2NvcGUo
djhDb250ZXh0KTtcblxuIik7CiAKICAgICAgICAgICAgIEBhcmdzID0gKCk7CiAgICAgICAgICAg
ICBmb3JlYWNoIG15ICRwYXJhbSAoQHBhcmFtcykgewogICAgICAgICAgICAgICAgIG15ICRwYXJh
bU5hbWUgPSAkcGFyYW0tPm5hbWU7CisKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gJHtwYXJhbU5hbWV9SGFuZGxlID0gdG9WOCgk
e3BhcmFtTmFtZX0pO1xuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgaWYgKCR7cGFyYW1OYW1lfUhhbmRsZS5Jc0VtcHR5KCkpIHtcbiIpOwogICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBDUkFTSCgpO1xuIik7Ci0gICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiB0cnVlO1xuIik7CisgICAg
ICAgICAgICAgICAgIyBib29sZWFuIGFuZCB2b2lkIGFyZSB0aGUgb25seSBwb3NzaWJsZSBzaWdu
YXR1cmUgdHlwZXMuCisgICAgICAgICAgICAgICAgaWYgKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50
eXBlIGVxICJib29sZWFuIikgeworICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICAgICAgcmV0dXJuIHRydWU7XG5cbiIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm47
XG5cbiIpOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICB9XG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEBhcmdzLCAiICAgICAgICAk
e3BhcmFtTmFtZX1IYW5kbGUiKTsKICAgICAgICAgICAgIH0KQEAgLTIzOTcsNyArMjQyNiwxMyBA
QCBFTkQKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCBqb2luKCIsXG4iLCBAYXJncykp
OwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbiAgICB9O1xuXG4iKTsKICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGJvb2wgY2FsbGJhY2tSZXR1cm5WYWx1ZSA9
IGZhbHNlO1xuIik7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4g
IWludm9rZUNhbGxiYWNrKG1fY2FsbGJhY2ssICIgLiBzY2FsYXIoQHBhcmFtcykgLiAiLCBhcmd2
LCBjYWxsYmFja1JldHVyblZhbHVlLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpO1xuIik7CisK
KyAgICAgICAgICAgICMgYm9vbGVhbiBhbmQgdm9pZCBhcmUgdGhlIG9ubHkgcG9zc2libGUgc2ln
bmF0dXJlIHR5cGVzLgorICAgICAgICAgICAgaWYgKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBl
IGVxICJib29sZWFuIikgeworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IHJldHVybiAhaW52b2tlQ2FsbGJhY2sobV9jYWxsYmFjaywgIiAuIHNjYWxhcihAcGFyYW1zKSAu
ICIsIGFyZ3YsIGNhbGxiYWNrUmV0dXJuVmFsdWUsIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7
XG4iKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgaW52b2tlQ2FsbGJhY2sobV9jYWxsYmFjaywgIiAuIHNjYWxhcihAcGFyYW1z
KSAuICIsIGFyZ3YsIGNhbGxiYWNrUmV0dXJuVmFsdWUsIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSk7XG4iKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
fVxuIik7CiAgICAgICAgIH0KICAgICB9CkBAIC0yODcxLDcgKzI5MDYsOSBAQCBzdWIgR2V0TmF0
aXZlVHlwZQogc3ViIEdldE5hdGl2ZVR5cGVGb3JDYWxsYmFja3MKIHsKICAgICBteSAkdHlwZSA9
IHNoaWZ0OworICAgIG15ICR1c2FnZSA9IHNoaWZ0OwogICAgIHJldHVybiAiY29uc3QgU3RyaW5n
JiIgaWYgJHR5cGUgZXEgIkRPTVN0cmluZyI7CisgICAgcmV0dXJuICJ2b2lkIiBpZiAoJHR5cGUg
ZXEgInZvaWQiKSBhbmQgKCR1c2FnZSBlcSBDQUxMQkFDS19SRVRVUk4pOwogCiAgICAgIyBDYWxs
YmFja3MgdXNlIHJhdyBwb2ludGVycywgc28gcGFzcyBpc1BhcmFtZXRlciA9IDEKICAgICByZXR1
cm4gR2V0TmF0aXZlVHlwZSgkdHlwZSwgMSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJDdXN0b20uY3BwIGIvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ3VzdG9tLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xODJmOTBjCi0tLSAvZGV2L251bGwKKysr
IGIvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ3Vz
dG9tLmNwcApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lh
IENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJWOE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitpbnQgVjhNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjp0eXBlKCkK
K3sKKyAgICByZXR1cm4gVjhNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyVHlwZTsKK30KKworYm9vbCBW
OE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OmlzRXF1YWxUbyhNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
KiBvdGhlcikKK3sKKyAgICBpZiAoIW90aGVyIHx8IHR5cGUoKSAhPSBvdGhlci0+dHlwZSgpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBWOE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqIHY4
TGlzdGVuZXIgPSBzdGF0aWNfY2FzdDxWOE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqPihvdGhlcik7
CisgICAgcmV0dXJuIHY4TGlzdGVuZXIgJiYgbV9jYWxsYmFjay0+RXF1YWxzKHY4TGlzdGVuZXIt
Pm1fY2FsbGJhY2spOworfQorCit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5
TGlzdC5jcHAgYi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdC5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uZGEzZWQ3YQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUv
Y3NzL01lZGlhUXVlcnlMaXN0LmNwcApAQCAtMCwwICsxLDk5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVU
RVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRF
UiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRpYVF1ZXJ5TGlzdC5oIgor
CisjaW5jbHVkZSAiTWVkaWFMaXN0LmgiCisjaW5jbHVkZSAiTWVkaWFRdWVyeUV2YWx1YXRvci5o
IgorI2luY2x1ZGUgIk1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCIKKyNpbmNsdWRlICJNZWRpYVF1
ZXJ5TWF0Y2hlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8TWVkaWFR
dWVyeUxpc3Q+IE1lZGlhUXVlcnlMaXN0OjpjcmVhdGUoUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TWF0
Y2hlcj4gdmVjdG9yLCBQYXNzUmVmUHRyPE1lZGlhTGlzdD4gbWVkaWEsIGJvb2wgbWF0Y2hlcykK
K3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1lZGlhUXVlcnlMaXN0KHZlY3RvciwgbWVkaWEs
IG1hdGNoZXMpKTsKK30KKworTWVkaWFRdWVyeUxpc3Q6Ok1lZGlhUXVlcnlMaXN0KFBhc3NSZWZQ
dHI8TWVkaWFRdWVyeU1hdGNoZXI+IHZlY3RvciwgUGFzc1JlZlB0cjxNZWRpYUxpc3Q+IG1lZGlh
LCBib29sIG1hdGNoZXMpCisgICAgOiBtX21hdGNoZXIodmVjdG9yKQorICAgICwgbV9tZWRpYSht
ZWRpYSkKKyAgICAsIG1fZXZhbFJvdW5kKG1fbWF0Y2hlci0+ZXZhbFJvdW5kKCkpCisgICAgLCBt
X2NoYW5nZVJvdW5kKG1fZXZhbFJvdW5kIC0gMSkgLy8gbV9ldmFsUm91bmQgYW5kIG1fY2hhbmdl
Um91bmQgaW5pdGlhbCB2YWx1ZXMgbXVzdCBiZSBkaWZmZXJlbnQKKyAgICAsIG1fbWF0Y2hlcyht
YXRjaGVzKQoreworfQorCitNZWRpYVF1ZXJ5TGlzdDo6fk1lZGlhUXVlcnlMaXN0KCkKK3sKK30K
KworU3RyaW5nIE1lZGlhUXVlcnlMaXN0OjptZWRpYSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
bWVkaWEtPm1lZGlhVGV4dCgpOworfQorCit2b2lkIE1lZGlhUXVlcnlMaXN0OjphZGRMaXN0ZW5l
cihQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+IGxpc3RlbmVyKQoreworICAgIG1f
bWF0Y2hlci0+YWRkTGlzdGVuZXIobGlzdGVuZXIsIHRoaXMpOworfQorCit2b2lkIE1lZGlhUXVl
cnlMaXN0OjpyZW1vdmVMaXN0ZW5lcihQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+
IGxpc3RlbmVyKQoreworICAgIG1fbWF0Y2hlci0+cmVtb3ZlTGlzdGVuZXIobGlzdGVuZXIsIHRo
aXMpOworfQorCit2b2lkIE1lZGlhUXVlcnlMaXN0OjpldmFsdWF0ZShNZWRpYVF1ZXJ5RXZhbHVh
dG9yKiBldmFsdWF0b3IpCit7CisgICAgaWYgKG1fZXZhbFJvdW5kID09IG1fbWF0Y2hlci0+ZXZh
bFJvdW5kKCkgfHwgIWV2YWx1YXRvcikKKyAgICAgICAgcmV0dXJuOworICAgIHNldE1hdGNoZXMo
ZXZhbHVhdG9yLT5ldmFsKG1fbWVkaWEuZ2V0KCkpKTsKK30KKwordm9pZCBNZWRpYVF1ZXJ5TGlz
dDo6c2V0TWF0Y2hlcyhib29sIG5ld1ZhbHVlKQoreworICAgIG1fZXZhbFJvdW5kID0gbV9tYXRj
aGVyLT5ldmFsUm91bmQoKTsKKyAgICBpZiAobmV3VmFsdWUgIT0gbV9tYXRjaGVzKSB7CisgICAg
ICAgIG1fbWF0Y2hlcyA9IG5ld1ZhbHVlOworICAgICAgICBtX2NoYW5nZVJvdW5kID0gbV9ldmFs
Um91bmQ7CisgICAgfQorfQorCitib29sIE1lZGlhUXVlcnlMaXN0OjpjaGFuZ2VkKCkKK3sKKyAg
ICBpZiAobV9ldmFsUm91bmQgIT0gbV9tYXRjaGVyLT5ldmFsUm91bmQoKSkKKyAgICAgICAgc2V0
TWF0Y2hlcyhtX21hdGNoZXItPmV2YWx1YXRlKG1fbWVkaWEuZ2V0KCkpKTsKKyAgICByZXR1cm4g
bV9ldmFsUm91bmQgPT0gbV9jaGFuZ2VSb3VuZDsKK30KKworYm9vbCBNZWRpYVF1ZXJ5TGlzdDo6
bWF0Y2hlcygpCit7CisgICAgaWYgKG1fZXZhbFJvdW5kICE9IG1fbWF0Y2hlci0+ZXZhbFJvdW5k
KCkpCisgICAgICAgIHNldE1hdGNoZXMobV9tYXRjaGVyLT5ldmFsdWF0ZShtX21lZGlhLmdldCgp
KSk7CisgICAgcmV0dXJuIG1fbWF0Y2hlczsKK30KKworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9j
c3MvTWVkaWFRdWVyeUxpc3QuaCBiL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0LmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmY5NWFmOQotLS0gL2Rldi9udWxsCisrKyBi
L1dlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0LmgKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
Q09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIE1lZGlhUXVlcnlMaXN0X2gKKyNkZWZpbmUgTWVkaWFRdWVy
eUxpc3RfaAorCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBNZWRpYUxpc3Q7Citj
bGFzcyBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOworY2xhc3MgTWVkaWFRdWVyeUV2YWx1YXRvcjsK
K2NsYXNzIE1lZGlhUXVlcnlNYXRjaGVyOworCisvKioKKyAgTWVkaWFRdWVyeUxpc3QgaW50ZXJm
YWNlIGlzIHNwZWNpZmllZCBhdCBodHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9jc3NvbS12aWV3LyN0
aGUtbWVkaWFxdWVyeWxpc3QtaW50ZXJmYWNlCisgIFRoZSBvYmplY3RzIG9mIHRoaXMgY2xhc3Mg
YXJlIHJldHVuZWQgYnkgd2luZG93Lm1hdGNoTWVkaWEuIFRoZXkgbWF5IGJlIHVzZWQgdG8KKyAg
cmV0cmlldmUgdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIGdpdmVuIG1lZGlhIHF1ZXJ5IGFuZCB0
byBhZGQvcmVtb3ZlIGxpc3RlbmVycyB0aGF0CisgIHdpbGwgYmUgY2FsbGVkIHdoZW5ldmVyIHRo
ZSB2YWx1ZSBvZiB0aGUgcXVlcnkgY2hhbmdlcy4KKyovCitjbGFzcyBNZWRpYVF1ZXJ5TGlzdCA6
IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhUXVlcnlMaXN0PiB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3Q+IGNyZWF0ZShQYXNzUmVmUHRyPE1lZGlhUXVlcnlN
YXRjaGVyPiwgUGFzc1JlZlB0cjxNZWRpYUxpc3Q+LCBib29sKTsKKyAgICB+TWVkaWFRdWVyeUxp
c3QoKTsKKyAgICBTdHJpbmcgbWVkaWEoKSBjb25zdDsKKyAgICBib29sIG1hdGNoZXMoKTsKKwor
ICAgIHZvaWQgYWRkTGlzdGVuZXIoUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyPik7
CisgICAgdm9pZCByZW1vdmVMaXN0ZW5lcihQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXI+KTsKKworICAgIHZvaWQgZXZhbHVhdGUoTWVkaWFRdWVyeUV2YWx1YXRvciopOworICAgIGJv
b2wgY2hhbmdlZCgpOworCitwcml2YXRlOgorICAgIE1lZGlhUXVlcnlMaXN0KFBhc3NSZWZQdHI8
TWVkaWFRdWVyeU1hdGNoZXI+LCBQYXNzUmVmUHRyPE1lZGlhTGlzdD4sIGJvb2wgbWF0Y2hlcyk7
CisgICAgdm9pZCBzZXRNYXRjaGVzKGJvb2wpOworCisgICAgUmVmUHRyPE1lZGlhUXVlcnlNYXRj
aGVyPiBtX21hdGNoZXI7CisgICAgUmVmUHRyPE1lZGlhTGlzdD4gbV9tZWRpYTsKKyAgICBpbnQg
bV9ldmFsUm91bmQ7IC8vIGluZGljYXRlcyBpZiB0aGUgcXVlcnkgaGFzIGJlZW4gZXZhbHVhdGVk
IGFmdGVyIHRoZSBsYXN0IHN0eWxlIHNlbGVjdG9yIGNoYW5nZS4KKyAgICBpbnQgbV9jaGFuZ2VS
b3VuZDsgLy8gdXNlZCB0byBrbm93IGlmIHRoZSBxdWVyeSBoYXMgY2hhbmdlZCBpbiB0aGUgbGFz
dCBzdHlsZSBzZWxlY3RvciBjaGFuZ2UuCisgICAgYm9vbCBtX21hdGNoZXM7Cit9OworCit9CisK
KyNlbmRpZiAvLyBNZWRpYVF1ZXJ5TGlzdF9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9NZWRp
YVF1ZXJ5TGlzdC5pZGwgYi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdC5pZGwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjY1ZTVmNwotLS0gL2Rldi9udWxsCisrKyBiL1dl
YkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0LmlkbApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgt
aWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
Q09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBD
T01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKK21vZHVsZSB2aWV3IHsKKyAgICBpbnRlcmZhY2UgTWVkaWFRdWVyeUxpc3Qg
eworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG1lZGlhOworICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBtYXRjaGVzOworICAgICAgICB2b2lkIGFkZExpc3Rl
bmVyKGluIFtDYWxsYmFja10gTWVkaWFRdWVyeUxpc3RMaXN0ZW5lciBsaXN0ZW5lcik7CisgICAg
ICAgIHZvaWQgcmVtb3ZlTGlzdGVuZXIoaW4gW0NhbGxiYWNrXSBNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyIGxpc3RlbmVyKTsKKyAgICB9OworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvTWVkaWFR
dWVyeUxpc3RMaXN0ZW5lci5oIGIvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRkM2E2ZTAKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgKQEAgLTAsMCArMSw1
NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3Ig
aXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXJfaAorI2RlZmluZSBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyX2gKKworI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTWVkaWFRdWVyeUxp
c3Q7CisKKy8qKgorICBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIGlzIGFuIGFic3RyYWN0aW9uIG9m
IHRoZSBjYWxsYmFja3MuCisgIHNlZSBodHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9jc3NvbS12aWV3
LyN0aGUtbWVkaWFxdWVyeWxpc3QtaW50ZXJmYWNlCisqLworY2xhc3MgTWVkaWFRdWVyeUxpc3RM
aXN0ZW5lciA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+IHsKK3B1
YmxpYzoKKyAgICBlbnVtIFR5cGUgeworICAgICAgICBKU01lZGlhUXVlcnlMaXN0TGlzdGVuZXJU
eXBlLAorICAgICAgICBWOE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJUeXBlCisgICAgfTsKKworICAg
IHZpcnR1YWwgfk1lZGlhUXVlcnlMaXN0TGlzdGVuZXIoKSB7fQorICAgIHZpcnR1YWwgdm9pZCBx
dWVyeUNoYW5nZWQoTWVkaWFRdWVyeUxpc3QqKSA9IDA7CisgICAgdmlydHVhbCBpbnQgdHlwZSgp
ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNFcXVhbFRvKE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIq
IG90aGVyKSA9IDA7Cit9OworCit9CisKKyNlbmRpZiAvLyBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaWRsIGIv
V2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uYjVmZjcyOAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvY3Nz
L01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaWRsCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBD
T01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENP
TVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworbW9kdWxlIHZpZXcgeworICAgIGludGVyZmFjZSBbQ2FsbGJhY2tdIE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXIgeworICAgICAgICB2b2lkIHF1ZXJ5Q2hhbmdlZChpbiBNZWRpYVF1
ZXJ5TGlzdCBtcWwpOworICAgICAgICBbQ3VzdG9tXSBsb25nIHR5cGUoKTsKKyAgICAgICAgW0N1
c3RvbV0gYm9vbGVhbiBpc0VxdWFsVG8oaW4gTWVkaWFRdWVyeUxpc3RMaXN0ZW5lciBvdGhlcik7
CisgICAgfTsKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlNYXRjaGVyLmNw
cCBiL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlNYXRjaGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5lY2FkNjgxCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9jc3Mv
TWVkaWFRdWVyeU1hdGNoZXIuY3BwCkBAIC0wLDAgKzEsMTY1IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVU
RVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRF
UiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRpYVF1ZXJ5TWF0Y2hlci5o
IgorCisjaW5jbHVkZSAiQ1NTU3R5bGVTZWxlY3Rvci5oIgorI2luY2x1ZGUgIkRvY3VtZW50Lmgi
CisjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUg
Ik1lZGlhTGlzdC5oIgorI2luY2x1ZGUgIk1lZGlhUXVlcnlFdmFsdWF0b3IuaCIKKyNpbmNsdWRl
ICJNZWRpYVF1ZXJ5TGlzdC5oIgorI2luY2x1ZGUgIk1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitNZWRpYVF1ZXJ5TWF0Y2hlcjo6TGlzdGVuZXI6Okxp
c3RlbmVyKFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4gbGlzdGVuZXIsIFBhc3NS
ZWZQdHI8TWVkaWFRdWVyeUxpc3Q+IHF1ZXJ5KQorICAgIDogbV9saXN0ZW5lcihsaXN0ZW5lcikK
KyAgICAsIG1fcXVlcnkocXVlcnkpCit7Cit9CisKK01lZGlhUXVlcnlNYXRjaGVyOjpMaXN0ZW5l
cjo6fkxpc3RlbmVyKCkKK3sKK30KKwordm9pZCBNZWRpYVF1ZXJ5TWF0Y2hlcjo6TGlzdGVuZXI6
OmV2YWx1YXRlKE1lZGlhUXVlcnlFdmFsdWF0b3IqIGV2YWx1YXRvcikKK3sKKyAgICBtX3F1ZXJ5
LT5ldmFsdWF0ZShldmFsdWF0b3IpOworICAgIGlmIChtX3F1ZXJ5LT5jaGFuZ2VkKCkpCisgICAg
ICAgIG1fbGlzdGVuZXItPnF1ZXJ5Q2hhbmdlZChtX3F1ZXJ5LmdldCgpKTsKK30KKworTWVkaWFR
dWVyeU1hdGNoZXI6Ok1lZGlhUXVlcnlNYXRjaGVyKERvY3VtZW50KiBkb2MpCisgICAgOiBtX2Rv
Yyhkb2MpCisgICAgLCBtX2V2YWxSb3VuZCgwKQorICAgICwgbV90ZXJtaW5hdGVkKGZhbHNlKQor
eworfQorCitNZWRpYVF1ZXJ5TWF0Y2hlcjo6fk1lZGlhUXVlcnlNYXRjaGVyKCkKK3sKKyAgICBk
ZWxldGVBbGxWYWx1ZXMobV9saXN0ZW5lcnMpOworfQorCit2b2lkIE1lZGlhUXVlcnlNYXRjaGVy
Ojp0ZXJtaW5hdGUoKQoreworICAgIG1fdGVybWluYXRlZCA9IHRydWU7CisgICAgZGVsZXRlQWxs
VmFsdWVzKG1fbGlzdGVuZXJzKTsKKyAgICBtX2xpc3RlbmVycy5jbGVhcigpOworICAgIG1fZG9j
ID0gMDsKK30KKworU3RyaW5nIE1lZGlhUXVlcnlNYXRjaGVyOjptZWRpYVR5cGUoKSBjb25zdAor
eworICAgIGlmICghbV9kb2MgfHwgIW1fZG9jLT5mcmFtZSgpIHx8ICFtX2RvYy0+ZnJhbWUoKS0+
dmlldygpKQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisKKyAgICByZXR1cm4gbV9kb2MtPmZy
YW1lKCktPnZpZXcoKS0+bWVkaWFUeXBlKCk7Cit9CisKK1Bhc3NPd25QdHI8TWVkaWFRdWVyeUV2
YWx1YXRvcj4gTWVkaWFRdWVyeU1hdGNoZXI6OnByZXBhcmVFdmFsdWF0b3IoKSBjb25zdAorewor
ICAgIGlmICghbV9kb2MgfHwgIW1fZG9jLT5mcmFtZSgpKQorICAgICAgICByZXR1cm4gMDsKKwor
ICAgIERvY3VtZW50KiBkb2N1bWVudCA9IG1fZG9jLT5mcmFtZSgpLT5kb2N1bWVudCgpOworICAg
IGlmICghZG9jdW1lbnQpCisgICAgICAgIHJldHVybiAwOworCisgICAgRWxlbWVudCogZG9jdW1l
bnRFbGVtZW50ID0gZG9jdW1lbnQtPmRvY3VtZW50RWxlbWVudCgpOworICAgIGlmICghZG9jdW1l
bnRFbGVtZW50KQorICAgICAgICByZXR1cm4gMDsKKworICAgIENTU1N0eWxlU2VsZWN0b3IqIHN0
eWxlU2VsZWN0b3IgPSBkb2N1bWVudC0+c3R5bGVTZWxlY3RvcigpOworICAgIGlmICghc3R5bGVT
ZWxlY3RvcikKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IHJv
b3RTdHlsZSA9IHN0eWxlU2VsZWN0b3ItPnN0eWxlRm9yRWxlbWVudChkb2N1bWVudEVsZW1lbnQs
IDAgLypkZWZhdWx0UGFyZW50Ki8sIGZhbHNlIC8qYWxsb3dTaGFyaW5nKi8sIHRydWUgLypyZXNv
bHZlRm9yUm9vdERlZmF1bHQqLyk7CisKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IE1lZGlhUXVl
cnlFdmFsdWF0b3IobWVkaWFUeXBlKCksIG1fZG9jLT5mcmFtZSgpLCByb290U3R5bGUuZ2V0KCkp
KTsKK30KKworYm9vbCBNZWRpYVF1ZXJ5TWF0Y2hlcjo6ZXZhbHVhdGUoTWVkaWFMaXN0KiBtZWRp
YSkKK3sKKyAgICBpZiAoIW1lZGlhKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBPd25Q
dHI8TWVkaWFRdWVyeUV2YWx1YXRvcj4gZXZhbHVhdG9yKHByZXBhcmVFdmFsdWF0b3IoKSk7Cisg
ICAgcmV0dXJuIGV2YWx1YXRvciAmJiBldmFsdWF0b3ItPmV2YWwobWVkaWEpOworfQorCitQYXNz
UmVmUHRyPE1lZGlhUXVlcnlMaXN0PiBNZWRpYVF1ZXJ5TWF0Y2hlcjo6bWF0Y2hNZWRpYShjb25z
dCBTdHJpbmcmIHF1ZXJ5KQoreworICAgIGlmIChtX3Rlcm1pbmF0ZWQpCisgICAgICAgIHJldHVy
biAwOworCisgICAgUmVmUHRyPE1lZGlhTGlzdD4gbWVkaWEgPSBNZWRpYUxpc3Q6OmNyZWF0ZShx
dWVyeSwgZmFsc2UpOworICAgIHJldHVybiBNZWRpYVF1ZXJ5TGlzdDo6Y3JlYXRlKHRoaXMsIG1l
ZGlhLCBldmFsdWF0ZShtZWRpYS5nZXQoKSkpOworfQorCit2b2lkIE1lZGlhUXVlcnlNYXRjaGVy
OjphZGRMaXN0ZW5lcihQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+IGxpc3RlbmVy
LCBQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0PiBxdWVyeSkKK3sKKyAgICBpZiAobV90ZXJtaW5h
dGVkKQorICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fbGlz
dGVuZXJzLnNpemUoKTsgKytpKSB7CisgICAgICAgIGlmIChtX2xpc3RlbmVyc1tpXS0+bGlzdGVu
ZXIoKS0+aXNFcXVhbFRvKGxpc3RlbmVyLmdldCgpKSAmJiBtX2xpc3RlbmVyc1tpXS0+cXVlcnko
KSA9PSBxdWVyeS5nZXQoKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX2xp
c3RlbmVycy5hcHBlbmQobmV3IExpc3RlbmVyKGxpc3RlbmVyLCBxdWVyeSkpOworfQorCit2b2lk
IE1lZGlhUXVlcnlNYXRjaGVyOjpyZW1vdmVMaXN0ZW5lcihQYXNzUmVmUHRyPE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXI+IGxpc3RlbmVyLCBQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0PiBxdWVyeSkK
K3sKKyAgICBpZiAobV90ZXJtaW5hdGVkKQorICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKGlu
dCBpID0gbV9saXN0ZW5lcnMuc2l6ZSgpIC0gMTsgaSA+PSAwOyAtLWkpIHsKKyAgICAgICAgaWYg
KG1fbGlzdGVuZXJzW2ldLT5saXN0ZW5lcigpLT5pc0VxdWFsVG8obGlzdGVuZXIuZ2V0KCkpICYm
IG1fbGlzdGVuZXJzW2ldLT5xdWVyeSgpID09IHF1ZXJ5LmdldCgpKSB7CisgICAgICAgICAgICBk
ZWxldGUgbV9saXN0ZW5lcnNbaV07CisgICAgICAgICAgICBtX2xpc3RlbmVycy5yZW1vdmUoaSk7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgTWVkaWFR
dWVyeU1hdGNoZXI6OmV2YWx1YXRlKCkKK3sKKyAgICBBU1NFUlQoIW1fdGVybWluYXRlZCk7CisK
KyAgICArK21fZXZhbFJvdW5kOworICAgIE93blB0cjxNZWRpYVF1ZXJ5RXZhbHVhdG9yPiBldmFs
dWF0b3IgPSBwcmVwYXJlRXZhbHVhdG9yKCk7CisgICAgaWYgKCFldmFsdWF0b3IpCisgICAgICAg
IHJldHVybjsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9saXN0ZW5lcnMuc2l6ZSgp
OyArK2kpCisgICAgICAgIG1fbGlzdGVuZXJzW2ldLT5ldmFsdWF0ZShldmFsdWF0b3IuZ2V0KCkp
OworfQorCit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TWF0Y2hlci5oIGIv
V2ViQ29yZS9jc3MvTWVkaWFRdWVyeU1hdGNoZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5lYjdlYzJhCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9jc3MvTWVkaWFR
dWVyeU1hdGNoZXIuaApAQCAtMCwwICsxLDE0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIE1lZGlhUXVlcnlNYXRjaGVyX2gKKyNkZWZpbmUgTWVkaWFRdWVyeU1hdGNoZXJfaAor
CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEb2N1bWVudDsKK2NsYXNzIE1lZGlh
TGlzdDsKK2NsYXNzIE1lZGlhUXVlcnlMaXN0OworY2xhc3MgTWVkaWFRdWVyeUxpc3RMaXN0ZW5l
cjsKK2NsYXNzIE1lZGlhUXVlcnlFdmFsdWF0b3I7CisKKy8qKgorICBNZWRpYVF1ZXJ5TWF0Y2hl
ciBjbGFzcyBpcyByZXNwb25zaWJsZSBmb3Iga2VlcGluZyBhIHZlY3RvciBvZiBwYWlycworICBN
ZWRpYVF1ZXJ5TGlzdCB4IE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuIEl0IGlzIHJlc3BvbnNpYmxl
IGZvciBldmFsdWF0aW5nIHRoZSBxdWVyaWVzCisgIHdoZW5ldmVyIGl0IGlzIG5lZWRlZCBhbmQg
dG8gY2FsbCB0aGUgbGlzdGVuZXJzIGlmIHRoZSBjb3JyZXNwb25kaW5nIHF1ZXJ5IGhhcyBjaGFu
Z2VkLgorICBUaGUgbGlzdGVuZXJzIG11c3QgYmUgY2FsbGVkIGluIHRoZSB2ZXJ5IHNhbWUgb3Jk
ZXIgaW4gd2hpY2ggdGhleSBoYXZlIGJlZW4gYWRkZWQuCisKKyAgT2JqZWN0IGRpYWdyYW06CisK
KworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgTWVkaWFRdWVyeUxpc3RMaXN0ZW5lcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfAorICAgICBEb2N1bWVudCAtLS0tLS0tLT4gIE1lZGlhUXVlcnlNYXRjaGVyIC0t
LS0tLS0tLS0tLS0tLS0tLT4gIExpc3RlbmVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBeICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgICAgIHwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArLS0tLS0tICBN
ZWRpYVF1ZXJ5TGlzdCAgPC0tLS0tLS0tLSsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIF4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSlNNZWRp
YVF1ZXJ5TGlzdAorCisgICogQWxsIGFycm93cyBpbiB0aGlzIGRpYWdyYW0sIGV4Y2VwdCB0aGUg
b25lIGJldHdlZW4gTWVkaWFRdWVyeU1hdGNoZXIgYW5kIExpc3RlbmVyLAorICAgIGFyZSBSZWZQ
dHI8Pi4KKworICBPYmplY3RzIGxpZmVjeWNsZToKKworICBObyByZWZlcmVuY2UgdG8gTWVkaWFR
dWVyeUxpc3QgaW5zdGFuY2VzIGlzIGtlcHQgYnkgY2xhc3MgTWVkaWFRdWVyeU1hdGNoZXIgaXRz
ZWxmLiBUaGUgcmVhc29uCisgIGlzIHRoYXQgaWYgTWVkaWFRdWVyeUxpc3Q6OmFkZExpc3RlbmVy
IGlzIG5vdCBjYWxsZWQgdGhlIG9ubHkgcmVmZXJlbmNlIHRvIHRoZSBNZWRpYVF1ZXJ5TGlzdAor
ICBvYmplY3Qgd2lsbCBiZSBpbiBKYXZhc2NyaXB0IGFuZCBpdCB3aWxsIGJlIGRlc3Ryb3llZCBh
cyBzb29uIGFzIHRoZSBKUyBvYmplY3QgaXMgZ2FyYmFnZQorICBjb2xsZWN0ZWQuCisKKyAgQ2xh
c3MgTWVkaWFRdWVyeUxpc3QgZG9lcyBub3Qga2VlcCBhIGxpc3Qgb2YgTWVkaWFRdWVyeUxpc3RM
aXN0ZW5lci4gSXQgY2FsbHMKKyAgTWVkaWFRdWVyeU1hdGNoZXI6OmFkZExpc3RlbmVyIGV2ZXJ5
IHRpbWUgaXRzIGFkZExpc3RlbmVyIG1ldGhvZCBpcyBjYWxsZWQsIHBhc3NpbmcgdGhlCisgIHJl
Y2VpdmVkIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIgb2JqZWN0IGFuZCBpdHNlbGYuIE1lZGlhUXVl
cnlNYXRjaGVyOjphZGRMaXN0ZW5lciB3aWxsCisgIHRoZW4gYXBwZW5kIGEgbmV3IE1lZGlhUXVl
cnlNYXRjaGVyOjpMaXN0ZW5lciB0byBpdHMgaW50ZXJuYWwgdmVjdG9yLCBpZiB0aGUgcGFpcgor
ICBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIHggTWVkaWFRdWVyeUxpc3QgaXMgbm90IGR1cGxpY2F0
ZWQuCisKKyAgVGhpcyBuZXcgTGlzdGVuZXIgb2JqZWN0IGhhcyBhIHJlZmVyZW5jZSB0byB0aGUg
TWVkaWFRdWVyeUxpc3Qgb2JqZWN0LCB0aGF0IHdpbGwga2VlcAorICBpdCBhbGl2ZSB0byBiZSBw
YXNzZWQgdG8gdGhlIGNhbGxiYWNrLiBJZiBhbGwgbGlzdGVuZXJzIGFyZSByZW1vdmVkIGZyb20g
dGhhdAorICBNZWRpYVF1ZXJ5TGlzdCBvYmplY3QsIGFsbCBMaXN0ZW5lciBpbnN0YW5jZXMgcG9p
bnRpbmcgdG8gdGhhdCBNZWRpYVF1ZXJ5TGlzdCBvYmplY3Qgd2lsbCBiZQorICBkZXN0cm95ZWQg
YW5kIGFnYWluIHRoZSBvbmx5IHJlZmVyZW5jZSB0byB0aGUgcXVlcnkgd2lsbCBiZSBpbiBKUy4K
KworICBJdCBtYXkgYmUgdGhhdCBhIE1lZGlhUXVlcnlNYXRjaGVyIGluc3RhbmNlIGhhcyBvbmUg
b3IgbW9yZSBMaXN0ZW5lciBpbnN0YW5jZXMgcG9pbnRpbmcgdG8gYQorICBNZWRpYVF1ZXJ5TGlz
dCBhbmQgdGhpcyBNZWRpYVF1ZXJ5TGlzdCBoYXMgYSByZWZlcmVuY2UgdG8gdGhhdCBzYW1lIE1l
ZGlhUXVlcnlNYXRjaGVyIGluc3RhbmNlLAorICBwcmV2ZW50aW5nIHRoZW0gZnJvbSBiZWVuIGRl
c3Ryb3llZCAodGhlIGN5Y2xlIGluIHRoZSBkaWFncmFtKS4gVGhhdCBpcyB3aHkgdGhlCisgIE1l
ZGlhUXVlcnlNYXRjaGVyIG9iamVjdCBjYW5ub3QgYmUgb3duZWQgYnkgdGhlIERvY3VtZW50IGlu
c3RhbmNlIGFuZCBhbiBzcGVjaWFsIHRlcm1pbmF0aW9uCisgIGhhbmRsaW5nIGlzIHJlcXVpcmVk
LgorCisgIE1ldGhvZCBNZWRpYVF1ZXJ5TWF0Y2hlcjo6dGVybWluYXRlLCBjYWxsZWQgYnkgRG9j
dW1lbnQganVzdCBiZWZvcmUgcmVsZWFzaW5nIHRoZQorICBNZWRpYVF1ZXJ5TWF0Y2hlciByZWZl
cmVuY2UsIHdpbGwgcmVtb3ZlIGFsbCByZWZlcmVuY2VzIHRvIE1lZGlhUXVlcnlMaXN0IG9iamVj
dHMgaW4KKyAgTWVkaWFRdWVyeU1hdGNoZXIgYW5kIHdpbGwgZ3VhcmFudGVlIHRoYXQgbm8gbmV3
IG9uZSB3aWxsIGJlIGNyZWF0ZWQuIFRoZSBvbmx5IHJlZmVyZW5jZXMgdG8KKyAgTWVkaWFRdWVy
eUxpc3Qgb2JqZWN0cyB3aWxsIGJlIGFnYWluIGluIEpTLiBBbGwgTWVkaWFRdWVyeUxpc3Qgb2Jq
ZWN0cyB3aWxsIGJlIGRlc3Ryb3llZCBhcyBzb29uCisgIGFzIHRoZWlyIGNvcnJlc3BvbmRpbmcg
SlMgb2JqZWN0cyBnZXQgZ2FyYmFnZSBjb2xsZWN0ZWQgYW5kIE1lZGlhUXVlcnlNYXRjaGVyIHdp
bGwgZGllIGFzIHNvb24KKyAgYXMgdGhlIGxhc3QgTWVkaWFRdWVyeUxpc3Qgb2JqZWN0IGRpZXMu
CisqLworY2xhc3MgTWVkaWFRdWVyeU1hdGNoZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVF1
ZXJ5TWF0Y2hlcj4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhUXVlcnlN
YXRjaGVyPiBjcmVhdGUoRG9jdW1lbnQqIGRvYykgeyByZXR1cm4gYWRvcHRSZWYobmV3IE1lZGlh
UXVlcnlNYXRjaGVyKGRvYykpOyB9CisgICAgfk1lZGlhUXVlcnlNYXRjaGVyKCk7CisgICAgdm9p
ZCB0ZXJtaW5hdGUoKTsKKworICAgIHZvaWQgYWRkTGlzdGVuZXIoUGFzc1JlZlB0cjxNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyPiwgUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdD4pOworICAgIHZvaWQg
cmVtb3ZlTGlzdGVuZXIoUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyPiwgUGFzc1Jl
ZlB0cjxNZWRpYVF1ZXJ5TGlzdD4pOworCisgICAgUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdD4g
bWF0Y2hNZWRpYShjb25zdCBTdHJpbmcmKTsKKworICAgIGludCBldmFsUm91bmQoKSBjb25zdCB7
IHJldHVybiBtX2V2YWxSb3VuZDsgfQorICAgIHZvaWQgZXZhbHVhdGUoKTsKKyAgICBib29sIGV2
YWx1YXRlKE1lZGlhTGlzdCopOworCitwcml2YXRlOgorICAgIGNsYXNzIExpc3RlbmVyIHsKKyAg
ICBwdWJsaWM6CisgICAgICAgIExpc3RlbmVyKFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lcj4sIFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3Q+KTsKKyAgICAgICAgfkxpc3RlbmVyKCk7
CisKKyAgICAgICAgdm9pZCBldmFsdWF0ZShNZWRpYVF1ZXJ5RXZhbHVhdG9yKik7CisKKyAgICAg
ICAgTWVkaWFRdWVyeUxpc3RMaXN0ZW5lciogbGlzdGVuZXIoKSB7IHJldHVybiBtX2xpc3RlbmVy
LmdldCgpOyB9CisgICAgICAgIE1lZGlhUXVlcnlMaXN0KiBxdWVyeSgpIHsgcmV0dXJuIG1fcXVl
cnkuZ2V0KCk7IH0KKworICAgIHByaXZhdGU6CisgICAgICAgIFJlZlB0cjxNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyPiBtX2xpc3RlbmVyOworICAgICAgICBSZWZQdHI8TWVkaWFRdWVyeUxpc3Q+IG1f
cXVlcnk7CisgICAgfTsKKworcHJpdmF0ZToKKyAgICBNZWRpYVF1ZXJ5TWF0Y2hlcihEb2N1bWVu
dCopOworICAgIFBhc3NPd25QdHI8TWVkaWFRdWVyeUV2YWx1YXRvcj4gcHJlcGFyZUV2YWx1YXRv
cigpIGNvbnN0OworICAgIFN0cmluZyBtZWRpYVR5cGUoKSBjb25zdDsKKworICAgIERvY3VtZW50
KiBtX2RvYzsKKyAgICBWZWN0b3I8TGlzdGVuZXIqPiBtX2xpc3RlbmVyczsKKyAgICBpbnQgbV9l
dmFsUm91bmQ7IC8vIHRoaXMgdmFsdWUgaXMgaW5jcmVtZW50ZWQgYXQgc3R5bGUgc2VsZWN0b3Ig
Y2hhbmdlcy4KKyAgICAgICAgICAgICAgICAgICAgIC8vIGl0IGlzIHVzZWQgdG8gYXZvaWQgZXZh
bHVhdGluZyBxdWVyaWVzIG1vcmUgdGhlbiBvbmNlCisgICAgICAgICAgICAgICAgICAgICAvLyBh
bmQgdG8gYXZvaWQgbm90aWZpbmcgYSBjaGFuZ2UgbW9yZSB0aGVuIG9uY2UuCisgICAgYm9vbCBt
X3Rlcm1pbmF0ZWQ7Cit9OworCit9CisKKyNlbmRpZiAvLyBNZWRpYVF1ZXJ5TWF0Y2hlcl9oCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKaW5kZXggMWMzY2MxYy4uOTM0YmUyYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNiw2ICs2LDcgQEAK
ICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDkg
VG9yY2ggTW9iaWxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2ht
b2JpbGUuY29tLykKICAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC04OSw2
ICs5MCw4IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oIgogI2luY2x1ZGUg
IktleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTWVkaWFR
dWVyeUxpc3QuaCIKKyNpbmNsdWRlICJNZWRpYVF1ZXJ5TWF0Y2hlci5oIgogI2luY2x1ZGUgIk1l
c3NhZ2VFdmVudC5oIgogI2luY2x1ZGUgIk1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJNb3VzZUV2
ZW50V2l0aEhpdFRlc3RSZXN1bHRzLmgiCkBAIC01NTgsNiArNTYxLDE2IEBAIERvY3VtZW50Ojp+
RG9jdW1lbnQoKQogICAgICAgICBtX3N0eWxlU2hlZXRzLT5kb2N1bWVudERlc3Ryb3llZCgpOwog
CiAgICAgbV93ZWFrUmVmZXJlbmNlLT5jbGVhcigpOworCisgICAgaWYgKG1fbWVkaWFRdWVyeU1h
dGNoZXIpCisgICAgICAgIG1fbWVkaWFRdWVyeU1hdGNoZXItPnRlcm1pbmF0ZSgpOworfQorCitQ
YXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0PiBEb2N1bWVudDo6bWF0Y2hNZWRpYShjb25zdCBTdHJp
bmcmIG1lZGlhKQoreworICAgIGlmICghbV9tZWRpYVF1ZXJ5TWF0Y2hlcikKKyAgICAgICAgbV9t
ZWRpYVF1ZXJ5TWF0Y2hlciA9IE1lZGlhUXVlcnlNYXRjaGVyOjpjcmVhdGUodGhpcyk7CisgICAg
cmV0dXJuIG1fbWVkaWFRdWVyeU1hdGNoZXItPm1hdGNoTWVkaWEobWVkaWEpOwogfQogCiAjaWYg
VVNFKEpTQykKQEAgLTI4NDgsNiArMjg2MSw5IEBAIHZvaWQgRG9jdW1lbnQ6OnN0eWxlU2VsZWN0
b3JDaGFuZ2VkKFN0eWxlU2VsZWN0b3JVcGRhdGVGbGFnIHVwZGF0ZUZsYWcpCiAgICAgICAgIGlm
ICh2aWV3KCkpCiAgICAgICAgICAgICB2aWV3KCktPnNjaGVkdWxlUmVsYXlvdXQoKTsKICAgICB9
CisKKyAgICBpZiAobV9tZWRpYVF1ZXJ5TWF0Y2hlcikKKyAgICAgICAgbV9tZWRpYVF1ZXJ5TWF0
Y2hlci0+ZXZhbHVhdGUoKTsKIH0KIAogdm9pZCBEb2N1bWVudDo6YWRkU3R5bGVTaGVldENhbmRp
ZGF0ZU5vZGUoTm9kZSogbm9kZSwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBkYzdk
OWU4Li5kNjI0ZDhmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTUsNiArNSw3IEBACiAgKiAgICAgICAgICAgKEMpIDIw
MDYgQWxleGV5IFByb3NrdXJ5YWtvdiAoYXBAd2Via2l0Lm9yZykKICAqIENvcHlyaWdodCAoQykg
MjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDkgVG9yY2ggTW9iaWxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLykK
KyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNp
ZGlhcnkoLWllcykKICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtOTIsNiArOTMsOCBAQCBjbGFzcyBJ
bnRQb2ludDsKIGNsYXNzIERPTVdyYXBwZXJXb3JsZDsKIGNsYXNzIEpTTm9kZTsKIGNsYXNzIE1l
ZGlhQ2FuU3RhcnRMaXN0ZW5lcjsKK2NsYXNzIE1lZGlhUXVlcnlMaXN0OworY2xhc3MgTWVkaWFR
dWVyeU1hdGNoZXI7CiBjbGFzcyBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzOwogY2xhc3Mg
Tm9kZUZpbHRlcjsKIGNsYXNzIE5vZGVJdGVyYXRvcjsKQEAgLTE5Niw2ICsxOTksOCBAQCBwdWJs
aWM6CiAgICAgfQogICAgIHZpcnR1YWwgfkRvY3VtZW50KCk7CiAKKyAgICBQYXNzUmVmUHRyPE1l
ZGlhUXVlcnlMaXN0PiBtYXRjaE1lZGlhKGNvbnN0IFN0cmluZyYpOworCiAgICAgdXNpbmcgQ29u
dGFpbmVyTm9kZTo6cmVmOwogICAgIHVzaW5nIENvbnRhaW5lck5vZGU6OmRlcmVmOwogCkBAIC0x
MzEwLDYgKzEzMTUsOCBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBpbnQgbV9sb2FkRXZlbnRE
ZWxheUNvdW50OworCisgICAgUmVmUHRyPE1lZGlhUXVlcnlNYXRjaGVyPiBtX21lZGlhUXVlcnlN
YXRjaGVyOwogfTsKIAogaW5saW5lIGJvb2wgRG9jdW1lbnQ6Omhhc0VsZW1lbnRXaXRoSWQoQXRv
bWljU3RyaW5nSW1wbCogaWQpIGNvbnN0CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmNwcCBiL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IDE1ZjNlZDEuLjMyZjVm
YmUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykg
MjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTY0LDcgKzY1LDcgQEAKICNp
bmNsdWRlICJJbnNwZWN0b3JUaW1lbGluZUFnZW50LmgiCiAjaW5jbHVkZSAiS1VSTC5oIgogI2lu
Y2x1ZGUgIkxvY2F0aW9uLmgiCi0jaW5jbHVkZSAiU3R5bGVNZWRpYS5oIgorI2luY2x1ZGUgIk1l
ZGlhUXVlcnlMaXN0LmgiCiAjaW5jbHVkZSAiTWVzc2FnZUV2ZW50LmgiCiAjaW5jbHVkZSAiTmF2
aWdhdG9yLmgiCiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uQ2VudGVyLmgiCkBAIC04MCw2ICs4MSw3
IEBACiAjaW5jbHVkZSAiU3RvcmFnZS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VBcmVhLmgiCiAjaW5j
bHVkZSAiU3RvcmFnZU5hbWVzcGFjZS5oIgorI2luY2x1ZGUgIlN0eWxlTWVkaWEuaCIKICNpbmNs
dWRlICJTdWRkZW5UZXJtaW5hdGlvbi5oIgogI2luY2x1ZGUgIldlYktpdFBvaW50LmgiCiAjaW5j
bHVkZSA8YWxnb3JpdGhtPgpAQCAtNDA3LDYgKzQwOSwxMSBAQCBTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBET01XaW5kb3c6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdAogICAgIHJldHVy
biBkb2N1bWVudCgpOwogfQogCitQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0PiBET01XaW5kb3c6
Om1hdGNoTWVkaWEoY29uc3QgU3RyaW5nJiBtZWRpYSkKK3sKKyAgICByZXR1cm4gZG9jdW1lbnQo
KSA/IGRvY3VtZW50KCktPm1hdGNoTWVkaWEobWVkaWEpIDogMDsKK30KKwogdm9pZCBET01XaW5k
b3c6OmRpc2Nvbm5lY3RGcmFtZSgpCiB7CiAgICAgbV9mcmFtZSA9IDA7CkBAIC00OTgsNiArNTA1
LDcgQEAgdm9pZCBET01XaW5kb3c6OmNsZWFyKCkKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFT
RSkKICAgICBtX2lkYkZhY3RvcnkgPSAwOwogI2VuZGlmCisKIH0KIAogI2lmIEVOQUJMRShPUklF
TlRBVElPTl9FVkVOVFMpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmggYi9X
ZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKaW5kZXggMTQ3MDYyOC4uYmQ3YjBkZSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCisrKyBiL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cu
aApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDkg
QXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjAsMTAgKzYxLDExIEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICBjbGFzcyBJbnNwZWN0b3JUaW1lbGluZUFnZW50OwogICAgIGNsYXNzIExvY2FsRmls
ZVN5c3RlbTsKICAgICBjbGFzcyBMb2NhdGlvbjsKLSAgICBjbGFzcyBTdHlsZU1lZGlhOworICAg
IGNsYXNzIE1lZGlhUXVlcnlMaXN0OwogICAgIGNsYXNzIE5hdmlnYXRvcjsKICAgICBjbGFzcyBO
b2RlOwogICAgIGNsYXNzIE5vdGlmaWNhdGlvbkNlbnRlcjsKKyAgICBjbGFzcyBTdHlsZU1lZGlh
OwogCiAjaWYgRU5BQkxFKFdFQl9USU1JTkcpCiAgICAgY2xhc3MgUGVyZm9ybWFuY2U7CkBAIC05
OSw2ICsxMDEsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgdm9pZCBjbGVhcigp
OwogCisgICAgICAgIFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3Q+IG1hdGNoTWVkaWEoY29uc3Qg
U3RyaW5nJik7CisKICNpZiBFTkFCTEUoT1JJRU5UQVRJT05fRVZFTlRTKQogICAgICAgICAvLyBU
aGlzIGlzIHRoZSBpbnRlcmZhY2Ugb3JpZW50YXRpb24gaW4gZGVncmVlcy4gU29tZSBleGFtcGxl
cyBhcmU6CiAgICAgICAgIC8vICAwIGlzIHN0cmFpZ2h0IHVwOyAtOTAgaXMgd2hlbiB0aGUgZGV2
aWNlIGlzIHJvdGF0ZWQgOTAgY2xvY2t3aXNlOwpAQCAtNDYyLDcgKzQ2Niw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICBpbmxpbmUgU3RyaW5nIERPTVdpbmRvdzo6ZGVmYXVsdFN0YXR1cygp
IGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gbV9kZWZhdWx0U3RhdHVzOwotICAgIH0gCisg
ICAgfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuaWRsIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKaW5kZXggYjFjMjky
YS4uNDA0ZmMwOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKKysrIGIv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKQEAgLTE0MSw3ICsxNDEsOCBAQCBtb2R1bGUgd2lu
ZG93IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERvY3VtZW50IGRvY3VtZW50OwogCiAg
ICAgICAgIC8vIENTU09NIFZpZXcgTW9kdWxlCi0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBT
dHlsZU1lZGlhIHN0eWxlTWVkaWE7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTdHlsZU1l
ZGlhIHN0eWxlTWVkaWE7IC8vIGRlcHJlY2F0ZWQKKyAgICAgICAgTWVkaWFRdWVyeUxpc3QgbWF0
Y2hNZWRpYShpbiBET01TdHJpbmcgcXVlcnkpOwogCiAgICAgICAgIC8vIERPTSBMZXZlbCAyIFN0
eWxlIEludGVyZmFjZQogICAgICAgICBDU1NTdHlsZURlY2xhcmF0aW9uIGdldENvbXB1dGVkU3R5
bGUoaW4gRWxlbWVudCBlbGVtZW50LAotLSAKMS43LjIuMgoK
</data>
<flag name="review"
          id="56478"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67971</attachid>
            <date>2010-09-17 16:40:17 -0700</date>
            <delta_ts>2010-09-22 15:33:49 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-Implement-CSSOM-View-matchMedia-interface.patch</filename>
            <type>text/plain</type>
            <size>89487</size>
            <attacher name="Luiz Agostini">luiz</attacher>
            
              <data encoding="base64">RnJvbSBhYjJiOWJhMWJiNjFiNGJlM2I1YWYzNmI0NTExZTM4YzJhZWQ0MTc0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWl6IEFnb3N0aW5pIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IEZyaSwgMTcgU2VwIDIwMTAgMjA6MDM6MTMgLTAzMDAKU3ViamVjdDogW1BB
VENIXSBJbXBsZW1lbnQgQ1NTT00gVmlldyBtYXRjaE1lZGlhIGludGVyZmFjZQogaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3MjA1CgpSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KCldlYkNvcmU6CgpOZXcgaW50ZXJmYWNlcyBtYXkgYmUgdXNlZCB0byBldmFsdWF0
ZSBtZWRpYSBxdWVyaWVzIGFuZCB0byBhc3NvY2lhdGUgbGlzdGVuZXJzCnRvIG1lZGlhIHF1ZXJp
ZXMuIFRob3NlIGxpc3RlbmVycyBhcmUgY2FsbGVkIHdoZW5ldmVyIHRoZSBhc3NvY2lhdGVkIHF1
ZXJ5IGNoYW5nZXMuClNwZWNpZmljYXRpb24gbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9kZXYudzMu
b3JnL2Nzc3dnL2Nzc29tLXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2UKCk5ldyBp
bnRlcmZhY2VzOgoKKiBjc3MvTWVkaWFRdWVyeUxpc3QuaWRsOiBBZGRlZC4KKiBjc3MvTWVkaWFR
dWVyeUxpc3RMaXN0ZW5lci5pZGw6IEFkZGVkLgoKQ2xhc3NlcyBNZWRpYVF1ZXJ5TGlzdCBhbmQg
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci4KCiogY3NzL01lZGlhUXVlcnlMaXN0LmNwcDogQWRkZWQu
CihXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdDo6Y3JlYXRlKToKKFdlYkNvcmU6Ok1lZGlhUXVlcnlM
aXN0OjpNZWRpYVF1ZXJ5TGlzdCk6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdDo6fk1lZGlhUXVl
cnlMaXN0KToKKFdlYkNvcmU6Ok1lZGlhUXVlcnlMaXN0OjptZWRpYSk6CihXZWJDb3JlOjpNZWRp
YVF1ZXJ5TGlzdDo6YWRkTGlzdGVuZXIpOgooV2ViQ29yZTo6TWVkaWFRdWVyeUxpc3Q6OnJlbW92
ZUxpc3RlbmVyKToKKFdlYkNvcmU6Ok1lZGlhUXVlcnlMaXN0OjpldmFsdWF0ZSk6CihXZWJDb3Jl
OjpNZWRpYVF1ZXJ5TGlzdDo6c2V0TWF0Y2hlcyk6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdDo6
Y2hhbmdlZCk6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdDo6bWF0Y2hlcyk6CiogY3NzL01lZGlh
UXVlcnlMaXN0Lmg6IEFkZGVkLgoqIGNzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmg6IEFkZGVk
LgooV2ViQ29yZTo6TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6TWVkaWFRdWVyeUxpc3RMaXN0ZW5l
cik6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjp+TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lcik6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjp0eXBlKToKCk1lZGlhUXVl
cnlMaXN0TGlzdGVuZXIgaW1wbGVtZW50YXRpb24gdXNlZCBieSBKUyBhbmQgVjg6CgoqIGJpbmRp
bmdzL1NjcmlwdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwOiBBZGRlZC4KKFdlYkNvcmU6OlNj
cmlwdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OlNjcmlwdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIp
OgooV2ViQ29yZTo6U2NyaXB0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6cXVlcnlDaGFuZ2VkKToK
KFdlYkNvcmU6OlNjcmlwdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OmlzRXF1YWxUbyk6CiogYmlu
ZGluZ3MvU2NyaXB0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oOiBBZGRlZC4KKFdlYkNvcmU6OlNj
cmlwdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OmNyZWF0ZSk6CgpUbyBhdm9pZCBhZGRpbmcgY29k
ZSB0byBjbGFzc2VzIERPTVdpbmRvdyBhbmQgRG9jdW1lbnQgYSBuZXcgY2xhc3MgTWVkaWFRdWVy
eU1hdGNoZXIgd2FzCmNyZWF0ZWQuCgoqIGNzcy9NZWRpYVF1ZXJ5TWF0Y2hlci5jcHA6IEFkZGVk
LgooV2ViQ29yZTo6TWVkaWFRdWVyeU1hdGNoZXI6Okxpc3RlbmVyOjpMaXN0ZW5lcik6CihXZWJD
b3JlOjpNZWRpYVF1ZXJ5TWF0Y2hlcjo6TGlzdGVuZXI6On5MaXN0ZW5lcik6CihXZWJDb3JlOjpN
ZWRpYVF1ZXJ5TWF0Y2hlcjo6TGlzdGVuZXI6OmV2YWx1YXRlKToKKFdlYkNvcmU6Ok1lZGlhUXVl
cnlNYXRjaGVyOjpNZWRpYVF1ZXJ5TWF0Y2hlcik6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5TWF0Y2hl
cjo6fk1lZGlhUXVlcnlNYXRjaGVyKToKKFdlYkNvcmU6Ok1lZGlhUXVlcnlNYXRjaGVyOjp0ZXJt
aW5hdGUpOgooV2ViQ29yZTo6TWVkaWFRdWVyeU1hdGNoZXI6Om1lZGlhVHlwZSk6CihXZWJDb3Jl
OjpNZWRpYVF1ZXJ5TWF0Y2hlcjo6cHJlcGFyZUV2YWx1YXRvcik6CihXZWJDb3JlOjpNZWRpYVF1
ZXJ5TWF0Y2hlcjo6ZXZhbHVhdGUpOgooV2ViQ29yZTo6TWVkaWFRdWVyeU1hdGNoZXI6Om1hdGNo
TWVkaWEpOgooV2ViQ29yZTo6TWVkaWFRdWVyeU1hdGNoZXI6OmFkZExpc3RlbmVyKToKKFdlYkNv
cmU6Ok1lZGlhUXVlcnlNYXRjaGVyOjpyZW1vdmVMaXN0ZW5lcik6CiogY3NzL01lZGlhUXVlcnlN
YXRjaGVyLmg6IEFkZGVkLgooV2ViQ29yZTo6TWVkaWFRdWVyeU1hdGNoZXI6OmNyZWF0ZSk6CihX
ZWJDb3JlOjpNZWRpYVF1ZXJ5TWF0Y2hlcjo6ZXZhbFJvdW5kKToKKFdlYkNvcmU6Ok1lZGlhUXVl
cnlNYXRjaGVyOjpMaXN0ZW5lcjo6bGlzdGVuZXIpOgooV2ViQ29yZTo6TWVkaWFRdWVyeU1hdGNo
ZXI6Okxpc3RlbmVyOjpxdWVyeSk6CgpEb2N1bWVudCBhbmQgRE9NV2luZG93IGhhdmUgY2hhbmdl
ZCB0byBzdXBwb3J0IG5ldyBmZWF0dXJlcy4gRE9NV2luZG93IGlzIHRoZSBjbGFzcyB0aGF0CnB1
Ymxpc2hlcyBtZXRob2RzIG1hdGNoTWVkaWEgYnV0IGZvciBwYWdlIGNhY2hlIHRvIHdvcmsgcHJv
cGVybHkgIHRoZSByZWZlcmVuY2UgdG8gdGhlCk1lZGlhUXVlcnlNYXRjaGVyIGlzIGtlcHQgYnkg
RG9jdW1lbnQgaW5zdGFuY2UuCgoqIGRvbS9Eb2N1bWVudC5jcHA6CihXZWJDb3JlOjpEb2N1bWVu
dDo6fkRvY3VtZW50KToKKFdlYkNvcmU6OkRvY3VtZW50OjptYXRjaE1lZGlhKToKKFdlYkNvcmU6
OkRvY3VtZW50OjpzdHlsZVNlbGVjdG9yQ2hhbmdlZCk6CiogZG9tL0RvY3VtZW50Lmg6CiogcGFn
ZS9ET01XaW5kb3cuY3BwOgooV2ViQ29yZTo6RE9NV2luZG93OjptYXRjaE1lZGlhKToKKiBwYWdl
L0RPTVdpbmRvdy5oOgoqIHBhZ2UvRE9NV2luZG93LmlkbDoKClNvbWUgYWRqdXN0bWVudHMgdG8g
Y29kZSBnZW5lcmF0b3JzOgoKKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0
LnBtOgoqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgoqIGJpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgoKYnVpbGQgc3lzdGVtOgoKKiBEZXJpdmVkU291cmNl
cy5tYWtlOgoqIEdOVW1ha2VmaWxlLmFtOgoqIGJpbmRpbmdzL2dvYmplY3QvR05VbWFrZWZpbGUu
YW06CiogV2ViQ29yZS5neXBpOgoqIFdlYkNvcmUucHJpOgoqIFdlYkNvcmUucHJvOgoqIFdlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgoqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKClRlc3RzOiBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDEuaHRtbAogICAgICAg
ZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAyLmh0bWwKICAgICAgIGZhc3QvbWVkaWEvbWVk
aWEtcXVlcnktbGlzdC0wMy5odG1sCgpMYXlvdXRUZXN0czoKCk5ldyBwcm9wZXJ0eSBtYXRjaE1l
ZGlhIHdhcyBhZGRlZCB0byB3aW5kb3cuCgoqIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVy
dGllcy1leHBlY3RlZC50eHQ6CiogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1kZXNj
cmlwdG9ycy1leHBlY3RlZC50eHQ6Cgp3aW5kb3cubWF0Y2hNZWRpYSBhbmQgTWVkaWFRdWVyeUxp
c3QgdGVzdHMuCgoqIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMS1leHBlY3RlZC50eHQ6
IEFkZGVkLgoqIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMS5odG1sOiBBZGRlZC4KClRo
ZSBmb2xsb3dpbmcgdGVzdHMgZGVwZW5kIG9uIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRWaWV3
TW9kZU1lZGlhRmVhdHVyZSgpIHRvIHdvcmsuCkFzIGl0IGlzIG9ubHkgaW1wbGVtZW50ZWQgYnkg
UXQgYW5kIEd0ayB0aGUgdGVzdHMgbmVlZGVkIHRvIGJlIHNraXBwZWQgaW4gYWxsIG90aGVyIHBs
YXRmb3Jtcy4KCiogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAyLWV4cGVjdGVkLnR4dDog
QWRkZWQuCiogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAyLmh0bWw6IEFkZGVkLgoqIGZh
c3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMy1leHBlY3RlZC50eHQ6IEFkZGVkLgoqIGZhc3Qv
bWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMy5odG1sOiBBZGRlZC4KKiBwbGF0Zm9ybS9jaHJvbWl1
bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CiogcGxhdGZvcm0vbWFjL1NraXBwZWQ6CiogcGxhdGZv
cm0vd2luL1NraXBwZWQ6Ci0tLQogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDI4ICsrKwogLi4uL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJv
cGVydGllcy1leHBlY3RlZC50eHQgfCAgICAxICsKIC4uLi93aW5kb3ctcHJvcGVydHktZGVzY3Jp
cHRvcnMtZXhwZWN0ZWQudHh0ICAgICAgIHwgICAgMSArCiAuLi4vZmFzdC9tZWRpYS9tZWRpYS1x
dWVyeS1saXN0LTAxLWV4cGVjdGVkLnR4dCAgICB8ICAgMTUgKysKIExheW91dFRlc3RzL2Zhc3Qv
bWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMS5odG1sICAgIHwgICA1MiArKysrKysKIC4uLi9mYXN0
L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDItZXhwZWN0ZWQudHh0ICAgIHwgICAyNSArKysKIExh
eW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMi5odG1sICAgIHwgICA2MSAr
KysrKysrCiAuLi4vZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAzLWV4cGVjdGVkLnR4dCAg
ICB8ICAgNDEgKysrKysKIExheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0w
My5odG1sICAgIHwgICA3MCArKysrKysrKwogLi4uL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhw
ZWN0YXRpb25zLnR4dCAgICAgICAgfCAgICA0ICstCiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
U2tpcHBlZCAgICAgICAgICAgICAgICAgICB8ICAgIDQgKy0KIExheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbi9Ta2lwcGVkICAgICAgICAgICAgICAgICAgIHwgICAgNCArLQogV2ViQ29yZS9DaGFuZ2VM
b2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTAxICsrKysrKysrKysrCiBX
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDQg
Ky0KIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAxMSArLQogV2ViQ29yZS9XZWJDb3JlLmd5cGkgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgIDEwICstCiBXZWJDb3JlL1dlYkNvcmUucHJpICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgIDIgKwogV2ViQ29yZS9XZWJDb3JlLnBybyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgICA5ICstCiBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qICAgICAgICAgICAgICB8ICAgODQgKysrKysrKysrCiBXZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiAgICAgICAgICB8ICAgNDAgKysrKysKIFdlYkNvcmUvYmluZGlu
Z3MvU2NyaXB0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgIHwgICA2NCArKysrKysrCiBXZWJD
b3JlL2JpbmRpbmdzL1NjcmlwdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCAgICB8ICAgNTIgKysr
KysrCiBXZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvR05VbWFrZWZpbGUuYW0gICAgICAgICAgICB8
ICAgIDMgKwogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBt
ICAgfCAgIDE5ICsrLQogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bSAgICAgICAgfCAgIDExICsrCiBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
clY4LnBtICAgICAgICB8ICAgMTEgKy0KIFdlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0LmNwcCAg
ICAgICAgICAgICAgICAgICAgIHwgIDEwMSArKysrKysrKysrKwogV2ViQ29yZS9jc3MvTWVkaWFR
dWVyeUxpc3QuaCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDc0ICsrKysrKysrCiBXZWJDb3Jl
L2Nzcy9NZWRpYVF1ZXJ5TGlzdC5pZGwgICAgICAgICAgICAgICAgICAgICB8ICAgMzMgKysrKwog
V2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oICAgICAgICAgICAgICAgfCAgIDYx
ICsrKysrKysKIFdlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaWRsICAgICAgICAg
ICAgIHwgICAzNSArKysrCiBXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TWF0Y2hlci5jcHAgICAgICAg
ICAgICAgICAgICB8ICAxNzcgKysrKysrKysrKysrKysrKysrKysKIFdlYkNvcmUvY3NzL01lZGlh
UXVlcnlNYXRjaGVyLmggICAgICAgICAgICAgICAgICAgIHwgIDE0NiArKysrKysrKysrKysrKysr
CiBXZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg
MTYgKysKIFdlYkNvcmUvZG9tL0RvY3VtZW50LmggICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwgICAgNyArCiBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgIDkgKy0KIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuaCAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgICAgNiArLQogV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgICAzICstCiAzOCBmaWxlcyBjaGFuZ2VkLCAxMzgwIGluc2VydGlv
bnMoKyksIDE1IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zh
c3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMS1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBMYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDEuaHRtbAogY3Jl
YXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0w
Mi1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L21lZGlh
L21lZGlhLXF1ZXJ5LWxpc3QtMDIuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3Rz
L2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMy1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMuaHRtbAog
bW9kZSBjaGFuZ2UgMTAwNjQ0ID0+IDEwMDc1NSBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9iaW5kaW5ncy9TY3JpcHRNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyLmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvYmluZGlu
Z3MvU2NyaXB0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2Vi
Q29yZS9jc3MvTWVkaWFRdWVyeUxpc3QuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9j
c3MvTWVkaWFRdWVyeUxpc3QuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvY3NzL01lZGlh
UXVlcnlMaXN0LmlkbAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvY3NzL01lZGlhUXVlcnlM
aXN0TGlzdGVuZXIuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvY3NzL01lZGlhUXVlcnlM
aXN0TGlzdGVuZXIuaWRsCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9jc3MvTWVkaWFRdWVy
eU1hdGNoZXIuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9jc3MvTWVkaWFRdWVyeU1h
dGNoZXIuaAoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCA5YmQ0MDQ1Li43ZTY1OTEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAK
KzIwMTAtMDktMTcgIEx1aXogQWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVt
ZW50IENTU09NIFZpZXcgbWF0Y2hNZWRpYSBpbnRlcmZhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3MjA1CisKKyAgICAgICAgTmV3IHByb3BlcnR5
IG1hdGNoTWVkaWEgd2FzIGFkZGVkIHRvIHdpbmRvdy4KKworICAgICAgICAqIGZhc3QvZG9tL1dp
bmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20v
V2luZG93L3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy1leHBlY3RlZC50eHQ6CisKKyAgICAg
ICAgd2luZG93Lm1hdGNoTWVkaWEgYW5kIE1lZGlhUXVlcnlMaXN0IHRlc3RzLgorCisgICAgICAg
ICogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAxLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAxLmh0bWw6IEFkZGVkLgorCisg
ICAgICAgIFRoZSBmb2xsb3dpbmcgdGVzdHMgZGVwZW5kIG9uIExheW91dFRlc3RDb250cm9sbGVy
OjpzZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSgpIHRvIHdvcmsuCisgICAgICAgIEFzIGl0IGlzIG9u
bHkgaW1wbGVtZW50ZWQgYnkgUXQgYW5kIEd0ayB0aGUgdGVzdHMgbmVlZGVkIHRvIGJlIHNraXBw
ZWQgaW4gYWxsIG90aGVyIHBsYXRmb3Jtcy4KKworICAgICAgICAqIGZhc3QvbWVkaWEvbWVkaWEt
cXVlcnktbGlzdC0wMi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWEv
bWVkaWEtcXVlcnktbGlzdC0wMi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhL21l
ZGlhLXF1ZXJ5LWxpc3QtMDMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21l
ZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
Y2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9T
a2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9Ta2lwcGVkOgorCiAyMDEwLTA5LTE2ICBU
b255IEdlbnRpbGNvcmUgIDx0b255Z0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgQWRhbSBCYXJ0aC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93
aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5k
b3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CmluZGV4IGU1NTNiZWMuLjdlOTYzNTAg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGll
cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1w
cm9wZXJ0aWVzLWV4cGVjdGVkLnR4dApAQCAtMjIzNSw2ICsyMjM1LDcgQEAgd2luZG93LmxvY2F0
aW9uYmFyLnZpc2libGUgW2Jvb2xlYW5dCiB3aW5kb3cubG9nIFtmdW5jdGlvbl0KIHdpbmRvdy5s
b2dQcm9wZXJ0aWVzIFtmdW5jdGlvbl0KIHdpbmRvdy5sb2dWYWx1ZSBbZnVuY3Rpb25dCit3aW5k
b3cubWF0Y2hNZWRpYSBbZnVuY3Rpb25dCiB3aW5kb3cubWVudWJhciBbb2JqZWN0IEJhckluZm9d
CiB3aW5kb3cubWVudWJhci52aXNpYmxlIFtib29sZWFuXQogd2luZG93Lm1vdmVCeSBbZnVuY3Rp
b25dCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3Bl
cnR5LWRlc2NyaXB0b3JzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRv
dy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMtZXhwZWN0ZWQudHh0CmluZGV4IGE3NmJmNzMu
LjMzNDljODAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ct
cHJvcGVydHktZGVzY3JpcHRvcnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMtZXhwZWN0ZWQudHh0CkBAIC01
MDQsNiArNTA0LDcgQEAgUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRv
dywgJ2dldE1hdGNoZWRDU1NSdWxlcycpIGlzIHVuZGVmaW5lZC4KIFBBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdnZXRTZWxlY3Rpb24nKSBpcyB1bmRlZmluZWQu
CiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnaGFzT3duUHJv
cGVydHknKSBpcyB1bmRlZmluZWQuCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3Iod2luZG93LCAnaXNQcm90b3R5cGVPZicpIGlzIHVuZGVmaW5lZC4KK1BBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdtYXRjaE1lZGlhJykgaXMgdW5kZWZpbmVk
LgogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ21vdmVCeScp
IGlzIHVuZGVmaW5lZC4KIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5k
b3csICdtb3ZlVG8nKSBpcyB1bmRlZmluZWQuCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3Iod2luZG93LCAnb3BlbicpIGlzIHVuZGVmaW5lZC4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDEtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRlYmEzZjUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDEtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTUgQEAKK1Rlc3QgdGhlIE1lZGlhUXVlcnlMaXN0IGludGVyZmFjZTogaHR0
cDovL2Rldi53My5vcmcvY3Nzd2cvY3Nzb20tdmlldy8jdGhlLW1lZGlhcXVlcnlsaXN0LWludGVy
ZmFjZS4KKworInNjcmVlbiIgZXZhbHVhdGVzIHRvIHRydWU6IFBBU1MKKyJwcm9qZWN0aW9uIiBl
dmFsdWF0ZXMgdG8gZmFsc2U6IFBBU1MKKyJhbGwgYW5kIChjb2xvcikiIGV2YWx1YXRlcyB0byB0
cnVlOiBQQVNTCisibm90IHByb2plY3Rpb24gYW5kIChjb2xvcikiIGV2YWx1YXRlcyB0byB0cnVl
OiBQQVNTCisiKGNvbG9yKSIgZXZhbHVhdGVzIHRvIHRydWU6IFBBU1MKKyIoY29sb3IiIGV2YWx1
YXRlcyB0byBmYWxzZTogUEFTUworImNvbG9yIiBldmFsdWF0ZXMgdG8gZmFsc2U6IFBBU1MKKyJn
YXJiYWdlIiBldmFsdWF0ZXMgdG8gZmFsc2U6IFBBU1MKKyIobWluLWRldmljZS13aWR0aDogMTAw
cHgpIiBldmFsdWF0ZXMgdG8gdHJ1ZTogUEFTUworIihtaW4tZGV2aWNlLXdpZHRoOiA1MDAwMHB4
KSIgZXZhbHVhdGVzIHRvIGZhbHNlOiBQQVNTCisiKC13ZWJraXQtYW5pbWF0aW9uOiAxKSIgZXZh
bHVhdGVzIHRvIHRydWU6IFBBU1MKKyIoLXdlYmtpdC10cmFuc2Zvcm0tMmQpIiBldmFsdWF0ZXMg
dG8gdHJ1ZTogUEFTUworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlh
LXF1ZXJ5LWxpc3QtMDEuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnkt
bGlzdC0wMS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzZGNjNjcK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxp
c3QtMDEuaHRtbApAQCAtMCwwICsxLDUyIEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPlRlc3Qg
Q1NTT00gVmlldyBtb2R1bGU6IE1lZGlhUXVlcnlMaXN0IGludGVyZmFjZTwvdGl0bGU+Cis8c3R5
bGUgdHlwZT0idGV4dC9jc3MiPgorCis8L3N0eWxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyAgICBm
dW5jdGlvbiBsb2cobSkKKyAgICB7CisgICAgICAgIHZhciByZXN1bHRzID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3Jlc3VsdHMnKTsKKyAgICAgICAgcmVzdWx0cy5pbm5lckhUTUwgKz0gbSAr
ICc8YnI+JzsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0UXVlcnkocXVlcnksIGV4cGVjdGVk
KQorICAgIHsKKyAgICAgICAgdmFyIGlzVHJ1ZSA9IHdpbmRvdy5tYXRjaE1lZGlhKHF1ZXJ5KS5t
YXRjaGVzOworICAgICAgICB2YXIgbWVzc2FnZSA9ICdcIicgKyBxdWVyeSArICdcIiBldmFsdWF0
ZXMgdG8gJyArIChpc1RydWUgPyAndHJ1ZScgOiAnZmFsc2UnKTsKKyAgICAgICAgbWVzc2FnZSAr
PSAoaXNUcnVlID09IGV4cGVjdGVkKSA/ICc6IFBBU1MnIDogJzogRkFJTCc7CisgICAgICAgIGxv
ZyhtZXNzYWdlKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0cygpCisgICAgeworICAg
ICAgICB0ZXN0UXVlcnkoJ3NjcmVlbicsIHRydWUpOworICAgICAgICB0ZXN0UXVlcnkoJ3Byb2pl
Y3Rpb24nLCBmYWxzZSk7CisKKyAgICAgICAgdGVzdFF1ZXJ5KCdhbGwgYW5kIChjb2xvciknLCB0
cnVlKTsKKyAgICAgICAgdGVzdFF1ZXJ5KCdub3QgcHJvamVjdGlvbiBhbmQgKGNvbG9yKScsIHRy
dWUpOworICAgICAgICB0ZXN0UXVlcnkoJyhjb2xvciknLCB0cnVlKTsKKyAgICAgICAgdGVzdFF1
ZXJ5KCcoY29sb3InLCBmYWxzZSk7CisgICAgICAgIHRlc3RRdWVyeSgnY29sb3InLCBmYWxzZSk7
CisKKyAgICAgICAgdGVzdFF1ZXJ5KCdnYXJiYWdlJywgZmFsc2UpOworCisgICAgICAgIHRlc3RR
dWVyeSgnKG1pbi1kZXZpY2Utd2lkdGg6IDEwMHB4KScsIHRydWUpOworICAgICAgICB0ZXN0UXVl
cnkoJyhtaW4tZGV2aWNlLXdpZHRoOiA1MDAwMHB4KScsIGZhbHNlKTsKKworICAgICAgICB0ZXN0
UXVlcnkoJygtd2Via2l0LWFuaW1hdGlvbjogMSknLCB0cnVlKTsKKyAgICAgICAgdGVzdFF1ZXJ5
KCcoLXdlYmtpdC10cmFuc2Zvcm0tMmQpJywgdHJ1ZSk7CisgICAgfQorCis8L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdHMoKSI+CisgICAgPHA+VGVzdCB0aGUgTWVkaWFR
dWVyeUxpc3QgaW50ZXJmYWNlOiA8YSBocmVmPSJodHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9jc3Nv
bS12aWV3LyN0aGUtbWVkaWFxdWVyeWxpc3QtaW50ZXJmYWNlIiB0aXRsZT0iQ1NTT00gVmlldyBN
b2R1bGUiPmh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzc29tLXZpZXcvI3RoZS1tZWRpYXF1ZXJ5
bGlzdC1pbnRlcmZhY2U8L2E+LjwvcD4KKyAgICA8ZGl2IGlkPSJyZXN1bHRzIj4KKyAgICA8L2Rp
dj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEv
bWVkaWEtcXVlcnktbGlzdC0wMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlh
L21lZGlhLXF1ZXJ5LWxpc3QtMDItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjYzNjQzZDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjUgQEAK
K1Rlc3QgdGhlIE1lZGlhUXVlcnlMaXN0IGludGVyZmFjZTogaHR0cDovL2Rldi53My5vcmcvY3Nz
d2cvY3Nzb20tdmlldy8jdGhlLW1lZGlhcXVlcnlsaXN0LWludGVyZmFjZS4KKworVGVzdGluZyBh
ZGRMaXN0ZW5lciBpbiBkaWZmZXJlbnQgTWVkaWFRdWVyeUxpc3Qgb2JqZWN0cyBhbmQgdGhlIGNh
bGxiYWNrIGNhbGwgc2VxdWVuY2UKKworLS0tLS0tLS0tLS0tLSBtaW5pbWl6ZWQgLS0tLS0tLS0t
LS0tLQorWzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0
byBmYWxzZQorWzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQpIGNoYW5n
ZWQgdG8gdHJ1ZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hh
bmdlZCB0byBmYWxzZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQp
IGNoYW5nZWQgdG8gdHJ1ZQorLS0tLS0tLS0tLS0tLSBtYXhpbWl6ZWQgLS0tLS0tLS0tLS0tLQor
WzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQpIGNoYW5nZWQgdG8gZmFs
c2UKK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWF4aW1pemVkKSBjaGFuZ2VkIHRv
IHRydWUKK1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSBjaGFuZ2Vk
IHRvIGZhbHNlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1heGltaXplZCkgY2hh
bmdlZCB0byB0cnVlCistLS0tLS0tLS0tLS0tIHdpbmRvd2VkIC0tLS0tLS0tLS0tLS0KK1sxXSAt
IHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQgdG8gdHJ1ZQorWzFd
IC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtYXhpbWl6ZWQpIGNoYW5nZWQgdG8gZmFsc2UK
K1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQgdG8gdHJ1
ZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtYXhpbWl6ZWQpIGNoYW5nZWQgdG8g
ZmFsc2UKKy0tLS0tLS0tLS0tLS0gZmxvYXRpbmcgLS0tLS0tLS0tLS0tLQorWzFdIC0gcXVlcnkg
KC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0byBmYWxzZQorWzFdIC0gcXVl
cnkgKC13ZWJraXQtdmlldy1tb2RlOiBmbG9hdGluZykgY2hhbmdlZCB0byB0cnVlCitbMl0gLSBx
dWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFuZ2VkIHRvIGZhbHNlCitbMl0g
LSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IGZsb2F0aW5nKSBjaGFuZ2VkIHRvIHRydWUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAyLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDIuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZGVjZTQzCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAyLmh0bWwKQEAgLTAs
MCArMSw2MSBAQAorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5UZXN0IENTU09NIFZpZXcgbW9kdWxl
OiBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U8L3RpdGxlPgorPHN0eWxlIHR5cGU9InRleHQvY3Nz
Ij4KKworPC9zdHlsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1
dGYtOCI+CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgICAgZnVuY3Rpb24gbG9nKG0pIHsK
KyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdHMnKS5pbm5lckhUTUwgKz0g
bSArICc8YnI+JzsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjYWxsYmFjazEocXVlcnkpIHsKKyAg
ICAgICAgbG9nKCJbMV0gLSBxdWVyeSAiICsgcXVlcnkubWVkaWEgKyAiIGNoYW5nZWQgdG8gIiAr
IChxdWVyeS5tYXRjaGVzID8gInRydWUiIDogImZhbHNlIikpOworICAgIH0KKworICAgIGZ1bmN0
aW9uIGNhbGxiYWNrMihxdWVyeSkgeworICAgICAgICBsb2coIlsyXSAtIHF1ZXJ5ICIgKyBxdWVy
eS5tZWRpYSArICIgY2hhbmdlZCB0byAiICsgKHF1ZXJ5Lm1hdGNoZXMgPyAidHJ1ZSIgOiAiZmFs
c2UiKSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdHMoKQorICAgIHsKKyAgICAgICAg
aWYgKCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgd2luZG93ZWRRdWVyeSA9IHdpbmRvdy5tYXRjaE1lZGlhKCIoLXdlYmtpdC12aWV3
LW1vZGU6IHdpbmRvd2VkKSIpOworICAgICAgICBmbG9hdGluZ1F1ZXJ5ID0gd2luZG93Lm1hdGNo
TWVkaWEoIigtd2Via2l0LXZpZXctbW9kZTogZmxvYXRpbmcpIik7CisgICAgICAgIG1pbmltaXpl
ZFF1ZXJ5ID0gd2luZG93Lm1hdGNoTWVkaWEoIigtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVk
KSIpOworICAgICAgICBtYXhpbWl6ZWRRdWVyeSA9IHdpbmRvdy5tYXRjaE1lZGlhKCIoLXdlYmtp
dC12aWV3LW1vZGU6IG1heGltaXplZCkiKTsKKworICAgICAgICB3aW5kb3dlZFF1ZXJ5LmFkZExp
c3RlbmVyKGNhbGxiYWNrMSk7CisgICAgICAgIGZsb2F0aW5nUXVlcnkuYWRkTGlzdGVuZXIoY2Fs
bGJhY2sxKTsKKyAgICAgICAgbWluaW1pemVkUXVlcnkuYWRkTGlzdGVuZXIoY2FsbGJhY2sxKTsK
KyAgICAgICAgbWF4aW1pemVkUXVlcnkuYWRkTGlzdGVuZXIoY2FsbGJhY2sxKTsKKworICAgICAg
ICB3aW5kb3dlZFF1ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNrMik7CisgICAgICAgIGZsb2F0aW5n
UXVlcnkuYWRkTGlzdGVuZXIoY2FsbGJhY2syKTsKKyAgICAgICAgbWluaW1pemVkUXVlcnkuYWRk
TGlzdGVuZXIoY2FsbGJhY2syKTsKKyAgICAgICAgbWF4aW1pemVkUXVlcnkuYWRkTGlzdGVuZXIo
Y2FsbGJhY2syKTsKKworICAgICAgICBsb2coIi0tLS0tLS0tLS0tLS0gbWluaW1pemVkIC0tLS0t
LS0tLS0tLS0iKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Vmlld01vZGVNZWRp
YUZlYXR1cmUoIm1pbmltaXplZCIpOworICAgICAgICBsb2coIi0tLS0tLS0tLS0tLS0gbWF4aW1p
emVkIC0tLS0tLS0tLS0tLS0iKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Vmll
d01vZGVNZWRpYUZlYXR1cmUoIm1heGltaXplZCIpOworICAgICAgICBsb2coIi0tLS0tLS0tLS0t
LS0gd2luZG93ZWQgLS0tLS0tLS0tLS0tLSIpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSgid2luZG93ZWQiKTsKKyAgICAgICAgbG9nKCItLS0t
LS0tLS0tLS0tIGZsb2F0aW5nIC0tLS0tLS0tLS0tLS0iKTsKKyAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoImZsb2F0aW5nIik7CisgICAgfQorCis8
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdHMoKSI+CisgICAgPHA+VGVz
dCB0aGUgTWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlOiA8YSBocmVmPSJodHRwOi8vZGV2LnczLm9y
Zy9jc3N3Zy9jc3NvbS12aWV3LyN0aGUtbWVkaWFxdWVyeWxpc3QtaW50ZXJmYWNlIiB0aXRsZT0i
Q1NTT00gVmlldyBNb2R1bGUiPmh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzc29tLXZpZXcvI3Ro
ZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2U8L2E+LjwvcD4KKyAgICA8cD5UZXN0aW5nIGFkZExp
c3RlbmVyIGluIGRpZmZlcmVudCBNZWRpYVF1ZXJ5TGlzdCBvYmplY3RzIGFuZCB0aGUgY2FsbGJh
Y2sgY2FsbCBzZXF1ZW5jZTwvcD4KKyAgICA8ZGl2IGlkPSJyZXN1bHRzIj4KKyAgICA8L2Rpdj4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVk
aWEtcXVlcnktbGlzdC0wMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21l
ZGlhLXF1ZXJ5LWxpc3QtMDMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLmYyNGUyMDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21l
ZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDEgQEAKK1Rl
c3QgdGhlIE1lZGlhUXVlcnlMaXN0IGludGVyZmFjZTogaHR0cDovL2Rldi53My5vcmcvY3Nzd2cv
Y3Nzb20tdmlldy8jdGhlLW1lZGlhcXVlcnlsaXN0LWludGVyZmFjZS4KKworVGVzdGluZyByZW1v
dmVMaXN0ZW5lciBpbiBkaWZmZXJlbnQgTWVkaWFRdWVyeUxpc3Qgb2JqZWN0cyBhbmQgdGhlIGNh
bGxiYWNrIGNhbGwgc2VxdWVuY2UKKworYWRkaW5nIHdpbmRvd2VkWzFdLCBtaW5pbWl6ZWRbMV0s
IHdpbmRvd2VkWzJdIGFuZCBtaW5pbWl6ZWRbMl0KKworLS0tLS0tLS0tLS0tLSBtaW5pbWl6ZWQg
LS0tLS0tLS0tLS0tLQorWzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkg
Y2hhbmdlZCB0byBmYWxzZQorWzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6
ZWQpIGNoYW5nZWQgdG8gdHJ1ZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5k
b3dlZCkgY2hhbmdlZCB0byBmYWxzZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBt
aW5pbWl6ZWQpIGNoYW5nZWQgdG8gdHJ1ZQorLS0tLS0tLS0tLS0tLSB3aW5kb3dlZCAtLS0tLS0t
LS0tLS0tCitbMV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFuZ2Vk
IHRvIHRydWUKK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSBjaGFu
Z2VkIHRvIGZhbHNlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBj
aGFuZ2VkIHRvIHRydWUKK1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVk
KSBjaGFuZ2VkIHRvIGZhbHNlCisKKworcmVtb3Zpbmcgd2luZG93ZWRbMV0gYW5kIG1pbmltaXpl
ZFsyXQorCistLS0tLS0tLS0tLS0tIG1pbmltaXplZCAtLS0tLS0tLS0tLS0tCitbMV0gLSBxdWVy
eSAoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCkgY2hhbmdlZCB0byB0cnVlCitbMl0gLSBx
dWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFuZ2VkIHRvIGZhbHNlCistLS0t
LS0tLS0tLS0tIHdpbmRvd2VkIC0tLS0tLS0tLS0tLS0KK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZp
ZXctbW9kZTogbWluaW1pemVkKSBjaGFuZ2VkIHRvIGZhbHNlCitbMl0gLSBxdWVyeSAoLXdlYmtp
dC12aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFuZ2VkIHRvIHRydWUKKworCithZGRpbmcgd2luZG93
ZWRbMV0gYW5kIG1pbmltaXplZFsyXQorCistLS0tLS0tLS0tLS0tIG1pbmltaXplZCAtLS0tLS0t
LS0tLS0tCitbMV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCkgY2hhbmdl
ZCB0byB0cnVlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFu
Z2VkIHRvIGZhbHNlCitbMV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBj
aGFuZ2VkIHRvIGZhbHNlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXpl
ZCkgY2hhbmdlZCB0byB0cnVlCistLS0tLS0tLS0tLS0tIHdpbmRvd2VkIC0tLS0tLS0tLS0tLS0K
K1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSBjaGFuZ2VkIHRvIGZh
bHNlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFuZ2VkIHRv
IHRydWUKK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQg
dG8gdHJ1ZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQpIGNoYW5n
ZWQgdG8gZmFsc2UKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1x
dWVyeS1saXN0LTAzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxp
c3QtMDMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMmQ0MDhkCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0
LTAzLmh0bWwKQEAgLTAsMCArMSw3MCBAQAorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5UZXN0IENT
U09NIFZpZXcgbW9kdWxlOiBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U8L3RpdGxlPgorPHN0eWxl
IHR5cGU9InRleHQvY3NzIj4KKworPC9zdHlsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBjaGFyc2V0PSJ1dGYtOCI+CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgICAgZnVu
Y3Rpb24gbG9nKG0pIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdHMn
KS5pbm5lckhUTUwgKz0gbSArICc8YnI+JzsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjYWxsYmFj
azEocXVlcnkpIHsKKyAgICAgICAgbG9nKCJbMV0gLSBxdWVyeSAiICsgcXVlcnkubWVkaWEgKyAi
IGNoYW5nZWQgdG8gIiArIChxdWVyeS5tYXRjaGVzID8gInRydWUiIDogImZhbHNlIikpOworICAg
IH0KKworICAgIGZ1bmN0aW9uIGNhbGxiYWNrMihxdWVyeSkgeworICAgICAgICBsb2coIlsyXSAt
IHF1ZXJ5ICIgKyBxdWVyeS5tZWRpYSArICIgY2hhbmdlZCB0byAiICsgKHF1ZXJ5Lm1hdGNoZXMg
PyAidHJ1ZSIgOiAiZmFsc2UiKSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdHMoKQor
ICAgIHsKKyAgICAgICAgaWYgKCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAg
ICAgICByZXR1cm47CisKKyAgICAgICAgd2luZG93ZWRRdWVyeSA9IHdpbmRvdy5tYXRjaE1lZGlh
KCIoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSIpOworICAgICAgICBtaW5pbWl6ZWRRdWVy
eSA9IHdpbmRvdy5tYXRjaE1lZGlhKCIoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCkiKTsK
KworICAgICAgICBsb2coImFkZGluZyB3aW5kb3dlZFsxXSwgbWluaW1pemVkWzFdLCB3aW5kb3dl
ZFsyXSBhbmQgbWluaW1pemVkWzJdPGJyPiIpOworICAgICAgICB3aW5kb3dlZFF1ZXJ5LmFkZExp
c3RlbmVyKGNhbGxiYWNrMSk7CisgICAgICAgIG1pbmltaXplZFF1ZXJ5LmFkZExpc3RlbmVyKGNh
bGxiYWNrMSk7CisgICAgICAgIHdpbmRvd2VkUXVlcnkuYWRkTGlzdGVuZXIoY2FsbGJhY2syKTsK
KyAgICAgICAgbWluaW1pemVkUXVlcnkuYWRkTGlzdGVuZXIoY2FsbGJhY2syKTsKKworICAgICAg
ICBsb2coIi0tLS0tLS0tLS0tLS0gbWluaW1pemVkIC0tLS0tLS0tLS0tLS0iKTsKKyAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoIm1pbmltaXplZCIp
OworICAgICAgICBsb2coIi0tLS0tLS0tLS0tLS0gd2luZG93ZWQgLS0tLS0tLS0tLS0tLSIpOwor
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSgid2lu
ZG93ZWQiKTsKKworICAgICAgICBsb2coIjxicj48YnI+cmVtb3Zpbmcgd2luZG93ZWRbMV0gYW5k
IG1pbmltaXplZFsyXTxicj4iKTsKKyAgICAgICAgd2luZG93ZWRRdWVyeS5yZW1vdmVMaXN0ZW5l
cihjYWxsYmFjazEpOworICAgICAgICBtaW5pbWl6ZWRRdWVyeS5yZW1vdmVMaXN0ZW5lcihjYWxs
YmFjazIpOworCisgICAgICAgIGxvZygiLS0tLS0tLS0tLS0tLSBtaW5pbWl6ZWQgLS0tLS0tLS0t
LS0tLSIpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9kZU1lZGlhRmVh
dHVyZSgibWluaW1pemVkIik7CisgICAgICAgIGxvZygiLS0tLS0tLS0tLS0tLSB3aW5kb3dlZCAt
LS0tLS0tLS0tLS0tIik7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFZpZXdNb2Rl
TWVkaWFGZWF0dXJlKCJ3aW5kb3dlZCIpOworCisgICAgICAgIGxvZygiPGJyPjxicj5hZGRpbmcg
d2luZG93ZWRbMV0gYW5kIG1pbmltaXplZFsyXTxicj4iKTsKKyAgICAgICAgd2luZG93ZWRRdWVy
eS5hZGRMaXN0ZW5lcihjYWxsYmFjazEpOworICAgICAgICBtaW5pbWl6ZWRRdWVyeS5hZGRMaXN0
ZW5lcihjYWxsYmFjazIpOworCisgICAgICAgIGxvZygiLS0tLS0tLS0tLS0tLSBtaW5pbWl6ZWQg
LS0tLS0tLS0tLS0tLSIpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9k
ZU1lZGlhRmVhdHVyZSgibWluaW1pemVkIik7CisgICAgICAgIGxvZygiLS0tLS0tLS0tLS0tLSB3
aW5kb3dlZCAtLS0tLS0tLS0tLS0tIik7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNl
dFZpZXdNb2RlTWVkaWFGZWF0dXJlKCJ3aW5kb3dlZCIpOworCisgICAgfQorCis8L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdHMoKSI+CisgICAgPHA+VGVzdCB0aGUgTWVk
aWFRdWVyeUxpc3QgaW50ZXJmYWNlOiA8YSBocmVmPSJodHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9j
c3NvbS12aWV3LyN0aGUtbWVkaWFxdWVyeWxpc3QtaW50ZXJmYWNlIiB0aXRsZT0iQ1NTT00gVmll
dyBNb2R1bGUiPmh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzc29tLXZpZXcvI3RoZS1tZWRpYXF1
ZXJ5bGlzdC1pbnRlcmZhY2U8L2E+LjwvcD4KKyAgICA8cD5UZXN0aW5nIHJlbW92ZUxpc3RlbmVy
IGluIGRpZmZlcmVudCBNZWRpYVF1ZXJ5TGlzdCBvYmplY3RzIGFuZCB0aGUgY2FsbGJhY2sgY2Fs
bCBzZXF1ZW5jZTwvcD4KKyAgICA8ZGl2IGlkPSJyZXN1bHRzIj4KKyAgICA8L2Rpdj4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rl
c3RfZXhwZWN0YXRpb25zLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3Rf
ZXhwZWN0YXRpb25zLnR4dAppbmRleCBlYjM4YjI0Li5lYmFkYjQ0IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CkBAIC0yNDY5
LDggKzI0NjksMTAgQEAgQlVHMzg1NzggOiBwbHVnaW5zL292ZXJyaWRlLW5vZGUtbWV0aG9kLmh0
bWwgPSBURVhUCiBCVUczODY1MyBNQUMgOiBlZGl0aW5nL3NlbGVjdGlvbi9maW5kLXllbnNpZ24t
YW5kLWJhY2tzbGFzaC5odG1sID0gVEVYVAogQlVHMzg2NTYgOiBmYXN0L21lZGlhL3ByaW50LXJl
c3RvcmVzLXByZXZpb3VzLW1lZGlhdHlwZS5odG1sID0gVEVYVAogCi0vLyBOZWVkcyBsYXlvdXRU
ZXN0Q29udHJvbGxlci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSgpIChpbXBsZW1lbnRlZCBvbiBR
dCBvbmx5KQorLy8gTmVlZHMgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZl
YXR1cmUoKQogQlVHNDA2ODAgU0tJUCA6IGZhc3QvbWVkaWEvdmlldy1tb2RlLW1lZGlhLWZlYXR1
cmUuaHRtbCA9IEZBSUwKK0JVRzQwNjgwIFNLSVAgOiBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxp
c3QtMDIuaHRtbCA9IEZBSUwKK0JVRzQwNjgwIFNLSVAgOiBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5
LWxpc3QtMDMuaHRtbCA9IEZBSUwKIAogLy8gVW5rbm93biBmbGFraW5lc3MuCiBCVUczODcwNiA6
IHN2Zy9jdXN0b20vZGVlcC1keW5hbWljLXVwZGF0ZXMuc3ZnID0gSU1BR0UrVEVYVCBJTUFHRSBQ
QVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCmluZGV4IGI4Y2E1MjguLjM3YTBlZTUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9Ta2lwcGVkCkBAIC0xNDAsOCArMTQwLDEwIEBAIGh0dHAvdGVzdHMvcGx1
Z2lucy9wbHVnaW4tZG9jdW1lbnQtaGFzLWZvY3VzLmh0bWwKICMgTWlzc2VzIHNldE1lZGlhVHlw
ZSgpIGFuZCBpbXBsZW1lbnRhdGlvbgogZmFzdC9tZWRpYS9wcmludC1yZXN0b3Jlcy1wcmV2aW91
cy1tZWRpYXR5cGUuaHRtbAogCi0jIHZpZXcgbW9kZSBtZWRpYSBmZWF0dXJlCisjIE5lZWRzIGxh
eW91dFRlc3RDb250cm9sbGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCkKIGZhc3QvbWVkaWEv
dmlldy1tb2RlLW1lZGlhLWZlYXR1cmUuaHRtbAorZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0
LTAyLmh0bWwKK2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMy5odG1sCiAKICMgVGVzdCBp
cyBmbGFreSBhbmQgdGh1cyBub3QgdXNlZnVsIHVudGlsIGZpeGVkLgogIyBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzY2NDIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQK
aW5kZXggODQ2MGNmNC4uNTE0ZWRiZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKQEAgLTg0
MSw4ICs4NDEsMTAgQEAgZmFzdC9kb20vSFRNTE1ldGVyRWxlbWVudC9tZXRlci1wZXJjZW50LXNp
emUuaHRtbAogZmFzdC9kb20vSFRNTE1ldGVyRWxlbWVudC9tZXRlci1zdHlsZXMuaHRtbAogZmFz
dC9kb20vSFRNTE1ldGVyRWxlbWVudC9tZXRlci1zdHlsZXMtY2hhbmdpbmctcHNldWRvLmh0bWwK
IAotIyB2aWV3IG1vZGUgbWVkaWEgZmVhdHVyZQorIyBOZWVkcyBsYXlvdXRUZXN0Q29udHJvbGxl
ci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSgpCiBmYXN0L21lZGlhL3ZpZXctbW9kZS1tZWRpYS1m
ZWF0dXJlLmh0bWwKK2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMi5odG1sCitmYXN0L21l
ZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMuaHRtbAogCiAjIE5lZWQgZXhwZWN0YXRpb25zLiBTZWUg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM2NDYxCiBmYXN0L3JlcGFp
bnQvb3ZlcmZsb3ctc2Nyb2xsLWJvZHktYXBwZWFyLmh0bWwKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWE4MjEzZi4uNDQ3ZTlhMCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMDQgQEAKKzIwMTAtMDktMTcgIEx1aXogQWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9w
ZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgSW1wbGVtZW50IENTU09NIFZpZXcgbWF0Y2hNZWRpYSBpbnRlcmZhY2UKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3MjA1CisKKyAgICAgICAg
TmV3IGludGVyZmFjZXMgbWF5IGJlIHVzZWQgdG8gZXZhbHVhdGUgbWVkaWEgcXVlcmllcyBhbmQg
dG8gYXNzb2NpYXRlIGxpc3RlbmVycworICAgICAgICB0byBtZWRpYSBxdWVyaWVzLiBUaG9zZSBs
aXN0ZW5lcnMgYXJlIGNhbGxlZCB3aGVuZXZlciB0aGUgYXNzb2NpYXRlZCBxdWVyeSBjaGFuZ2Vz
LgorICAgICAgICBTcGVjaWZpY2F0aW9uIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vZGV2LnczLm9y
Zy9jc3N3Zy9jc3NvbS12aWV3LyN0aGUtbWVkaWFxdWVyeWxpc3QtaW50ZXJmYWNlCisKKyAgICAg
ICAgTmV3IGludGVyZmFjZXM6CisKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUxpc3QuaWRsOiBB
ZGRlZC4KKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5pZGw6IEFkZGVkLgor
CisgICAgICAgIENsYXNzZXMgTWVkaWFRdWVyeUxpc3QgYW5kIE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXIuCisKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUxpc3QuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUXVlcnlMaXN0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFRdWVyeUxpc3Q6Ok1lZGlhUXVlcnlMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVl
cnlMaXN0Ojp+TWVkaWFRdWVyeUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeUxp
c3Q6Om1lZGlhKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlMaXN0OjphZGRMaXN0ZW5l
cik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdDo6cmVtb3ZlTGlzdGVuZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeUxpc3Q6OmV2YWx1YXRlKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUXVlcnlMaXN0OjpzZXRNYXRjaGVzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUXVlcnlMaXN0OjpjaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlMaXN0
OjptYXRjaGVzKToKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUxpc3QuaDogQWRkZWQuCisgICAg
ICAgICogY3NzL01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjpNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6On5NZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OnR5cGUp
OgorCisgICAgICAgIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIgaW1wbGVtZW50YXRpb24gdXNlZCBi
eSBKUyBhbmQgVjg6CisKKyAgICAgICAgKiBiaW5kaW5ncy9TY3JpcHRNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyOjpTY3JpcHRNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNv
cmU6OlNjcmlwdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OnF1ZXJ5Q2hhbmdlZCk6CisgICAgICAg
IChXZWJDb3JlOjpTY3JpcHRNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjppc0VxdWFsVG8pOgorICAg
ICAgICAqIGJpbmRpbmdzL1NjcmlwdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTY3JpcHRNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjpjcmVhdGUpOgor
CisgICAgICAgIFRvIGF2b2lkIGFkZGluZyBjb2RlIHRvIGNsYXNzZXMgRE9NV2luZG93IGFuZCBE
b2N1bWVudCBhIG5ldyBjbGFzcyBNZWRpYVF1ZXJ5TWF0Y2hlciB3YXMKKyAgICAgICAgY3JlYXRl
ZC4KKworICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5TWF0Y2hlci5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFRdWVyeU1hdGNoZXI6Okxpc3RlbmVyOjpMaXN0ZW5lcik6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5TWF0Y2hlcjo6TGlzdGVuZXI6On5MaXN0ZW5lcik6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5TWF0Y2hlcjo6TGlzdGVuZXI6OmV2YWx1YXRlKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlNYXRjaGVyOjpNZWRpYVF1ZXJ5TWF0Y2hlcik6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5TWF0Y2hlcjo6fk1lZGlhUXVlcnlNYXRjaGVy
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlNYXRjaGVyOjp0ZXJtaW5hdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeU1hdGNoZXI6Om1lZGlhVHlwZSk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVF1ZXJ5TWF0Y2hlcjo6cHJlcGFyZUV2YWx1YXRvcik6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVF1ZXJ5TWF0Y2hlcjo6ZXZhbHVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFRdWVyeU1hdGNoZXI6Om1hdGNoTWVkaWEpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFR
dWVyeU1hdGNoZXI6OmFkZExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlN
YXRjaGVyOjpyZW1vdmVMaXN0ZW5lcik6CisgICAgICAgICogY3NzL01lZGlhUXVlcnlNYXRjaGVy
Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeU1hdGNoZXI6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5TWF0Y2hlcjo6ZXZhbFJvdW5kKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlNYXRjaGVyOjpMaXN0ZW5lcjo6bGlzdGVuZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeU1hdGNoZXI6Okxpc3RlbmVyOjpxdWVyeSk6CisKKyAg
ICAgICAgRG9jdW1lbnQgYW5kIERPTVdpbmRvdyBoYXZlIGNoYW5nZWQgdG8gc3VwcG9ydCBuZXcg
ZmVhdHVyZXMuIERPTVdpbmRvdyBpcyB0aGUgY2xhc3MgdGhhdAorICAgICAgICBwdWJsaXNoZXMg
bWV0aG9kcyBtYXRjaE1lZGlhIGJ1dCBmb3IgcGFnZSBjYWNoZSB0byB3b3JrIHByb3Blcmx5ICB0
aGUgcmVmZXJlbmNlIHRvIHRoZSAKKyAgICAgICAgTWVkaWFRdWVyeU1hdGNoZXIgaXMga2VwdCBi
eSBEb2N1bWVudCBpbnN0YW5jZS4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6fkRvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50OjptYXRjaE1lZGlhKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzdHlsZVNl
bGVjdG9yQ2hhbmdlZCk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogcGFn
ZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjptYXRjaE1lZGlh
KToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5oOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93
LmlkbDoKKworICAgICAgICBTb21lIGFkanVzdG1lbnRzIHRvIGNvZGUgZ2VuZXJhdG9yczoKKwor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG06CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06CisKKyAgICAgICAgYnVpbGQgc3lzdGVt
OgorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBHTlVtYWtlZmls
ZS5hbToKKyAgICAgICAgKiBiaW5kaW5ncy9nb2JqZWN0L0dOVW1ha2VmaWxlLmFtOgorICAgICAg
ICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnByaToKKyAgICAgICAgKiBXZWJD
b3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKKyAgICAgICAgVGVzdHM6
IGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMS5odG1sCisgICAgICAgICAgICAgICBmYXN0
L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9tZWRp
YS9tZWRpYS1xdWVyeS1saXN0LTAzLmh0bWwKKwogMjAxMC0wOS0xNiAgVG9ueSBHZW50aWxjb3Jl
ICA8dG9ueWdAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGgu
CmRpZmYgLS1naXQgYS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKaW5kZXggZWEzMDFiOC4uZmI3NDJmMSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpA
QCAtMjU5LDYgKzI1OSw4IEBAIERPTV9DTEFTU0VTID0gXAogICAgIExvY2F0aW9uIFwKICAgICBN
ZWRpYUVycm9yIFwKICAgICBNZWRpYUxpc3QgXAorICAgIE1lZGlhUXVlcnlMaXN0IFwKKyAgICBN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIFwKICAgICBNZW1vcnlJbmZvIFwKICAgICBNZXNzYWdlQ2hh
bm5lbCBcCiAgICAgTWVzc2FnZUV2ZW50IFwKQEAgLTQ5NSw3ICs0OTcsNyBAQCBET01fQ0xBU1NF
UyA9IFwKIAogLlBIT05ZIDogYWxsCiAKLUpTX0RPTV9IRUFERVJTPSQoZmlsdGVyLW91dCBKU0V2
ZW50TGlzdGVuZXIuaCBKU0V2ZW50VGFyZ2V0LmgsJChET01fQ0xBU1NFUzolPUpTJS5oKSkKK0pT
X0RPTV9IRUFERVJTPSQoZmlsdGVyLW91dCBKU01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCBKU0V2
ZW50TGlzdGVuZXIuaCBKU0V2ZW50VGFyZ2V0LmgsJChET01fQ0xBU1NFUzolPUpTJS5oKSkKIAog
V0VCX0RPTV9IRUFERVJTIDo9CiBpZmVxICgkKGZpbmRzdHJpbmcgQlVJTERJTkdfV1gsJChGRUFU
VVJFX0RFRklORVMpKSwgQlVJTERJTkdfV1gpCmRpZmYgLS1naXQgYS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmFtIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCA5Yjc4ZTI5Li4xZjc5YTYxIDEw
MDY0NAotLS0gYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1dlYkNvcmUvR05VbWFrZWZp
bGUuYW0KQEAgLTQxNSw2ICs0MTUsOCBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYUVycm9yLmggXAogCURlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNNZWRpYUxpc3QuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFM
aXN0LmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVF1ZXJ5TGlzdC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVF1ZXJ5TGlzdC5oIFwKIAlEZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTTWVtb3J5SW5mby5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNNZW1vcnlJbmZvLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZXNzYWdlQ2hhbm5l
bC5jcHAgXApAQCAtNjEzLDYgKzYxNSw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJvdy5oIFwKIAlXZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgXAogCVdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmggXAorCVdlYkNvcmUvYmluZGluZ3MvU2NyaXB0TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lci5jcHAgXAorCVdlYkNvcmUvYmluZGluZ3MvU2NyaXB0TWVkaWFRdWVyeUxpc3RMaXN0ZW5l
ci5oIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQWN0aXZlRE9NQ2FsbGJhY2suY3BwIFwK
IAlXZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQWN0aXZlRE9NQ2FsbGJhY2suaCBcCiAJV2ViQ29y
ZS9iaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdGcmFtZS5oIFwKQEAgLTk4MCwxMSArOTg0LDE2IEBA
IHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9jc3MvTWVkaWFMaXN0LmNwcCBcCiAJV2Vi
Q29yZS9jc3MvTWVkaWFMaXN0LmggXAogCVdlYkNvcmUvY3NzL01lZGlhUXVlcnkuY3BwIFwKKwlX
ZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5LmggXAogCVdlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0
b3IuY3BwIFwKIAlXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmggXAogCVdlYkNvcmUv
Y3NzL01lZGlhUXVlcnlFeHAuY3BwIFwKIAlXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwLmggXAot
CVdlYkNvcmUvY3NzL01lZGlhUXVlcnkuaCBcCisJV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3Qu
Y3BwIFwKKwlXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdC5oIFwKKwlXZWJDb3JlL2Nzcy9NZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyLmggXAorCVdlYkNvcmUvY3NzL01lZGlhUXVlcnlNYXRjaGVyLmNw
cCBcCisJV2ViQ29yZS9jc3MvTWVkaWFRdWVyeU1hdGNoZXIuaCBcCiAJV2ViQ29yZS9jc3MvUGFp
ci5oIFwKIAlXZWJDb3JlL2Nzcy9SZWN0LmggXAogCVdlYkNvcmUvY3NzL1JHQkNvbG9yLmNwcCBc
CmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBp
CmluZGV4IDEyM2I4ZWQuLjQ0ZTdkYzkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBp
CisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0xOSw2ICsxOSw3IEBACiAgICAgICAgICAg
ICAnY3NzL0NTU1ZhcmlhYmxlc1J1bGUuaWRsJywKICAgICAgICAgICAgICdjc3MvQ291bnRlci5p
ZGwnLAogICAgICAgICAgICAgJ2Nzcy9NZWRpYUxpc3QuaWRsJywKKyAgICAgICAgICAgICdjc3Mv
TWVkaWFRdWVyeUxpc3QuaWRsJywKICAgICAgICAgICAgICdjc3MvUmVjdC5pZGwnLAogICAgICAg
ICAgICAgJ2Nzcy9SR0JDb2xvci5pZGwnLAogICAgICAgICAgICAgJ2Nzcy9TdHlsZU1lZGlhLmlk
bCcsCkBAIC01MTEsNiArNTEyLDggQEAKICAgICAgICAgICAgICdhY2Nlc3NpYmlsaXR5L3dpbi9B
Y2Nlc3NpYmlsaXR5T2JqZWN0V2luLmNwcCcsCiAgICAgICAgICAgICAnYWNjZXNzaWJpbGl0eS93
aW4vQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJXaW4uaCcsCiAgICAgICAgICAgICAnYWNjZXNz
aWJpbGl0eS93eC9BY2Nlc3NpYmlsaXR5T2JqZWN0V3guY3BwJywKKyAgICAgICAgICAgICdiaW5k
aW5ncy9TY3JpcHRNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcCcsCisgICAgICAgICAgICAnYmlu
ZGluZ3MvU2NyaXB0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oJywKICAgICAgICAgICAgICdiaW5k
aW5ncy9nZW5lcmljL0FjdGl2ZURPTUNhbGxiYWNrLmNwcCcsCiAgICAgICAgICAgICAnYmluZGlu
Z3MvZ2VuZXJpYy9BY3RpdmVET01DYWxsYmFjay5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy9n
ZW5lcmljL0JpbmRpbmdET01XaW5kb3cuaCcsCkBAIC0xMDU3LDExICsxMDYwLDE2IEBACiAgICAg
ICAgICAgICAnY3NzL01lZGlhTGlzdC5jcHAnLAogICAgICAgICAgICAgJ2Nzcy9NZWRpYUxpc3Qu
aCcsCiAgICAgICAgICAgICAnY3NzL01lZGlhUXVlcnkuY3BwJywKKyAgICAgICAgICAgICdjc3Mv
TWVkaWFRdWVyeS5oJywKICAgICAgICAgICAgICdjc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAn
LAogICAgICAgICAgICAgJ2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmgnLAogICAgICAgICAgICAg
J2Nzcy9NZWRpYVF1ZXJ5RXhwLmNwcCcsCiAgICAgICAgICAgICAnY3NzL01lZGlhUXVlcnlFeHAu
aCcsCi0gICAgICAgICAgICAnY3NzL01lZGlhUXVlcnkuaCcsCisgICAgICAgICAgICAnY3NzL01l
ZGlhUXVlcnlMaXN0LmNwcCcsCisgICAgICAgICAgICAnY3NzL01lZGlhUXVlcnlMaXN0LmgnLAor
ICAgICAgICAgICAgJ2Nzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgnLAorICAgICAgICAgICAg
J2Nzcy9NZWRpYVF1ZXJ5TWF0Y2hlci5jcHAnLAorICAgICAgICAgICAgJ2Nzcy9NZWRpYVF1ZXJ5
TWF0Y2hlci5oJywKICAgICAgICAgICAgICdjc3MvUGFpci5oJywKICAgICAgICAgICAgICdjc3Mv
UmVjdC5oJywKICAgICAgICAgICAgICdjc3MvUkdCQ29sb3IuY3BwJywKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvV2ViQ29yZS5wcmkgYi9XZWJDb3JlL1dlYkNvcmUucHJpCmluZGV4IDk0NzBmZmQuLmIw
NDM4ZTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcmkKKysrIGIvV2ViQ29yZS9XZWJD
b3JlLnByaQpAQCAtODYsNiArODYsOCBAQCBJRExfQklORElOR1MgKz0gXAogICAgIGNzcy9DU1NW
YXJpYWJsZXNEZWNsYXJhdGlvbi5pZGwgXAogICAgIGNzcy9DU1NWYXJpYWJsZXNSdWxlLmlkbCBc
CiAgICAgY3NzL01lZGlhTGlzdC5pZGwgXAorICAgIGNzcy9NZWRpYVF1ZXJ5TGlzdC5pZGwgXAor
IyAgICBjc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5pZGwgXAogICAgIGNzcy9SZWN0LmlkbCBc
CiAgICAgY3NzL1JHQkNvbG9yLmlkbCBcCiAgICAgY3NzL1N0eWxlTWVkaWEuaWRsIFwKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDU0
ZWU1MzYuLjJjNzNiYWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2Vi
Q29yZS9XZWJDb3JlLnBybwpAQCAtMzE4LDYgKzMxOCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGFj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyLmNwcCBcICAgIAog
ICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlUm93LmNwcCBcICAgIAogICAgIGFj
Y2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgXAorICAgIGJpbmRpbmdzL1NjcmlwdE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXIuY3BwIFwKICAgICBiaW5kaW5ncy9nZW5lcmljL0FjdGl2ZURPTUNh
bGxiYWNrLmNwcAogCiB2OCB7CkBAIC02NTIsNiArNjUzLDggQEAgU09VUkNFUyArPSBcCiAgICAg
Y3NzL01lZGlhUXVlcnkuY3BwIFwKICAgICBjc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAgXAog
ICAgIGNzcy9NZWRpYVF1ZXJ5RXhwLmNwcCBcCisgICAgY3NzL01lZGlhUXVlcnlMaXN0LmNwcCBc
CisgICAgY3NzL01lZGlhUXVlcnlNYXRjaGVyLmNwcCBcCiAgICAgY3NzL1JHQkNvbG9yLmNwcCBc
CiAgICAgY3NzL1NoYWRvd1ZhbHVlLmNwcCBcCiAgICAgY3NzL1N0eWxlQmFzZS5jcHAgXApAQCAt
MTMxMSw2ICsxMzE0LDcgQEAgSEVBREVSUyArPSBcCiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5VGFibGVSb3cuaCBcCiAgICAgYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmggXAog
ICAgIGJpbmRpbmdzL1NjcmlwdENvbnRyb2xsZXJCYXNlLmggXAorICAgIGJpbmRpbmdzL1Njcmlw
dE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCBcCiAgICAgYmluZGluZ3MvZ2VuZXJpYy9BY3RpdmVE
T01DYWxsYmFjay5oCiAKIHY4IHsKQEAgLTE1MTgsOSArMTUyMiwxMiBAQCBIRUFERVJTICs9IFwK
ICAgICBjc3MvRm9udFZhbHVlLmggXAogICAgIGNzcy9NZWRpYUZlYXR1cmVOYW1lcy5oIFwKICAg
ICBjc3MvTWVkaWFMaXN0LmggXAorICAgIGNzcy9NZWRpYVF1ZXJ5LmggXAogICAgIGNzcy9NZWRp
YVF1ZXJ5RXZhbHVhdG9yLmggXAogICAgIGNzcy9NZWRpYVF1ZXJ5RXhwLmggXAotICAgIGNzcy9N
ZWRpYVF1ZXJ5LmggXAorICAgIGNzcy9NZWRpYVF1ZXJ5TGlzdC5oIFwKKyAgICBjc3MvTWVkaWFR
dWVyeUxpc3RMaXN0ZW5lci5oIFwKKyAgICBjc3MvTWVkaWFRdWVyeU1hdGNoZXIuaCBcCiAgICAg
Y3NzL1JHQkNvbG9yLmggXAogICAgIGNzcy9TaGFkb3dWYWx1ZS5oIFwKICAgICBjc3MvU3R5bGVC
YXNlLmggXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
aiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKb2xkIG1vZGUgMTAwNjQ0
Cm5ldyBtb2RlIDEwMDc1NQppbmRleCA1YjdkYTZlLi5hYWIzNjk4Ci0tLSBhL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagpAQCAtOTgzNyw2ICs5ODM3LDYyIEBACiAJCQkJPg0KIAkJCTwvRmlsZT4N
CiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQ
cm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNNZWRpYVF1ZXJ5TGlzdC5jcHAiDQorCQkJCT4N
CisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCisJCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0K
KwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1
cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnX0ludGVy
bmFsfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJ
CQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9
IkRlYnVnX0NhaXJvfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJ
CQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkv
Pg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJ
CQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm98V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmln
dXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCTwvRmls
ZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpc
JChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNNZWRpYVF1ZXJ5TGlzdC5oIg0KKwkJCQk+
DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRw
dXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU01lbW9yeUluZm8uY3Bw
Ig0KIAkJCQk+DQogCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KQEAgLTI5NjI1LDYgKzI5NjgxLDI2
IEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XGNzc1xNZWRpYVF1ZXJ5TGlzdC5jcHAiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUN
CisJCQkJUmVsYXRpdmVQYXRoPSIuLlxjc3NcTWVkaWFRdWVyeUxpc3QuaCINCisJCQkJPg0KKwkJ
CTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xNZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVs
YXRpdmVQYXRoPSIuLlxjc3NcTWVkaWFRdWVyeU1hdGNoZXIuY3BwIg0KKwkJCQk+DQorCQkJPC9G
aWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cY3NzXE1lZGlhUXVlcnlNYXRj
aGVyLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRo
PSIuLlxjc3NcUGFpci5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KQEAgLTQyMTQ0LDYgKzQyMjIw
LDE0IEBACiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xTY3JpcHRDb250cm9sbGVyQmFz
ZS5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0i
Li5cYmluZGluZ3NcU2NyaXB0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAiDQorCQkJCT4NCisJ
CQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xTY3Jp
cHRNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQogCQkJPEZp
bHRlcg0KIAkJCQlOYW1lPSJnZW5lcmljIg0KIAkJCQk+DQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1YjBhZTg1Li4xYWY4OGFjIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTE4OSw2ICs1MTg5LDE1IEBACiAJ
CUQyM0NBNTZDMEFCMEVCOEQwMDUxMDhBNSAvKiBSYW5nZUV4Y2VwdGlvbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDIzQ0E1NkIwQUIwRUI4RDAwNTEw
OEE1IC8qIFJhbmdlRXhjZXB0aW9uLmggKi87IH07CiAJCUQzOUQwMDZEMTFGOEUzMDgwMDYwNDFG
MiAvKiBQb3B1cE1lbnVNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEQzOUQwMDZDMTFGOEUzMDgwMDYwNDFGMiAvKiBQb3B1cE1lbnVNYWMuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlEMzlEMDA5RDEx
RjkwN0U2MDA2MDQxRjIgLyogU2VhcmNoUG9wdXBNZW51TWFjLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMzlEMDA5QzExRjkwN0U2MDA2MDQxRjIgLyog
U2VhcmNoUG9wdXBNZW51TWFjLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJRDNBOTRBMzgxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQTk0
QTMxMTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdC5jcHAgKi87IH07CisJCUQzQTk0
QTM5MTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNBOTRBMzIxMjJEQUJBQzAwQTM3QkJDIC8q
IE1lZGlhUXVlcnlMaXN0LmggKi87IH07CisJCUQzQTk0QTNCMTIyREFCQUMwMEEzN0JCQyAvKiBN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBEM0E5NEEzNDEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeUxpc3RM
aXN0ZW5lci5oICovOyB9OworCQlEM0E5NEE0NjEyMkRDNDBGMDBBMzdCQkMgLyogSlNNZWRpYVF1
ZXJ5TGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBEM0E5NEE0MjEyMkRDNDBGMDBBMzdCQkMgLyogSlNNZWRpYVF1ZXJ5TGlzdC5jcHAgKi87IH07
CisJCUQzQTk0QTQ3MTIyREM0MEYwMEEzN0JCQyAvKiBKU01lZGlhUXVlcnlMaXN0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0E5NEE0MzEyMkRDNDBG
MDBBMzdCQkMgLyogSlNNZWRpYVF1ZXJ5TGlzdC5oICovOyB9OworCQlEM0FBMTBGMzEyM0E5OEFB
MDA5MjE1MkIgLyogTWVkaWFRdWVyeU1hdGNoZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNBQTEwRjExMjNBOThBQTAwOTIxNTJCIC8qIE1lZGlh
UXVlcnlNYXRjaGVyLmNwcCAqLzsgfTsKKwkJRDNBQTEwRjQxMjNBOThBQTAwOTIxNTJCIC8qIE1l
ZGlhUXVlcnlNYXRjaGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBEM0FBMTBGMjEyM0E5OEFBMDA5MjE1MkIgLyogTWVkaWFRdWVyeU1hdGNoZXIuaCAq
LzsgfTsKKwkJRDNCQTUwREUxMjQyNjQ4ODAwQUU1REREIC8qIFNjcmlwdE1lZGlhUXVlcnlMaXN0
TGlzdGVuZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRDNCQTUwREMxMjQyNjQ4ODAwQUU1REREIC8qIFNjcmlwdE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXIuY3BwICovOyB9OworCQlEM0JBNTBERjEyNDI2NDg4MDBBRTVEREQgLyogU2NyaXB0TWVkaWFR
dWVyeUxpc3RMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRDNCQTUwREQxMjQyNjQ4ODAwQUU1REREIC8qIFNjcmlwdE1lZGlhUXVlcnlMaXN0
TGlzdGVuZXIuaCAqLzsgfTsKIAkJRDhCNjE1MkYxMDMyNDk1MTAwQzg1NTRBIC8qIENvb2tpZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDhCNjE1MkUx
MDMyNDk1MTAwQzg1NTRBIC8qIENvb2tpZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCURCMjNDMkNCMEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRP
dXRkZW50Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBEQjIzQzJDOTBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQu
Y3BwICovOyB9OwogCQlEQjIzQzJDQzBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENv
bW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERC
MjNDMkNBMEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5oICovOyB9OwpA
QCAtMTEwNDUsNiArMTEwNTQsMTcgQEAKIAkJRDIzQ0E1NkIwQUIwRUI4RDAwNTEwOEE1IC8qIFJh
bmdlRXhjZXB0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSYW5nZUV4
Y2VwdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMzlEMDA2QzExRjhFMzA4
MDA2MDQxRjIgLyogUG9wdXBNZW51TWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFBvcHVwTWVudU1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMzlEMDA5
QzExRjkwN0U2MDA2MDQxRjIgLyogU2VhcmNoUG9wdXBNZW51TWFjLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNlYXJjaFBvcHVwTWVudU1hYy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlEM0E5NEEzMTEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeUxpc3Qu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFRdWVyeUxpc3Qu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEM0E5NEEzMjEyMkRBQkFDMDBBMzdC
QkMgLyogTWVkaWFRdWVyeUxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TWVkaWFRdWVyeUxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDNBOTRBMzMx
MjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBNZWRpYVF1ZXJ5TGlzdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQz
QTk0QTM0MTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDNBOTRBMzUxMjJEQUJBQzAwQTM3QkJDIC8qIE1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEM0E5NEE0
MjEyMkRDNDBGMDBBMzdCQkMgLyogSlNNZWRpYVF1ZXJ5TGlzdC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU01lZGlhUXVlcnlMaXN0LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRDNBOTRBNDMxMjJEQzQwRjAwQTM3QkJDIC8qIEpTTWVkaWFRdWVy
eUxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNZWRpYVF1ZXJ5TGlz
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEM0FBMTBGMTEyM0E5OEFBMDA5MjE1
MkIgLyogTWVkaWFRdWVyeU1hdGNoZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gTWVkaWFRdWVyeU1hdGNoZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlEM0FBMTBGMjEyM0E5OEFBMDA5MjE1MkIgLyogTWVkaWFRdWVyeU1hdGNoZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFRdWVyeU1hdGNoZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDNCQTUwREMxMjQyNjQ4ODAwQUU1REREIC8qIFNjcmlw
dE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU2NyaXB0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUQzQkE1MEREMTI0MjY0ODgwMEFFNURERCAvKiBTY3JpcHRNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlw
dE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RDhCNjE1MkUxMDMyNDk1MTAwQzg1NTRBIC8qIENvb2tpZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDb29raWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREIy
M0MyQzkwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmRlbnRPdXRkZW50Q29tbWFuZC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURCMjNDMkNBMEE1MDhEMjkwMDI0ODlFQiAv
KiBJbmRlbnRPdXRkZW50Q29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSW5kZW50T3V0ZGVudENvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTE1MTIyLDYgKzE1MTQyLDggQEAKIAkJCQlCQzY4NkM3QTBFMEMzMzAxMDBERThBMDggLyogSlND
U1NWYXJpYWJsZXNSdWxlLmNwcCAqLywKIAkJCQlCQzY4NkM3QjBFMEMzMzAxMDBERThBMDggLyog
SlNDU1NWYXJpYWJsZXNSdWxlLmggKi8sCiAJCQkJQkMzQzM5QjQwQzBEM0Q4RDAwNUY0RDdBIC8q
IEpTTWVkaWFMaXN0LmNwcCAqLywKKwkJCQlEM0E5NEE0MjEyMkRDNDBGMDBBMzdCQkMgLyogSlNN
ZWRpYVF1ZXJ5TGlzdC5jcHAgKi8sCisJCQkJRDNBOTRBNDMxMjJEQzQwRjAwQTM3QkJDIC8qIEpT
TWVkaWFRdWVyeUxpc3QuaCAqLywKIAkJCQlCQzNDMzlCNTBDMEQzRDhEMDA1RjREN0EgLyogSlNN
ZWRpYUxpc3QuaCAqLywKIAkJCQlCQ0ZFMkYwRjBDMUI1ODM3MDAyMDIzNUYgLyogSlNSZWN0LmNw
cCAqLywKIAkJCQlCQ0ZFMkYxMDBDMUI1ODM3MDAyMDIzNUYgLyogSlNSZWN0LmggKi8sCkBAIC0x
NjIwMSw2ICsxNjIyMyw4IEBACiAJCQkJOEM2RUE2MTgxMUVGN0UwNDAwRkQ4RUUzIC8qIFJ1bnRp
bWVFbmFibGVkRmVhdHVyZXMuaCAqLywKIAkJCQk5N0VGN0RGRDEwN0U1NUI3MDBEN0M0OUMgLyog
U2NyaXB0Q29udHJvbGxlckJhc2UuY3BwICovLAogCQkJCUNFMDJGMEMzMTFFODNBREQwMEM2Njg0
QSAvKiBTY3JpcHRDb250cm9sbGVyQmFzZS5oICovLAorCQkJCUQzQkE1MERDMTI0MjY0ODgwMEFF
NURERCAvKiBTY3JpcHRNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcCAqLywKKwkJCQlEM0JBNTBE
RDEyNDI2NDg4MDBBRTVEREQgLyogU2NyaXB0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oICovLAog
CQkJKTsKIAkJCXBhdGggPSBiaW5kaW5nczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBA
IC0xNzEzMiw2ICsxNzE1NiwxMyBAQAogCQkJCTRFMTk1OTI2MEEzOURBQ0MwMDIyMEZFNSAvKiBN
ZWRpYVF1ZXJ5RXZhbHVhdG9yLmggKi8sCiAJCQkJNEUxOTU5MjcwQTM5REFDQzAwMjIwRkU1IC8q
IE1lZGlhUXVlcnlFeHAuY3BwICovLAogCQkJCTRFMTk1OTI4MEEzOURBQ0MwMDIyMEZFNSAvKiBN
ZWRpYVF1ZXJ5RXhwLmggKi8sCisJCQkJRDNBOTRBMzExMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlh
UXVlcnlMaXN0LmNwcCAqLywKKwkJCQlEM0E5NEEzMjEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFR
dWVyeUxpc3QuaCAqLywKKwkJCQlEM0E5NEEzMzEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVy
eUxpc3QuaWRsICovLAorCQkJCUQzQTk0QTM0MTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyLmggKi8sCisJCQkJRDNBOTRBMzUxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXIuaWRsICovLAorCQkJCUQzQUExMEYxMTIzQTk4QUEwMDkyMTUyQiAv
KiBNZWRpYVF1ZXJ5TWF0Y2hlci5jcHAgKi8sCisJCQkJRDNBQTEwRjIxMjNBOThBQTAwOTIxNTJC
IC8qIE1lZGlhUXVlcnlNYXRjaGVyLmggKi8sCiAJCQkJQTgwRTZDRDEwQTE5ODlDQTAwN0ZCOEM1
IC8qIFBhaXIuaCAqLywKIAkJCQk5M0NBNEM5RjA5REY5M0ZBMDBERjg2NzcgLyogcXVpcmtzLmNz
cyAqLywKIAkJCQlCQzQzNjhFNzBDMjI2RTMyMDA1RUZCNUYgLyogUmVjdC5oICovLApAQCAtMjA1
NjIsNiArMjA1OTMsMTEgQEAKIAkJCQk4OTNDNDdCQzEyMzhBMEE5MDAyQjNEODYgLyogSlNGaWxl
V3JpdGVyQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCThBMzA5QzlGMTIzOTUwQkUwMENC
OTIwNCAvKiBOZXN0aW5nTGV2ZWxJbmNyZW1lbnRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNF
MkEzMDcxMjNFOURDMDAwOUZFMTJBIC8qIEhUTUxQYXJzZXJJZGlvbXMuaCBpbiBIZWFkZXJzICov
LAorCQkJCUQzQTk0QTM5MTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJRDNBOTRBM0IxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0
TGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUQzQTk0QTQ3MTIyREM0MEYwMEEzN0JCQyAv
KiBKU01lZGlhUXVlcnlMaXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQlEM0FBMTBGNDEyM0E5OEFB
MDA5MjE1MkIgLyogTWVkaWFRdWVyeU1hdGNoZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUQzQkE1
MERGMTI0MjY0ODgwMEFFNURERCAvKiBTY3JpcHRNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggaW4g
SGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5n
ID0gMDsKIAkJfTsKQEAgLTIzMDM5LDYgKzIzMDc1LDEwIEBACiAJCQkJOTNFMkEzMDYxMjNFOURD
MDAwOUZFMTJBIC8qIEhUTUxQYXJzZXJJZGlvbXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODkz
QzQ3REYxMjNFRjRBOTAwMkIzRDg2IC8qIEpTRGlyZWN0b3J5RW50cnlDdXN0b20uY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJODkzQzQ3Q0MxMjNFRUJBMjAwMkIzRDg2IC8qIEpTRW50cnlDdXN0b20u
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRDNBOTRBMzgxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlh
UXVlcnlMaXN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUQzQTk0QTQ2MTIyREM0MEYwMEEzN0JC
QyAvKiBKU01lZGlhUXVlcnlMaXN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUQzQUExMEYzMTIz
QTk4QUEwMDkyMTUyQiAvKiBNZWRpYVF1ZXJ5TWF0Y2hlci5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlEM0JBNTBERTEyNDI2NDg4MDBBRTVEREQgLyogU2NyaXB0TWVkaWFRdWVyeUxpc3RMaXN0ZW5l
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rw
cm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvU2NyaXB0
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL1NjcmlwdE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmY1ZjVmN2MKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL1NjcmlwdE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXIuY3BwCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRF
UiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVS
LCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNjcmlwdE1lZGlhUXVlcnlMaXN0
TGlzdGVuZXIuaCIKKworI2lmIFVTRShKU0MpCisjaW5jbHVkZSAiSlNNZWRpYVF1ZXJ5TGlzdC5o
IgorI2Vsc2UKKyNpbmNsdWRlICJWOE1lZGlhUXVlcnlMaXN0LmgiCisjZW5kaWYKKyNpbmNsdWRl
ICJNZWRpYVF1ZXJ5TGlzdC5oIgorI2luY2x1ZGUgIlNjcmlwdEZ1bmN0aW9uQ2FsbC5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK1NjcmlwdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OlNjcmlw
dE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIoU2NyaXB0VmFsdWUgdmFsdWUpCisgICAgOiBNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyKFNjcmlwdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJUeXBlKQorICAgICwg
bV92YWx1ZSh2YWx1ZSkKK3sKK30KKwordm9pZCBTY3JpcHRNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
OjpxdWVyeUNoYW5nZWQoU2NyaXB0U3RhdGUqIHN0YXRlLCBNZWRpYVF1ZXJ5TGlzdCogcXVlcnkp
Cit7CisgICAgU2NyaXB0Q2FsbGJhY2sgY2FsbGJhY2soc3RhdGUsIG1fdmFsdWUpOworI2lmIFVT
RShKU0MpCisgICAgY2FsbGJhY2suYXBwZW5kQXJndW1lbnQodG9KUyhzdGF0ZSwgcXVlcnkpKTsK
KyNlbHNlCisgICAgY2FsbGJhY2suYXBwZW5kQXJndW1lbnQodG9WOChxdWVyeSkpOworI2VuZGlm
CisgICAgY2FsbGJhY2suY2FsbCgpOworfQorCitib29sIFNjcmlwdE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXI6OmlzRXF1YWxUbyhTY3JpcHRTdGF0ZSogc3RhdGUsIGNvbnN0IE1lZGlhUXVlcnlMaXN0
TGlzdGVuZXIqIG90aGVyKQoreworICAgIGlmICghb3RoZXIgfHwgb3RoZXItPnR5cGUoKSAhPSB0
eXBlKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBjb25zdCBTY3JpcHRNZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyKiBzY3JpcHRMaXN0ZW5lciA9IHN0YXRpY19jYXN0PGNvbnN0IFNjcmlwdE1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXIqPihvdGhlcik7CisgICAgcmV0dXJuIHNjcmlwdExpc3RlbmVy
ICYmIHNjcmlwdExpc3RlbmVyLT5tX3ZhbHVlLmlzRXF1YWwoc3RhdGUsIG1fdmFsdWUpOworfQor
Cit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL1NjcmlwdE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXIuaCBiL1dlYkNvcmUvYmluZGluZ3MvU2NyaXB0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjZDMxZTAKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL1NjcmlwdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaApA
QCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0
aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgU2NyaXB0TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lcl9oCisjZGVmaW5lIFNjcmlwdE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXJfaAorCisjaW5jbHVkZSAiTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oIgorI2luY2x1ZGUgIlNj
cmlwdFZhbHVlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2NyaXB0TWVkaWFR
dWVyeUxpc3RMaXN0ZW5lciA6IHB1YmxpYyBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTY3JpcHRNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyPiBj
cmVhdGUoU2NyaXB0VmFsdWUgdmFsdWUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IFNjcmlwdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIodmFsdWUpKTsKKyAgICB9CisKKyAgICB2
aXJ0dWFsIHZvaWQgcXVlcnlDaGFuZ2VkKFNjcmlwdFN0YXRlKiwgTWVkaWFRdWVyeUxpc3QqKTsK
KyAgICB2aXJ0dWFsIGJvb2wgaXNFcXVhbFRvKFNjcmlwdFN0YXRlKiwgY29uc3QgTWVkaWFRdWVy
eUxpc3RMaXN0ZW5lciopOworCitwcml2YXRlOgorICAgIFNjcmlwdE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXIoU2NyaXB0VmFsdWUgdmFsdWUpOworCisgICAgU2NyaXB0VmFsdWUgbV92YWx1ZTsKK307
CisKK30KKworI2VuZGlmIC8vIFNjcmlwdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJfaApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29yZS9i
aW5kaW5ncy9nb2JqZWN0L0dOVW1ha2VmaWxlLmFtCmluZGV4IDEyODM1Y2MuLjU3OThhMGUgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9HTlVtYWtlZmlsZS5hbQorKysgYi9X
ZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvR05VbWFrZWZpbGUuYW0KQEAgLTE5Miw2ICsxOTIsOCBA
QCB3ZWJraXRndGtfZ2RvbV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy93ZWJr
aXQvV2ViS2l0RE9NTWVkaWFFcnJvclByaXZhdGUuaCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0
L1dlYktpdERPTU1lZGlhTGlzdC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRE
T01NZWRpYUxpc3RQcml2YXRlLmggXAorCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01N
ZWRpYVF1ZXJ5TGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01NZWRp
YVF1ZXJ5TGlzdFByaXZhdGUuaCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTU1l
bW9yeUluZm8uY3BwIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NTWVtb3J5SW5m
b1ByaXZhdGUuaCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTU1lc3NhZ2VQb3J0
LmNwcCBcCkBAIC0yNTAsNiArMjUyLDcgQEAgd2Via2l0Z3RrX2J1aWx0X2hfYXBpICs9IFwKIAlE
ZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NQ1NTU3R5bGVTaGVldC5oIFwKIAlEZXJpdmVk
U291cmNlcy93ZWJraXQvV2ViS2l0RE9NQ1NTVmFsdWUuaCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Vi
a2l0L1dlYktpdERPTU1lZGlhTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0
RE9NTWVkaWFRdWVyeUxpc3QuaCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTVN0
eWxlTWVkaWEuaCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTVN0eWxlU2hlZXQu
aCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTVN0eWxlU2hlZXRMaXN0LmggXApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0
LnBtIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCmlu
ZGV4IDZhMWQxMTUuLmQ4NmEwYzQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvckdPYmplY3QucG0KQEAgLTIxMCw4ICsyMTAsMTEgQEAgc3ViIFNraXBGdW5j
dGlvbiB7CiAKICAgICAjIFNraXAgZnVuY3Rpb25zIHRoYXQgaGF2ZSBbIkNhbGxiYWNrIl0gcGFy
YW1ldGVycywgYmVjYXVzZSB0aGlzCiAgICAgIyBjb2RlIGdlbmVyYXRvciBkb2Vzbid0IGtub3cg
aG93IHRvIGF1dG8tZ2VuZXJhdGUgY2FsbGJhY2tzLgorICAgICMgU2tpcCBmdW5jdGlvbnMgdGhh
dCBoYXZlICJNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIiBwYXJhbWV0ZXJzLCBiZWNhdXNlIHRoaXMK
KyAgICAjIGNvZGUgZ2VuZXJhdG9yIGRvZXNuJ3Qga25vdyBob3cgdG8gYXV0by1nZW5lcmF0ZSBN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLgogICAgIGZvcmVhY2ggbXkgJHBhcmFtIChAeyRmdW5jdGlv
bi0+cGFyYW1ldGVyc30pIHsKLSAgICAgICAgaWYgKCRwYXJhbS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IkNhbGxiYWNrIn0pIHsKKyAgICAgICAgaWYgKCRwYXJhbS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IkNhbGxiYWNrIn0gfHwKKyAgICAgICAgICAgICRwYXJhbS0+dHlwZSBlcSAiTWVkaWFRdWVy
eUxpc3RMaXN0ZW5lciIpIHsKICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICB9CiAgICAg
fQpAQCAtNjAwLDcgKzYwMyw4IEBAIEVPRgogICAgIHB1c2goQHR4dFNldFByb3BzLCAkdHh0U2V0
UHJvcHMpOwogCiAgICAgZm9yZWFjaCBteSAkYXR0cmlidXRlIChAcmVhZGFibGVQcm9wZXJ0aWVz
KSB7Ci0gICAgICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUgbmUgIkV2ZW50TGlz
dGVuZXIiKSB7CisgICAgICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUgbmUgIkV2
ZW50TGlzdGVuZXIiICYmCisgICAgICAgICAgICAkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUg
bmUgIk1lZGlhUXVlcnlMaXN0TGlzdGVuZXIiKSB7CiAgICAgICAgICAgICBHZW5lcmF0ZVByb3Bl
cnR5KCRhdHRyaWJ1dGUsICRpbnRlcmZhY2VOYW1lLCBcQHdyaXRlYWJsZVByb3BlcnRpZXMpOwog
ICAgICAgICB9CiAgICAgfQpAQCAtNzY3LDYgKzc3MSw3IEBAIHN1YiBnZXRJbmNsdWRlSGVhZGVy
IHsKICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIHNob3J0IjsKICAgICByZXR1
cm4gIiIgaWYgJHR5cGUgZXEgIkRPTVRpbWVTdGFtcCI7CiAgICAgcmV0dXJuICIiIGlmICR0eXBl
IGVxICJFdmVudExpc3RlbmVyIjsKKyAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgIk1lZGlhUXVl
cnlMaXN0TGlzdGVuZXIiOwogICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAidW5zaWduZWQgY2hh
ciI7CiAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJET01TdHJpbmciOwogICAgIHJldHVybiAi
IiBpZiAkdHlwZSBlcSAiZmxvYXQiOwpAQCAtODA2LDYgKzgxMSwxMCBAQCBzdWIgR2VuZXJhdGVG
dW5jdGlvbiB7CiAKICAgICBteSAkZGVjYW1lbGl6ZSA9IEZpeFVwRGVjYW1lbGl6ZWROYW1lKGRl
Y2FtZWxpemUoJGludGVyZmFjZU5hbWUpKTsKIAorICAgIGlmICgkb2JqZWN0IGVxICJNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyIikgeworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgaWYgKFNr
aXBGdW5jdGlvbigkZnVuY3Rpb24sICRkZWNhbWVsaXplLCAkcHJlZml4KSkgewogICAgICAgICBy
ZXR1cm47CiAgICAgfQpAQCAtODI3LDcgKzgzNiw3IEBAIHN1YiBHZW5lcmF0ZUZ1bmN0aW9uIHsK
IAogICAgIGZvcmVhY2ggbXkgJHBhcmFtIChAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc30pIHsKICAg
ICAgICAgbXkgJHBhcmFtSURMVHlwZSA9ICRwYXJhbS0+dHlwZTsKLSAgICAgICAgaWYgKCRwYXJh
bUlETFR5cGUgZXEgIkV2ZW50TGlzdGVuZXIiKSB7CisgICAgICAgIGlmICgkcGFyYW1JRExUeXBl
IGVxICJFdmVudExpc3RlbmVyIiB8fCAkcGFyYW1JRExUeXBlIGVxICJNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyIikgewogICAgICAgICAgICAgcHVzaChAaEJvZHksICJcbi8qIFRPRE86IGV2ZW50IGZ1
bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKICAgICAgICAgICAgIHB1c2goQGNCb2R5
LCAiXG4vKiBUT0RPOiBldmVudCBmdW5jdGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CiAg
ICAgICAgICAgICByZXR1cm47CkBAIC0xMDgwLDcgKzEwODksOSBAQCBzdWIgR2VuZXJhdGVGdW5j
dGlvbnMgewogCiAgICAgVE9QOgogICAgIGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQHskZGF0YU5v
ZGUtPmF0dHJpYnV0ZXN9KSB7Ci0gICAgICAgIGlmIChTa2lwQXR0cmlidXRlKCRhdHRyaWJ1dGUp
IHx8ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSBlcSAiRXZlbnRMaXN0ZW5lciIpIHsKKyAg
ICAgICAgaWYgKFNraXBBdHRyaWJ1dGUoJGF0dHJpYnV0ZSkgfHwKKyAgICAgICAgICAgICRhdHRy
aWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSBlcSAiRXZlbnRMaXN0ZW5lciIgfHwKKyAgICAgICAgICAg
ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSBlcSAiTWVkaWFRdWVyeUxpc3RMaXN0ZW5lciIp
IHsKICAgICAgICAgICAgIG5leHQgVE9QOwogICAgICAgICB9CiAgICAgICAgIApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggMWExMTRhNC4uNjQwNzJl
OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bQorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC02
LDYgKzYsNyBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIyBDb3B5cmlnaHQgKEMpIDIwMDkgQ2Ft
ZXJvbiBNY0Nvcm1hY2sgPGNhbUBtY2MuaWQuYXU+CiAjIENvcHlyaWdodCAoQykgUmVzZWFyY2gg
SW4gTW90aW9uIExpbWl0ZWQgMjAxMC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0
IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQog
IwogIyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCiAjIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCkBAIC0yODIsNiArMjgzLDEwIEBAIHN1YiBBZGRJbmNsdWRlc0ZvclR5
cGUKICAgICBpZiAoJHR5cGUgZXEgIkRvY3VtZW50IikgewogICAgICAgICAkaW1wbEluY2x1ZGVz
eyJOb2RlRmlsdGVyLmgifSA9IDE7CiAgICAgfQorCisgICAgaWYgKCR0eXBlIGVxICJNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyIikgeworICAgICAgICAkaW1wbEluY2x1ZGVzeyJTY3JpcHRNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyLmgifSA9IDE7CisgICAgfQogfQogCiBzdWIgQWRkSW5jbHVkZXNGb3JT
VkdBbmltYXRlZFR5cGUKQEAgLTIzNTksNiArMjM2NCw3IEBAIG15ICVuYXRpdmVUeXBlID0gKAog
ICAgICJ1bnNpZ25lZCBzaG9ydCIgPT4gInVuc2lnbmVkIHNob3J0IiwKICAgICAibG9uZyBsb25n
IiA9PiAibG9uZyBsb25nIiwKICAgICAidW5zaWduZWQgbG9uZyBsb25nIiA9PiAidW5zaWduZWQg
bG9uZyBsb25nIiwKKyAgICAiTWVkaWFRdWVyeUxpc3RMaXN0ZW5lciIgPT4gIlJlZlB0cjxTY3Jp
cHRNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyPiIKICk7CiAKIHN1YiBHZXROYXRpdmVUeXBlCkBAIC0y
NDA1LDYgKzI0MTEsMTEgQEAgc3ViIEpTVmFsdWVUb05hdGl2ZQogICAgICAgICByZXR1cm4gIiR2
YWx1ZSI7CiAgICAgfQogCisgICAgaWYgKCR0eXBlIGVxICJNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
IikgeworICAgICAgICAkaW1wbEluY2x1ZGVzeyJTY3JpcHRNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
LmgifSA9IDE7CisgICAgICAgIHJldHVybiAiU2NyaXB0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6
Y3JlYXRlKCIgLiAkdmFsdWUgLiIpIjsKKyAgICB9CisKICAgICBpZiAoJHR5cGUgZXEgIlNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZSIgb3IgJHR5cGUgZXEgImFueSIpIHsKICAgICAgICAgJGltcGxJbmNs
dWRlc3siU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgifSA9IDE7CiAgICAgICAgIHJldHVybiAiU2Vy
aWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUoZXhlYywgJHZhbHVlKSI7CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtIGIvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQppbmRleCBmZGU2OTk1Li43NWU5MTEzIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCisr
KyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KQEAgLTYsNiAr
Niw3IEBACiAjIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgogIyBDb3B5
cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMDkgR29vZ2xlIEluYy4KICMgQ29weXJpZ2h0IChDKSAy
MDA5IENhbWVyb24gTWNDb3JtYWNrIDxjYW1AbWNjLmlkLmF1PgorIyBDb3B5cmlnaHQgKEMpIDIw
MTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAjCiAjIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKICMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKQEAgLTI4NjMsNiArMjg2NCw4IEBAIHN1YiBHZXROYXRpdmVUeXBlCiAKICAgICBy
ZXR1cm4gIlJlZlB0cjwke3R5cGV9PiIgaWYgSXNSZWZQdHJUeXBlKCR0eXBlKSBhbmQgbm90ICRp
c1BhcmFtZXRlcjsKIAorICAgIHJldHVybiAiUmVmUHRyPFNjcmlwdE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXI+IiBpZiAkdHlwZSBlcSAiTWVkaWFRdWVyeUxpc3RMaXN0ZW5lciI7CisKICAgICAjIERl
ZmF1bHQsIGFzc3VtZSBuYXRpdmUgdHlwZSBpcyBhIHBvaW50ZXIgd2l0aCBzYW1lIHR5cGUgbmFt
ZSBhcyBpZGwgdHlwZQogICAgIHJldHVybiAiJHt0eXBlfSoiOwogfQpAQCAtMjk1OSw2ICsyOTYy
LDExIEBAIHN1YiBKU1ZhbHVlVG9OYXRpdmUKICAgICAgICAgJGltcGxJbmNsdWRlc3siRmxvYXRS
ZWN0LmgifSA9IDE7CiAgICAgfQogCisgICAgaWYgKCR0eXBlIGVxICJNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyIikgeworICAgICAgICAkaW1wbEluY2x1ZGVzeyJTY3JpcHRNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyLmgifSA9IDE7CisgICAgICAgIHJldHVybiAiU2NyaXB0TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lcjo6Y3JlYXRlKCIgLiAkdmFsdWUgLiAiKSI7CisgICAgfQorCiAgICAgaWYgKCR0eXBlIGVx
ICJTVkdQb2ludCIpIHsKICAgICAgICAgJGltcGxJbmNsdWRlc3siRmxvYXRQb2ludC5oIn0gPSAx
OwogICAgIH0KQEAgLTMxMDcsNyArMzExNSw4IEBAIG15ICVub25fd3JhcHBlcl90eXBlcyA9ICgK
ICAgICAnTm9kZUZpbHRlcicgPT4gMSwKICAgICAnRXZlbnRMaXN0ZW5lcicgPT4gMSwKICAgICAn
SURCS2V5JyA9PiAxLAotICAgICdEYXRlJyA9PiAxCisgICAgJ0RhdGUnID0+IDEsCisgICAgJ01l
ZGlhUXVlcnlMaXN0TGlzdGVuZXInID0+IDEKICk7CiAKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9j
c3MvTWVkaWFRdWVyeUxpc3QuY3BwIGIvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3QuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ1YzMwOWQKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdC5jcHAKQEAgLTAsMCArMSwxMDEgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlh
UXVlcnlMaXN0LmgiCisKKyNpbmNsdWRlICJNZWRpYUxpc3QuaCIKKyNpbmNsdWRlICJNZWRpYVF1
ZXJ5RXZhbHVhdG9yLmgiCisjaW5jbHVkZSAiTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oIgorI2lu
Y2x1ZGUgIk1lZGlhUXVlcnlNYXRjaGVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFz
c1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdD4gTWVkaWFRdWVyeUxpc3Q6OmNyZWF0ZShQYXNzUmVmUHRy
PE1lZGlhUXVlcnlNYXRjaGVyPiB2ZWN0b3IsIFBhc3NSZWZQdHI8TWVkaWFMaXN0PiBtZWRpYSwg
Ym9vbCBtYXRjaGVzKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgTWVkaWFRdWVyeUxpc3Qo
dmVjdG9yLCBtZWRpYSwgbWF0Y2hlcykpOworfQorCitNZWRpYVF1ZXJ5TGlzdDo6TWVkaWFRdWVy
eUxpc3QoUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TWF0Y2hlcj4gdmVjdG9yLCBQYXNzUmVmUHRyPE1l
ZGlhTGlzdD4gbWVkaWEsIGJvb2wgbWF0Y2hlcykKKyAgICA6IG1fbWF0Y2hlcih2ZWN0b3IpCisg
ICAgLCBtX21lZGlhKG1lZGlhKQorICAgICwgbV9ldmFsUm91bmQobV9tYXRjaGVyLT5ldmFsdWF0
aW9uUm91bmQoKSkKKyAgICAsIG1fY2hhbmdlUm91bmQobV9ldmFsUm91bmQgLSAxKSAvLyBtX2V2
YWxSb3VuZCBhbmQgbV9jaGFuZ2VSb3VuZCBpbml0aWFsIHZhbHVlcyBtdXN0IGJlIGRpZmZlcmVu
dAorICAgICwgbV9tYXRjaGVzKG1hdGNoZXMpCit7Cit9CisKK01lZGlhUXVlcnlMaXN0Ojp+TWVk
aWFRdWVyeUxpc3QoKQoreworfQorCitTdHJpbmcgTWVkaWFRdWVyeUxpc3Q6Om1lZGlhKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV9tZWRpYS0+bWVkaWFUZXh0KCk7Cit9CisKK3ZvaWQgTWVkaWFR
dWVyeUxpc3Q6OmFkZExpc3RlbmVyKFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4g
bGlzdGVuZXIpCit7CisgICAgbV9tYXRjaGVyLT5hZGRMaXN0ZW5lcihsaXN0ZW5lciwgdGhpcyk7
Cit9CisKK3ZvaWQgTWVkaWFRdWVyeUxpc3Q6OnJlbW92ZUxpc3RlbmVyKFBhc3NSZWZQdHI8TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lcj4gbGlzdGVuZXIpCit7CisgICAgbV9tYXRjaGVyLT5yZW1vdmVM
aXN0ZW5lcihsaXN0ZW5lciwgdGhpcyk7Cit9CisKK3ZvaWQgTWVkaWFRdWVyeUxpc3Q6OmV2YWx1
YXRlKE1lZGlhUXVlcnlFdmFsdWF0b3IqIGV2YWx1YXRvcikKK3sKKyAgICBpZiAobV9ldmFsUm91
bmQgPT0gbV9tYXRjaGVyLT5ldmFsdWF0aW9uUm91bmQoKSB8fCAhZXZhbHVhdG9yKQorICAgICAg
ICByZXR1cm47CisgICAgc2V0TWF0Y2hlcyhldmFsdWF0b3ItPmV2YWwobV9tZWRpYS5nZXQoKSkp
OworfQorCit2b2lkIE1lZGlhUXVlcnlMaXN0OjpzZXRNYXRjaGVzKGJvb2wgbmV3VmFsdWUpCit7
CisgICAgbV9ldmFsUm91bmQgPSBtX21hdGNoZXItPmV2YWx1YXRpb25Sb3VuZCgpOworCisgICAg
aWYgKG5ld1ZhbHVlID09IG1fbWF0Y2hlcykKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9tYXRj
aGVzID0gbmV3VmFsdWU7CisgICAgbV9jaGFuZ2VSb3VuZCA9IG1fZXZhbFJvdW5kOworfQorCiti
b29sIE1lZGlhUXVlcnlMaXN0Ojpub3RpZmljYXRpb25OZWVkZWQoKQoreworICAgIGlmIChtX2V2
YWxSb3VuZCAhPSBtX21hdGNoZXItPmV2YWx1YXRpb25Sb3VuZCgpKQorICAgICAgICBzZXRNYXRj
aGVzKG1fbWF0Y2hlci0+ZXZhbHVhdGUobV9tZWRpYS5nZXQoKSkpOworICAgIHJldHVybiBtX2V2
YWxSb3VuZCA9PSBtX2NoYW5nZVJvdW5kOworfQorCitib29sIE1lZGlhUXVlcnlMaXN0OjptYXRj
aGVzKCkKK3sKKyAgICBpZiAobV9ldmFsUm91bmQgIT0gbV9tYXRjaGVyLT5ldmFsdWF0aW9uUm91
bmQoKSkKKyAgICAgICAgc2V0TWF0Y2hlcyhtX21hdGNoZXItPmV2YWx1YXRlKG1fbWVkaWEuZ2V0
KCkpKTsKKyAgICByZXR1cm4gbV9tYXRjaGVzOworfQorCit9CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2Nzcy9NZWRpYVF1ZXJ5TGlzdC5oIGIvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3QuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNGNhYmMxCi0tLSAvZGV2L251bGwKKysr
IGIvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3QuaApAQCAtMCwwICsxLDc0IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFy
eSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgTWVkaWFRdWVyeUxpc3RfaAorI2RlZmluZSBNZWRpYVF1
ZXJ5TGlzdF9oCisKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE1lZGlhTGlzdDsK
K2NsYXNzIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI7CitjbGFzcyBNZWRpYVF1ZXJ5RXZhbHVhdG9y
OworY2xhc3MgTWVkaWFRdWVyeU1hdGNoZXI7CisKKy8qCisgIE1lZGlhUXVlcnlMaXN0IGludGVy
ZmFjZSBpcyBzcGVjaWZpZWQgYXQgaHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3Nzb20tdmlldy8j
dGhlLW1lZGlhcXVlcnlsaXN0LWludGVyZmFjZQorICBUaGUgb2JqZWN0cyBvZiB0aGlzIGNsYXNz
IGFyZSByZXR1cm5lZCBieSB3aW5kb3cubWF0Y2hNZWRpYS4gVGhleSBtYXkgYmUgdXNlZCB0bwor
ICByZXRyaWV2ZSB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgZ2l2ZW4gbWVkaWEgcXVlcnkgYW5k
IHRvIGFkZC9yZW1vdmUgbGlzdGVuZXJzIHRoYXQKKyAgd2lsbCBiZSBjYWxsZWQgd2hlbmV2ZXIg
dGhlIHZhbHVlIG9mIHRoZSBxdWVyeSBjaGFuZ2VzLgorKi8KK2NsYXNzIE1lZGlhUXVlcnlMaXN0
IDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFRdWVyeUxpc3Q+IHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdD4gY3JlYXRlKFBhc3NSZWZQdHI8TWVkaWFRdWVy
eU1hdGNoZXI+LCBQYXNzUmVmUHRyPE1lZGlhTGlzdD4sIGJvb2wpOworICAgIH5NZWRpYVF1ZXJ5
TGlzdCgpOworCisgICAgU3RyaW5nIG1lZGlhKCkgY29uc3Q7CisgICAgYm9vbCBtYXRjaGVzKCk7
CisKKyAgICB2b2lkIGFkZExpc3RlbmVyKFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3RMaXN0ZW5l
cj4pOworICAgIHZvaWQgcmVtb3ZlTGlzdGVuZXIoUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyPik7CisKKyAgICB2b2lkIGV2YWx1YXRlKE1lZGlhUXVlcnlFdmFsdWF0b3IqKTsKKyAg
ICBib29sIG5vdGlmaWNhdGlvbk5lZWRlZCgpOworCitwcml2YXRlOgorICAgIE1lZGlhUXVlcnlM
aXN0KFBhc3NSZWZQdHI8TWVkaWFRdWVyeU1hdGNoZXI+LCBQYXNzUmVmUHRyPE1lZGlhTGlzdD4s
IGJvb2wgbWF0Y2hlcyk7CisgICAgdm9pZCBzZXRNYXRjaGVzKGJvb2wpOworCisgICAgUmVmUHRy
PE1lZGlhUXVlcnlNYXRjaGVyPiBtX21hdGNoZXI7CisgICAgUmVmUHRyPE1lZGlhTGlzdD4gbV9t
ZWRpYTsKKyAgICBpbnQgbV9ldmFsUm91bmQ7IC8vIGluZGljYXRlcyBpZiB0aGUgcXVlcnkgaGFz
IGJlZW4gZXZhbHVhdGVkIGFmdGVyIHRoZSBsYXN0IHN0eWxlIHNlbGVjdG9yIGNoYW5nZS4KKyAg
ICBpbnQgbV9jaGFuZ2VSb3VuZDsgLy8gdXNlZCB0byBrbm93IGlmIHRoZSBxdWVyeSBoYXMgY2hh
bmdlZCBpbiB0aGUgbGFzdCBzdHlsZSBzZWxlY3RvciBjaGFuZ2UuCisgICAgYm9vbCBtX21hdGNo
ZXM7Cit9OworCit9CisKKyNlbmRpZiAvLyBNZWRpYVF1ZXJ5TGlzdF9oCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdC5pZGwgYi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlz
dC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTQyNGE3OQotLS0gL2Rl
di9udWxsCisrKyBiL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0LmlkbApAQCAtMCwwICsxLDMz
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSB2aWV3IHsKKyAgICBpbnRlcmZhY2Ug
TWVkaWFRdWVyeUxpc3QgeworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG1l
ZGlhOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBtYXRjaGVzOworICAgICAg
ICB2b2lkIGFkZExpc3RlbmVyKGluIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIgbGlzdGVuZXIpOwor
ICAgICAgICB2b2lkIHJlbW92ZUxpc3RlbmVyKGluIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIgbGlz
dGVuZXIpOworICAgIH07Cit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyLmggYi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmU5N2VhNAotLS0gL2Rldi9udWxsCisrKyBi
L1dlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaApAQCAtMCwwICsxLDYxIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vi
c2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTWVkaWFRdWVyeUxpc3RMaXN0ZW5lcl9oCisj
ZGVmaW5lIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJfaAorCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJp
bmcuaCIKKyNpbmNsdWRlICJTY3JpcHRTdGF0ZS5oIgorCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBNZWRpYVF1ZXJ5TGlzdDsKKwor
LyoKKyAgU2VlIGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzc29tLXZpZXcvI3RoZS1tZWRpYXF1
ZXJ5bGlzdC1pbnRlcmZhY2UKKyovCitjbGFzcyBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIDogcHVi
bGljIFJlZkNvdW50ZWQ8TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4geworcHVibGljOgorICAgIGVu
dW0gVHlwZSB7CisgICAgICAgIFNjcmlwdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJUeXBlCisgICAg
fTsKKworICAgIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIoVHlwZSB0eXBlKSA6IG1fdHlwZSh0eXBl
KSB7fQorICAgIHZpcnR1YWwgfk1lZGlhUXVlcnlMaXN0TGlzdGVuZXIoKSB7fQorCisgICAgdmly
dHVhbCB2b2lkIHF1ZXJ5Q2hhbmdlZChTY3JpcHRTdGF0ZSosIE1lZGlhUXVlcnlMaXN0KikgPSAw
OworCisgICAgdmlydHVhbCBib29sIGlzRXF1YWxUbyhTY3JpcHRTdGF0ZSosIGNvbnN0IE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXIqKSA9IDA7CisgICAgaW50IHR5cGUoKSBjb25zdCB7IHJldHVybiBt
X3R5cGU7IH0KKworcHJpdmF0ZToKKyAgICBUeXBlIG1fdHlwZTsKK307CisKK30KKworI2VuZGlm
IC8vIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvTWVk
aWFRdWVyeUxpc3RMaXN0ZW5lci5pZGwgYi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43N2FiODEyCi0tLSAv
ZGV2L251bGwKKysrIGIvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5pZGwKQEAg
LTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlv
biBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgdmlldyB7CisgICAg
aW50ZXJmYWNlIFsKKyAgICAgICAgTm9TdGF0aWNUYWJsZXMsCisgICAgICAgIE9iakNQcm90b2Nv
bCwKKyAgICAgICAgUHVyZUludGVyZmFjZSwKKyAgICAgICAgT21pdENvbnN0cnVjdG9yCisgICAg
XSBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIHsKKyAgICAgICAgW0NhbGxXaXRoPVNjcmlwdFN0YXRl
XSB2b2lkIHF1ZXJ5Q2hhbmdlZChpbiBNZWRpYVF1ZXJ5TGlzdCBtcWwpOworICAgIH07Cit9CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TWF0Y2hlci5jcHAgYi9XZWJDb3JlL2Nz
cy9NZWRpYVF1ZXJ5TWF0Y2hlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uYzdmMjdiNAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlNYXRj
aGVyLmNwcApAQCAtMCwwICsxLDE3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tp
YSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFRdWVyeU1hdGNoZXIuaCIKKworI2luY2x1ZGUg
IkNTU1N0eWxlU2VsZWN0b3IuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyNpbmNsdWRlICJNZWRpYUxpc3QuaCIK
KyNpbmNsdWRlICJNZWRpYVF1ZXJ5RXZhbHVhdG9yLmgiCisjaW5jbHVkZSAiTWVkaWFRdWVyeUxp
c3QuaCIKKyNpbmNsdWRlICJNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworTWVkaWFRdWVyeU1hdGNoZXI6Okxpc3RlbmVyOjpMaXN0ZW5lcihQYXNzUmVm
UHRyPE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+IGxpc3RlbmVyLCBQYXNzUmVmUHRyPE1lZGlhUXVl
cnlMaXN0PiBxdWVyeSkKKyAgICA6IG1fbGlzdGVuZXIobGlzdGVuZXIpCisgICAgLCBtX3F1ZXJ5
KHF1ZXJ5KQoreworfQorCitNZWRpYVF1ZXJ5TWF0Y2hlcjo6TGlzdGVuZXI6On5MaXN0ZW5lcigp
Cit7Cit9CisKK3ZvaWQgTWVkaWFRdWVyeU1hdGNoZXI6Okxpc3RlbmVyOjpldmFsdWF0ZShTY3Jp
cHRTdGF0ZSogc3RhdGUsIE1lZGlhUXVlcnlFdmFsdWF0b3IqIGV2YWx1YXRvcikKK3sKKyAgICBt
X3F1ZXJ5LT5ldmFsdWF0ZShldmFsdWF0b3IpOworICAgIGlmIChtX3F1ZXJ5LT5ub3RpZmljYXRp
b25OZWVkZWQoKSkKKyAgICAgICAgbV9saXN0ZW5lci0+cXVlcnlDaGFuZ2VkKHN0YXRlLCBtX3F1
ZXJ5LmdldCgpKTsKK30KKworTWVkaWFRdWVyeU1hdGNoZXI6Ok1lZGlhUXVlcnlNYXRjaGVyKERv
Y3VtZW50KiBkb2N1bWVudCkKKyAgICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCisgICAgLCBtX2V2
YWx1YXRpb25Sb3VuZCgwKQorICAgICwgbV90ZXJtaW5hdGVkKGZhbHNlKQoreworfQorCitNZWRp
YVF1ZXJ5TWF0Y2hlcjo6fk1lZGlhUXVlcnlNYXRjaGVyKCkKK3sKKyAgICBkZWxldGVBbGxWYWx1
ZXMobV9saXN0ZW5lcnMpOworfQorCit2b2lkIE1lZGlhUXVlcnlNYXRjaGVyOjp0ZXJtaW5hdGUo
KQoreworICAgIG1fdGVybWluYXRlZCA9IHRydWU7CisgICAgZGVsZXRlQWxsVmFsdWVzKG1fbGlz
dGVuZXJzKTsKKyAgICBtX2xpc3RlbmVycy5jbGVhcigpOworICAgIG1fZG9jdW1lbnQgPSAwOwor
fQorCitTdHJpbmcgTWVkaWFRdWVyeU1hdGNoZXI6Om1lZGlhVHlwZSgpIGNvbnN0Cit7CisgICAg
aWYgKCFtX2RvY3VtZW50IHx8ICFtX2RvY3VtZW50LT5mcmFtZSgpIHx8ICFtX2RvY3VtZW50LT5m
cmFtZSgpLT52aWV3KCkpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKworICAgIHJldHVybiBt
X2RvY3VtZW50LT5mcmFtZSgpLT52aWV3KCktPm1lZGlhVHlwZSgpOworfQorCitQYXNzT3duUHRy
PE1lZGlhUXVlcnlFdmFsdWF0b3I+IE1lZGlhUXVlcnlNYXRjaGVyOjpwcmVwYXJlRXZhbHVhdG9y
KCkgY29uc3QKK3sKKyAgICBpZiAoIW1fZG9jdW1lbnQgfHwgIW1fZG9jdW1lbnQtPmZyYW1lKCkp
CisgICAgICAgIHJldHVybiAwOworCisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gbV9kb2N1bWVu
dC0+ZnJhbWUoKS0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICByZXR1
cm4gMDsKKworICAgIEVsZW1lbnQqIGRvY3VtZW50RWxlbWVudCA9IGRvY3VtZW50LT5kb2N1bWVu
dEVsZW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50RWxlbWVudCkKKyAgICAgICAgcmV0dXJuIDA7
CisKKyAgICBDU1NTdHlsZVNlbGVjdG9yKiBzdHlsZVNlbGVjdG9yID0gZG9jdW1lbnQtPnN0eWxl
U2VsZWN0b3IoKTsKKyAgICBpZiAoIXN0eWxlU2VsZWN0b3IpCisgICAgICAgIHJldHVybiAwOwor
CisgICAgUmVmUHRyPFJlbmRlclN0eWxlPiByb290U3R5bGUgPSBzdHlsZVNlbGVjdG9yLT5zdHls
ZUZvckVsZW1lbnQoZG9jdW1lbnRFbGVtZW50LCAwIC8qZGVmYXVsdFBhcmVudCovLCBmYWxzZSAv
KmFsbG93U2hhcmluZyovLCB0cnVlIC8qcmVzb2x2ZUZvclJvb3REZWZhdWx0Ki8pOworCisgICAg
cmV0dXJuIGFkb3B0UHRyKG5ldyBNZWRpYVF1ZXJ5RXZhbHVhdG9yKG1lZGlhVHlwZSgpLCBtX2Rv
Y3VtZW50LT5mcmFtZSgpLCByb290U3R5bGUuZ2V0KCkpKTsKK30KKworYm9vbCBNZWRpYVF1ZXJ5
TWF0Y2hlcjo6ZXZhbHVhdGUoTWVkaWFMaXN0KiBtZWRpYSkKK3sKKyAgICBpZiAoIW1lZGlhKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBPd25QdHI8TWVkaWFRdWVyeUV2YWx1YXRvcj4g
ZXZhbHVhdG9yKHByZXBhcmVFdmFsdWF0b3IoKSk7CisgICAgcmV0dXJuIGV2YWx1YXRvciAmJiBl
dmFsdWF0b3ItPmV2YWwobWVkaWEpOworfQorCitQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0PiBN
ZWRpYVF1ZXJ5TWF0Y2hlcjo6bWF0Y2hNZWRpYShjb25zdCBTdHJpbmcmIHF1ZXJ5KQoreworICAg
IGlmIChtX3Rlcm1pbmF0ZWQpCisgICAgICAgIHJldHVybiAwOworCisgICAgUmVmUHRyPE1lZGlh
TGlzdD4gbWVkaWEgPSBNZWRpYUxpc3Q6OmNyZWF0ZShxdWVyeSwgZmFsc2UpOworICAgIHJldHVy
biBNZWRpYVF1ZXJ5TGlzdDo6Y3JlYXRlKHRoaXMsIG1lZGlhLCBldmFsdWF0ZShtZWRpYS5nZXQo
KSkpOworfQorCit2b2lkIE1lZGlhUXVlcnlNYXRjaGVyOjphZGRMaXN0ZW5lcihQYXNzUmVmUHRy
PE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+IGxpc3RlbmVyLCBQYXNzUmVmUHRyPE1lZGlhUXVlcnlM
aXN0PiBxdWVyeSkKK3sKKyAgICBpZiAobV90ZXJtaW5hdGVkIHx8ICFtX2RvY3VtZW50IHx8ICFt
X2RvY3VtZW50LT5mcmFtZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBTY3JpcHRTdGF0ZSog
ZXhlYyA9IG1haW5Xb3JsZFNjcmlwdFN0YXRlKG1fZG9jdW1lbnQtPmZyYW1lKCkpOworICAgIGlm
ICghZXhlYykKKyAgICAgICAgcmV0dXJuOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBt
X2xpc3RlbmVycy5zaXplKCk7ICsraSkgeworICAgICAgICBpZiAobV9saXN0ZW5lcnNbaV0tPmxp
c3RlbmVyKCktPmlzRXF1YWxUbyhleGVjLCBsaXN0ZW5lci5nZXQoKSkgJiYgbV9saXN0ZW5lcnNb
aV0tPnF1ZXJ5KCkgPT0gcXVlcnkuZ2V0KCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgbV9saXN0ZW5lcnMuYXBwZW5kKG5ldyBMaXN0ZW5lcihsaXN0ZW5lciwgcXVlcnkpKTsK
K30KKwordm9pZCBNZWRpYVF1ZXJ5TWF0Y2hlcjo6cmVtb3ZlTGlzdGVuZXIoUGFzc1JlZlB0cjxN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyPiBsaXN0ZW5lciwgUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TGlz
dD4gcXVlcnkpCit7CisgICAgaWYgKG1fdGVybWluYXRlZCB8fCAhbV9kb2N1bWVudCB8fCAhbV9k
b2N1bWVudC0+ZnJhbWUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgU2NyaXB0U3RhdGUqIGV4
ZWMgPSBtYWluV29ybGRTY3JpcHRTdGF0ZShtX2RvY3VtZW50LT5mcmFtZSgpKTsKKyAgICBpZiAo
IWV4ZWMpCisgICAgICAgIHJldHVybjsKKworICAgIGZvciAoaW50IGkgPSBtX2xpc3RlbmVycy5z
aXplKCkgLSAxOyBpID49IDA7IC0taSkgeworICAgICAgICBpZiAobV9saXN0ZW5lcnNbaV0tPmxp
c3RlbmVyKCktPmlzRXF1YWxUbyhleGVjLCBsaXN0ZW5lci5nZXQoKSkgJiYgbV9saXN0ZW5lcnNb
aV0tPnF1ZXJ5KCkgPT0gcXVlcnkuZ2V0KCkpIHsKKyAgICAgICAgICAgIGRlbGV0ZSBtX2xpc3Rl
bmVyc1tpXTsKKyAgICAgICAgICAgIG1fbGlzdGVuZXJzLnJlbW92ZShpKTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCBNZWRpYVF1ZXJ5TWF0Y2hlcjo6
ZXZhbHVhdGUoKQoreworICAgIEFTU0VSVCghbV90ZXJtaW5hdGVkKTsKKworICAgIFNjcmlwdFN0
YXRlKiBleGVjID0gbWFpbldvcmxkU2NyaXB0U3RhdGUobV9kb2N1bWVudC0+ZnJhbWUoKSk7Cisg
ICAgaWYgKCFleGVjKQorICAgICAgICByZXR1cm47CisKKyAgICArK21fZXZhbHVhdGlvblJvdW5k
OworICAgIE93blB0cjxNZWRpYVF1ZXJ5RXZhbHVhdG9yPiBldmFsdWF0b3IgPSBwcmVwYXJlRXZh
bHVhdG9yKCk7CisgICAgaWYgKCFldmFsdWF0b3IpCisgICAgICAgIHJldHVybjsKKworICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9saXN0ZW5lcnMuc2l6ZSgpOyArK2kpCisgICAgICAgIG1f
bGlzdGVuZXJzW2ldLT5ldmFsdWF0ZShleGVjLCBldmFsdWF0b3IuZ2V0KCkpOworfQorCit9CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TWF0Y2hlci5oIGIvV2ViQ29yZS9jc3Mv
TWVkaWFRdWVyeU1hdGNoZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4w
OGZlODQxCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeU1hdGNoZXIu
aApAQCAtMCwwICsxLDE0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jw
b3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE1lZGlh
UXVlcnlNYXRjaGVyX2gKKyNkZWZpbmUgTWVkaWFRdWVyeU1hdGNoZXJfaAorCisjaW5jbHVkZSAi
U2NyaXB0U3RhdGUuaCIKKworI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRG9jdW1l
bnQ7CitjbGFzcyBNZWRpYUxpc3Q7CitjbGFzcyBNZWRpYVF1ZXJ5TGlzdDsKK2NsYXNzIE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXI7CitjbGFzcyBNZWRpYVF1ZXJ5RXZhbHVhdG9yOworCisvKgorICBN
ZWRpYVF1ZXJ5TWF0Y2hlciBjbGFzcyBpcyByZXNwb25zaWJsZSBmb3Iga2VlcGluZyBhIHZlY3Rv
ciBvZiBwYWlycworICBNZWRpYVF1ZXJ5TGlzdCB4IE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuIEl0
IGlzIHJlc3BvbnNpYmxlIGZvciBldmFsdWF0aW5nIHRoZSBxdWVyaWVzCisgIHdoZW5ldmVyIGl0
IGlzIG5lZWRlZCBhbmQgdG8gY2FsbCB0aGUgbGlzdGVuZXJzIGlmIHRoZSBjb3JyZXNwb25kaW5n
IHF1ZXJ5IGhhcyBjaGFuZ2VkLgorICBUaGUgbGlzdGVuZXJzIG11c3QgYmUgY2FsbGVkIGluIHRo
ZSB2ZXJ5IHNhbWUgb3JkZXIgaW4gd2hpY2ggdGhleSBoYXZlIGJlZW4gYWRkZWQuCisKKyAgT2Jq
ZWN0IGRpYWdyYW06CisKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgTWVkaWFRdWVyeUxpc3RMaXN0ZW5lcgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICBEb2N1bWVudCAtLS0tLS0tLT4gIE1lZGlh
UXVlcnlNYXRjaGVyIC0tLS0tLS0tLS0tLS0tLS0tLT4gIExpc3RlbmVyCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBeICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgICAgIHwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICArLS0tLS0tICBNZWRpYVF1ZXJ5TGlzdCAgPC0tLS0tLS0tLSsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgSlNNZWRpYVF1ZXJ5TGlzdAorCisgICogQWxsIGFycm93cyBpbiB0aGlzIGRpYWdy
YW0sIGV4Y2VwdCB0aGUgb25lIGJldHdlZW4gTWVkaWFRdWVyeU1hdGNoZXIgYW5kIExpc3RlbmVy
LAorICAgIGFyZSBSZWZQdHI8Pi4KKworICBPYmplY3RzIGxpZmVjeWNsZToKKworICBObyByZWZl
cmVuY2UgdG8gTWVkaWFRdWVyeUxpc3QgaW5zdGFuY2VzIGlzIGtlcHQgYnkgY2xhc3MgTWVkaWFR
dWVyeU1hdGNoZXIgaXRzZWxmLiBUaGUgcmVhc29uCisgIGlzIHRoYXQgaWYgTWVkaWFRdWVyeUxp
c3Q6OmFkZExpc3RlbmVyIGlzIG5vdCBjYWxsZWQgdGhlIG9ubHkgcmVmZXJlbmNlIHRvIHRoZSBN
ZWRpYVF1ZXJ5TGlzdAorICBvYmplY3Qgd2lsbCBiZSBpbiBKYXZhc2NyaXB0IGFuZCBpdCB3aWxs
IGJlIGRlc3Ryb3llZCBhcyBzb29uIGFzIHRoZSBKUyBvYmplY3QgaXMgZ2FyYmFnZQorICBjb2xs
ZWN0ZWQuCisKKyAgQ2xhc3MgTWVkaWFRdWVyeUxpc3QgZG9lcyBub3Qga2VlcCBhIGxpc3Qgb2Yg
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci4gSXQgY2FsbHMKKyAgTWVkaWFRdWVyeU1hdGNoZXI6OmFk
ZExpc3RlbmVyIGV2ZXJ5IHRpbWUgaXRzIGFkZExpc3RlbmVyIG1ldGhvZCBpcyBjYWxsZWQsIHBh
c3NpbmcgdGhlCisgIHJlY2VpdmVkIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIgb2JqZWN0IGFuZCBp
dHNlbGYuIE1lZGlhUXVlcnlNYXRjaGVyOjphZGRMaXN0ZW5lciB3aWxsCisgIHRoZW4gYXBwZW5k
IGEgbmV3IE1lZGlhUXVlcnlNYXRjaGVyOjpMaXN0ZW5lciB0byBpdHMgaW50ZXJuYWwgdmVjdG9y
LCBpZiB0aGUgcGFpcgorICBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIHggTWVkaWFRdWVyeUxpc3Qg
aXMgbm90IGR1cGxpY2F0ZWQuCisKKyAgVGhpcyBuZXcgTGlzdGVuZXIgb2JqZWN0IGhhcyBhIHJl
ZmVyZW5jZSB0byB0aGUgTWVkaWFRdWVyeUxpc3Qgb2JqZWN0LCB0aGF0IHdpbGwga2VlcAorICBp
dCBhbGl2ZSB0byBiZSBwYXNzZWQgdG8gdGhlIGNhbGxiYWNrLiBJZiBhbGwgbGlzdGVuZXJzIGFy
ZSByZW1vdmVkIGZyb20gdGhhdAorICBNZWRpYVF1ZXJ5TGlzdCBvYmplY3QsIGFsbCBMaXN0ZW5l
ciBpbnN0YW5jZXMgcG9pbnRpbmcgdG8gdGhhdCBNZWRpYVF1ZXJ5TGlzdCBvYmplY3Qgd2lsbCBi
ZQorICBkZXN0cm95ZWQgYW5kIGFnYWluIHRoZSBvbmx5IHJlZmVyZW5jZSB0byB0aGUgcXVlcnkg
d2lsbCBiZSBpbiBKUy4KKworICBJdCBtYXkgYmUgdGhhdCBhIE1lZGlhUXVlcnlNYXRjaGVyIGlu
c3RhbmNlIGhhcyBvbmUgb3IgbW9yZSBMaXN0ZW5lciBpbnN0YW5jZXMgcG9pbnRpbmcgdG8gYQor
ICBNZWRpYVF1ZXJ5TGlzdCBhbmQgdGhpcyBNZWRpYVF1ZXJ5TGlzdCBoYXMgYSByZWZlcmVuY2Ug
dG8gdGhhdCBzYW1lIE1lZGlhUXVlcnlNYXRjaGVyIGluc3RhbmNlLAorICBwcmV2ZW50aW5nIHRo
ZW0gZnJvbSBiZWVuIGRlc3Ryb3llZCAodGhlIGN5Y2xlIGluIHRoZSBkaWFncmFtKS4gVGhhdCBp
cyB3aHkgdGhlCisgIE1lZGlhUXVlcnlNYXRjaGVyIG9iamVjdCBjYW5ub3QgYmUgb3duZWQgYnkg
dGhlIERvY3VtZW50IGluc3RhbmNlIGFuZCBhbiBzcGVjaWFsIHRlcm1pbmF0aW9uCisgIGhhbmRs
aW5nIGlzIHJlcXVpcmVkLgorCisgIE1ldGhvZCBNZWRpYVF1ZXJ5TWF0Y2hlcjo6dGVybWluYXRl
LCBjYWxsZWQgYnkgRG9jdW1lbnQganVzdCBiZWZvcmUgcmVsZWFzaW5nIHRoZQorICBNZWRpYVF1
ZXJ5TWF0Y2hlciByZWZlcmVuY2UsIHdpbGwgcmVtb3ZlIGFsbCByZWZlcmVuY2VzIHRvIE1lZGlh
UXVlcnlMaXN0IG9iamVjdHMgaW4KKyAgTWVkaWFRdWVyeU1hdGNoZXIgYW5kIHdpbGwgZ3VhcmFu
dGVlIHRoYXQgbm8gbmV3IG9uZSB3aWxsIGJlIGNyZWF0ZWQuIFRoZSBvbmx5IHJlZmVyZW5jZXMg
dG8KKyAgTWVkaWFRdWVyeUxpc3Qgb2JqZWN0cyB3aWxsIGJlIGFnYWluIGluIEpTLiBBbGwgTWVk
aWFRdWVyeUxpc3Qgb2JqZWN0cyB3aWxsIGJlIGRlc3Ryb3llZCBhcyBzb29uCisgIGFzIHRoZWly
IGNvcnJlc3BvbmRpbmcgSlMgb2JqZWN0cyBnZXQgZ2FyYmFnZSBjb2xsZWN0ZWQgYW5kIE1lZGlh
UXVlcnlNYXRjaGVyIHdpbGwgZGllIGFzIHNvb24KKyAgYXMgdGhlIGxhc3QgTWVkaWFRdWVyeUxp
c3Qgb2JqZWN0IGRpZXMuCisqLworY2xhc3MgTWVkaWFRdWVyeU1hdGNoZXIgOiBwdWJsaWMgUmVm
Q291bnRlZDxNZWRpYVF1ZXJ5TWF0Y2hlcj4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVm
UHRyPE1lZGlhUXVlcnlNYXRjaGVyPiBjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KSB7IHJldHVy
biBhZG9wdFJlZihuZXcgTWVkaWFRdWVyeU1hdGNoZXIoZG9jdW1lbnQpKTsgfQorICAgIH5NZWRp
YVF1ZXJ5TWF0Y2hlcigpOworICAgIHZvaWQgdGVybWluYXRlKCk7CisKKyAgICB2b2lkIGFkZExp
c3RlbmVyKFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4sIFBhc3NSZWZQdHI8TWVk
aWFRdWVyeUxpc3Q+KTsKKyAgICB2b2lkIHJlbW92ZUxpc3RlbmVyKFBhc3NSZWZQdHI8TWVkaWFR
dWVyeUxpc3RMaXN0ZW5lcj4sIFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3Q+KTsKKworICAgIFBh
c3NSZWZQdHI8TWVkaWFRdWVyeUxpc3Q+IG1hdGNoTWVkaWEoY29uc3QgU3RyaW5nJik7CisKKyAg
ICBpbnQgZXZhbHVhdGlvblJvdW5kKCkgY29uc3QgeyByZXR1cm4gbV9ldmFsdWF0aW9uUm91bmQ7
IH0KKyAgICB2b2lkIGV2YWx1YXRlKCk7CisgICAgYm9vbCBldmFsdWF0ZShNZWRpYUxpc3QqKTsK
KworcHJpdmF0ZToKKyAgICBjbGFzcyBMaXN0ZW5lciB7CisgICAgcHVibGljOgorICAgICAgICBM
aXN0ZW5lcihQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+LCBQYXNzUmVmUHRyPE1l
ZGlhUXVlcnlMaXN0Pik7CisgICAgICAgIH5MaXN0ZW5lcigpOworCisgICAgICAgIHZvaWQgZXZh
bHVhdGUoU2NyaXB0U3RhdGUqLCBNZWRpYVF1ZXJ5RXZhbHVhdG9yKik7CisKKyAgICAgICAgTWVk
aWFRdWVyeUxpc3RMaXN0ZW5lciogbGlzdGVuZXIoKSB7IHJldHVybiBtX2xpc3RlbmVyLmdldCgp
OyB9CisgICAgICAgIE1lZGlhUXVlcnlMaXN0KiBxdWVyeSgpIHsgcmV0dXJuIG1fcXVlcnkuZ2V0
KCk7IH0KKworICAgIHByaXZhdGU6CisgICAgICAgIFJlZlB0cjxNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyPiBtX2xpc3RlbmVyOworICAgICAgICBSZWZQdHI8TWVkaWFRdWVyeUxpc3Q+IG1fcXVlcnk7
CisgICAgfTsKKworICAgIE1lZGlhUXVlcnlNYXRjaGVyKERvY3VtZW50Kik7CisgICAgUGFzc093
blB0cjxNZWRpYVF1ZXJ5RXZhbHVhdG9yPiBwcmVwYXJlRXZhbHVhdG9yKCkgY29uc3Q7CisgICAg
U3RyaW5nIG1lZGlhVHlwZSgpIGNvbnN0OworCisgICAgRG9jdW1lbnQqIG1fZG9jdW1lbnQ7Cisg
ICAgVmVjdG9yPExpc3RlbmVyKj4gbV9saXN0ZW5lcnM7CisgICAgaW50IG1fZXZhbHVhdGlvblJv
dW5kOyAvLyB0aGlzIHZhbHVlIGlzIGluY3JlbWVudGVkIGF0IHN0eWxlIHNlbGVjdG9yIGNoYW5n
ZXMuCisgICAgICAgICAgICAgICAgICAgICAvLyBpdCBpcyB1c2VkIHRvIGF2b2lkIGV2YWx1YXRp
bmcgcXVlcmllcyBtb3JlIHRoZW4gb25jZQorICAgICAgICAgICAgICAgICAgICAgLy8gYW5kIHRv
IGF2b2lkIG5vdGlmaW5nIGEgY2hhbmdlIG1vcmUgdGhlbiBvbmNlLgorICAgIGJvb2wgbV90ZXJt
aW5hdGVkOworfTsKKworfQorCisjZW5kaWYgLy8gTWVkaWFRdWVyeU1hdGNoZXJfaApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CmluZGV4IGQ2OTM2NmYuLjdiZWYwNTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTYsNiArNiw3IEBACiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5IFRvcmNo
IE1vYmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIChodHRwOi8vd3d3LnRvcmNobW9iaWxl
LmNvbS8pCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQv
b3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtOTAsNiArOTEs
OCBAQAogI2luY2x1ZGUgIkluc3BlY3RvclRpbWVsaW5lQWdlbnQuaCIKICNpbmNsdWRlICJLZXli
b2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIk1lZGlhUXVlcnlM
aXN0LmgiCisjaW5jbHVkZSAiTWVkaWFRdWVyeU1hdGNoZXIuaCIKICNpbmNsdWRlICJNZXNzYWdl
RXZlbnQuaCIKICNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiTW91c2VFdmVudFdp
dGhIaXRUZXN0UmVzdWx0cy5oIgpAQCAtNTY0LDYgKzU2NywxNiBAQCBEb2N1bWVudDo6fkRvY3Vt
ZW50KCkKICAgICAgICAgbV9zdHlsZVNoZWV0cy0+ZG9jdW1lbnREZXN0cm95ZWQoKTsKIAogICAg
IG1fd2Vha1JlZmVyZW5jZS0+Y2xlYXIoKTsKKworICAgIGlmIChtX21lZGlhUXVlcnlNYXRjaGVy
KQorICAgICAgICBtX21lZGlhUXVlcnlNYXRjaGVyLT50ZXJtaW5hdGUoKTsKK30KKworUGFzc1Jl
ZlB0cjxNZWRpYVF1ZXJ5TGlzdD4gRG9jdW1lbnQ6Om1hdGNoTWVkaWEoY29uc3QgU3RyaW5nJiBt
ZWRpYSkKK3sKKyAgICBpZiAoIW1fbWVkaWFRdWVyeU1hdGNoZXIpCisgICAgICAgIG1fbWVkaWFR
dWVyeU1hdGNoZXIgPSBNZWRpYVF1ZXJ5TWF0Y2hlcjo6Y3JlYXRlKHRoaXMpOworICAgIHJldHVy
biBtX21lZGlhUXVlcnlNYXRjaGVyLT5tYXRjaE1lZGlhKG1lZGlhKTsKIH0KIAogI2lmIFVTRShK
U0MpCkBAIC0yODI2LDYgKzI4MzksOSBAQCB2b2lkIERvY3VtZW50OjpzdHlsZVNlbGVjdG9yQ2hh
bmdlZChTdHlsZVNlbGVjdG9yVXBkYXRlRmxhZyB1cGRhdGVGbGFnKQogICAgICAgICBpZiAodmll
dygpKQogICAgICAgICAgICAgdmlldygpLT5zY2hlZHVsZVJlbGF5b3V0KCk7CiAgICAgfQorCisg
ICAgaWYgKG1fbWVkaWFRdWVyeU1hdGNoZXIpCisgICAgICAgIG1fbWVkaWFRdWVyeU1hdGNoZXIt
PmV2YWx1YXRlKCk7CiB9CiAKIHZvaWQgRG9jdW1lbnQ6OmFkZFN0eWxlU2hlZXRDYW5kaWRhdGVO
b2RlKE5vZGUqIG5vZGUsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggNDJkMjcwNi4u
YmRjNjk2NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCkBAIC01LDYgKzUsNyBAQAogICogICAgICAgICAgIChDKSAyMDA2IEFs
ZXhleSBQcm9za3VyeWFrb3YgKGFwQHdlYmtpdC5vcmcpCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQs
IDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5IFRvcmNoIE1vYmlsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuIChodHRwOi8vd3d3LnRvcmNobW9iaWxlLmNvbS8pCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5
KC1pZXMpCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTkyLDYgKzkzLDggQEAgY2xhc3MgSW50UG9p
bnQ7CiBjbGFzcyBET01XcmFwcGVyV29ybGQ7CiBjbGFzcyBKU05vZGU7CiBjbGFzcyBNZWRpYUNh
blN0YXJ0TGlzdGVuZXI7CitjbGFzcyBNZWRpYVF1ZXJ5TGlzdDsKK2NsYXNzIE1lZGlhUXVlcnlN
YXRjaGVyOwogY2xhc3MgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0czsKIGNsYXNzIE5vZGVG
aWx0ZXI7CiBjbGFzcyBOb2RlSXRlcmF0b3I7CkBAIC0xOTYsNiArMTk5LDggQEAgcHVibGljOgog
ICAgIH0KICAgICB2aXJ0dWFsIH5Eb2N1bWVudCgpOwogCisgICAgUGFzc1JlZlB0cjxNZWRpYVF1
ZXJ5TGlzdD4gbWF0Y2hNZWRpYShjb25zdCBTdHJpbmcmKTsKKwogICAgIHVzaW5nIENvbnRhaW5l
ck5vZGU6OnJlZjsKICAgICB1c2luZyBDb250YWluZXJOb2RlOjpkZXJlZjsKIApAQCAtMTMxMiw2
ICsxMzE3LDggQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgaW50IG1fbG9hZEV2ZW50RGVsYXlD
b3VudDsKKworICAgIFJlZlB0cjxNZWRpYVF1ZXJ5TWF0Y2hlcj4gbV9tZWRpYVF1ZXJ5TWF0Y2hl
cjsKIH07CiAKIGlubGluZSBib29sIERvY3VtZW50OjpoYXNFbGVtZW50V2l0aElkKEF0b21pY1N0
cmluZ0ltcGwqIGlkKSBjb25zdApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5j
cHAgYi9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCAxNWYzZWQxLi4xOGJlNzMzIDEw
MDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYs
IDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC02NCw3ICs2NSw3IEBACiAjaW5jbHVk
ZSAiSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oIgogI2luY2x1ZGUgIktVUkwuaCIKICNpbmNsdWRl
ICJMb2NhdGlvbi5oIgotI2luY2x1ZGUgIlN0eWxlTWVkaWEuaCIKKyNpbmNsdWRlICJNZWRpYVF1
ZXJ5TGlzdC5oIgogI2luY2x1ZGUgIk1lc3NhZ2VFdmVudC5oIgogI2luY2x1ZGUgIk5hdmlnYXRv
ci5oIgogI2luY2x1ZGUgIk5vdGlmaWNhdGlvbkNlbnRlci5oIgpAQCAtODAsNiArODEsNyBAQAog
I2luY2x1ZGUgIlN0b3JhZ2UuaCIKICNpbmNsdWRlICJTdG9yYWdlQXJlYS5oIgogI2luY2x1ZGUg
IlN0b3JhZ2VOYW1lc3BhY2UuaCIKKyNpbmNsdWRlICJTdHlsZU1lZGlhLmgiCiAjaW5jbHVkZSAi
U3VkZGVuVGVybWluYXRpb24uaCIKICNpbmNsdWRlICJXZWJLaXRQb2ludC5oIgogI2luY2x1ZGUg
PGFsZ29yaXRobT4KQEAgLTQwNyw2ICs0MDksMTEgQEAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
RE9NV2luZG93OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QKICAgICByZXR1cm4gZG9j
dW1lbnQoKTsKIH0KIAorUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdD4gRE9NV2luZG93OjptYXRj
aE1lZGlhKGNvbnN0IFN0cmluZyYgbWVkaWEpCit7CisgICAgcmV0dXJuIGRvY3VtZW50KCkgPyBk
b2N1bWVudCgpLT5tYXRjaE1lZGlhKG1lZGlhKSA6IDA7Cit9CisKIHZvaWQgRE9NV2luZG93Ojpk
aXNjb25uZWN0RnJhbWUoKQogewogICAgIG1fZnJhbWUgPSAwOwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5oIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCmluZGV4IDE0NzA2
MjguLjZjNTQxY2QgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAorKysgYi9X
ZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0
IChDKSAyMDA2LCAyMDA3LCAyMDA5IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRp
YXJ5KC1pZXMpCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTYwLDEwICs2MSwx
MSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dDsKICAgICBjbGFzcyBMb2NhbEZpbGVTeXN0ZW07CiAgICAgY2xhc3MgTG9jYXRpb247Ci0gICAg
Y2xhc3MgU3R5bGVNZWRpYTsKKyAgICBjbGFzcyBNZWRpYVF1ZXJ5TGlzdDsKICAgICBjbGFzcyBO
YXZpZ2F0b3I7CiAgICAgY2xhc3MgTm9kZTsKICAgICBjbGFzcyBOb3RpZmljYXRpb25DZW50ZXI7
CisgICAgY2xhc3MgU3R5bGVNZWRpYTsKIAogI2lmIEVOQUJMRShXRUJfVElNSU5HKQogICAgIGNs
YXNzIFBlcmZvcm1hbmNlOwpAQCAtOTksNiArMTAxLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiAgICAgICAgIHZvaWQgY2xlYXIoKTsKIAorICAgICAgICBQYXNzUmVmUHRyPE1lZGlhUXVlcnlM
aXN0PiBtYXRjaE1lZGlhKGNvbnN0IFN0cmluZyYpOworCiAjaWYgRU5BQkxFKE9SSUVOVEFUSU9O
X0VWRU5UUykKICAgICAgICAgLy8gVGhpcyBpcyB0aGUgaW50ZXJmYWNlIG9yaWVudGF0aW9uIGlu
IGRlZ3JlZXMuIFNvbWUgZXhhbXBsZXMgYXJlOgogICAgICAgICAvLyAgMCBpcyBzdHJhaWdodCB1
cDsgLTkwIGlzIHdoZW4gdGhlIGRldmljZSBpcyByb3RhdGVkIDkwIGNsb2Nrd2lzZTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
dy5pZGwKaW5kZXggYjRjNjU4OS4uZTFmZGZhNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5pZGwKKysrIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKQEAgLTE0MSw3ICsx
NDEsOCBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERvY3Vt
ZW50IGRvY3VtZW50OwogCiAgICAgICAgIC8vIENTU09NIFZpZXcgTW9kdWxlCi0gICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBTdHlsZU1lZGlhIHN0eWxlTWVkaWE7CisgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBTdHlsZU1lZGlhIHN0eWxlTWVkaWE7IC8vIGRlcHJlY2F0ZWQKKyAgICAgICAg
TWVkaWFRdWVyeUxpc3QgbWF0Y2hNZWRpYShpbiBET01TdHJpbmcgcXVlcnkpOwogCiAgICAgICAg
IC8vIERPTSBMZXZlbCAyIFN0eWxlIEludGVyZmFjZQogICAgICAgICBDU1NTdHlsZURlY2xhcmF0
aW9uIGdldENvbXB1dGVkU3R5bGUoaW4gRWxlbWVudCBlbGVtZW50LAotLSAKMS43LjIuMgoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68456</attachid>
            <date>2010-09-22 15:33:49 -0700</date>
            <delta_ts>2010-09-29 21:52:46 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-Implement-CSSOM-View-matchMedia-interface.patch</filename>
            <type>text/plain</type>
            <size>89309</size>
            <attacher name="Luiz Agostini">luiz</attacher>
            
              <data encoding="base64">RnJvbSA0NzFmMTQ5NjRjZGFiOTgzNjJhODFlNjAxMGI1OTJmYWI0NjI3OTE0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWl6IEFnb3N0aW5pIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IEZyaSwgMTcgU2VwIDIwMTAgMjA6MDM6MTMgLTAzMDAKU3ViamVjdDogW1BB
VENIXSBJbXBsZW1lbnQgQ1NTT00gVmlldyBtYXRjaE1lZGlhIGludGVyZmFjZQogaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3MjA1CgpSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KCldlYkNvcmU6CgpOZXcgaW50ZXJmYWNlcyBtYXkgYmUgdXNlZCB0byBldmFsdWF0
ZSBtZWRpYSBxdWVyaWVzIGFuZCB0byBhc3NvY2lhdGUgbGlzdGVuZXJzCnRvIG1lZGlhIHF1ZXJp
ZXMuIFRob3NlIGxpc3RlbmVycyBhcmUgY2FsbGVkIHdoZW5ldmVyIHRoZSBhc3NvY2lhdGVkIHF1
ZXJ5IGNoYW5nZXMuClNwZWNpZmljYXRpb24gbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9kZXYudzMu
b3JnL2Nzc3dnL2Nzc29tLXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2UKCk5ldyBp
bnRlcmZhY2VzOgoKKiBjc3MvTWVkaWFRdWVyeUxpc3QuaWRsOiBBZGRlZC4KKiBjc3MvTWVkaWFR
dWVyeUxpc3RMaXN0ZW5lci5pZGw6IEFkZGVkLgoKQ2xhc3NlcyBNZWRpYVF1ZXJ5TGlzdCBhbmQg
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci4KCiogY3NzL01lZGlhUXVlcnlMaXN0LmNwcDogQWRkZWQu
CihXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdDo6Y3JlYXRlKToKKFdlYkNvcmU6Ok1lZGlhUXVlcnlM
aXN0OjpNZWRpYVF1ZXJ5TGlzdCk6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdDo6fk1lZGlhUXVl
cnlMaXN0KToKKFdlYkNvcmU6Ok1lZGlhUXVlcnlMaXN0OjptZWRpYSk6CihXZWJDb3JlOjpNZWRp
YVF1ZXJ5TGlzdDo6YWRkTGlzdGVuZXIpOgooV2ViQ29yZTo6TWVkaWFRdWVyeUxpc3Q6OnJlbW92
ZUxpc3RlbmVyKToKKFdlYkNvcmU6Ok1lZGlhUXVlcnlMaXN0OjpldmFsdWF0ZSk6CihXZWJDb3Jl
OjpNZWRpYVF1ZXJ5TGlzdDo6c2V0TWF0Y2hlcyk6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdDo6
Y2hhbmdlZCk6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdDo6bWF0Y2hlcyk6CiogY3NzL01lZGlh
UXVlcnlMaXN0Lmg6IEFkZGVkLgoqIGNzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmg6IEFkZGVk
LgooV2ViQ29yZTo6TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6TWVkaWFRdWVyeUxpc3RMaXN0ZW5l
cik6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjp+TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lcik6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjp0eXBlKToKCk1lZGlhUXVl
cnlMaXN0TGlzdGVuZXIgaW1wbGVtZW50YXRpb24gdXNlZCBieSBKUyBhbmQgVjg6CgoqIGJpbmRp
bmdzL1NjcmlwdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwOiBBZGRlZC4KKFdlYkNvcmU6OlNj
cmlwdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OlNjcmlwdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIp
OgooV2ViQ29yZTo6U2NyaXB0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6cXVlcnlDaGFuZ2VkKToK
KFdlYkNvcmU6OlNjcmlwdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OmlzRXF1YWxUbyk6CiogYmlu
ZGluZ3MvU2NyaXB0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oOiBBZGRlZC4KKFdlYkNvcmU6OlNj
cmlwdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OmNyZWF0ZSk6CgpUbyBhdm9pZCBhZGRpbmcgY29k
ZSB0byBjbGFzc2VzIERPTVdpbmRvdyBhbmQgRG9jdW1lbnQgYSBuZXcgY2xhc3MgTWVkaWFRdWVy
eU1hdGNoZXIgd2FzCmNyZWF0ZWQuCgoqIGNzcy9NZWRpYVF1ZXJ5TWF0Y2hlci5jcHA6IEFkZGVk
LgooV2ViQ29yZTo6TWVkaWFRdWVyeU1hdGNoZXI6Okxpc3RlbmVyOjpMaXN0ZW5lcik6CihXZWJD
b3JlOjpNZWRpYVF1ZXJ5TWF0Y2hlcjo6TGlzdGVuZXI6On5MaXN0ZW5lcik6CihXZWJDb3JlOjpN
ZWRpYVF1ZXJ5TWF0Y2hlcjo6TGlzdGVuZXI6OmV2YWx1YXRlKToKKFdlYkNvcmU6Ok1lZGlhUXVl
cnlNYXRjaGVyOjpNZWRpYVF1ZXJ5TWF0Y2hlcik6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5TWF0Y2hl
cjo6fk1lZGlhUXVlcnlNYXRjaGVyKToKKFdlYkNvcmU6Ok1lZGlhUXVlcnlNYXRjaGVyOjp0ZXJt
aW5hdGUpOgooV2ViQ29yZTo6TWVkaWFRdWVyeU1hdGNoZXI6Om1lZGlhVHlwZSk6CihXZWJDb3Jl
OjpNZWRpYVF1ZXJ5TWF0Y2hlcjo6cHJlcGFyZUV2YWx1YXRvcik6CihXZWJDb3JlOjpNZWRpYVF1
ZXJ5TWF0Y2hlcjo6ZXZhbHVhdGUpOgooV2ViQ29yZTo6TWVkaWFRdWVyeU1hdGNoZXI6Om1hdGNo
TWVkaWEpOgooV2ViQ29yZTo6TWVkaWFRdWVyeU1hdGNoZXI6OmFkZExpc3RlbmVyKToKKFdlYkNv
cmU6Ok1lZGlhUXVlcnlNYXRjaGVyOjpyZW1vdmVMaXN0ZW5lcik6CiogY3NzL01lZGlhUXVlcnlN
YXRjaGVyLmg6IEFkZGVkLgooV2ViQ29yZTo6TWVkaWFRdWVyeU1hdGNoZXI6OmNyZWF0ZSk6CihX
ZWJDb3JlOjpNZWRpYVF1ZXJ5TWF0Y2hlcjo6ZXZhbFJvdW5kKToKKFdlYkNvcmU6Ok1lZGlhUXVl
cnlNYXRjaGVyOjpMaXN0ZW5lcjo6bGlzdGVuZXIpOgooV2ViQ29yZTo6TWVkaWFRdWVyeU1hdGNo
ZXI6Okxpc3RlbmVyOjpxdWVyeSk6CgpEb2N1bWVudCBhbmQgRE9NV2luZG93IGhhdmUgY2hhbmdl
ZCB0byBzdXBwb3J0IG5ldyBmZWF0dXJlcy4gRE9NV2luZG93IGlzIHRoZSBjbGFzcyB0aGF0CnB1
Ymxpc2hlcyBtZXRob2RzIG1hdGNoTWVkaWEgYnV0IGZvciBwYWdlIGNhY2hlIHRvIHdvcmsgcHJv
cGVybHkgIHRoZSByZWZlcmVuY2UgdG8gdGhlCk1lZGlhUXVlcnlNYXRjaGVyIGlzIGtlcHQgYnkg
RG9jdW1lbnQgaW5zdGFuY2UuCgoqIGRvbS9Eb2N1bWVudC5jcHA6CihXZWJDb3JlOjpEb2N1bWVu
dDo6fkRvY3VtZW50KToKKFdlYkNvcmU6OkRvY3VtZW50OjptYXRjaE1lZGlhKToKKFdlYkNvcmU6
OkRvY3VtZW50OjpzdHlsZVNlbGVjdG9yQ2hhbmdlZCk6CiogZG9tL0RvY3VtZW50Lmg6CiogcGFn
ZS9ET01XaW5kb3cuY3BwOgooV2ViQ29yZTo6RE9NV2luZG93OjptYXRjaE1lZGlhKToKKiBwYWdl
L0RPTVdpbmRvdy5oOgoqIHBhZ2UvRE9NV2luZG93LmlkbDoKClNvbWUgYWRqdXN0bWVudHMgdG8g
Y29kZSBnZW5lcmF0b3JzOgoKKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0
LnBtOgoqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgoqIGJpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgoKYnVpbGQgc3lzdGVtOgoKKiBEZXJpdmVkU291cmNl
cy5tYWtlOgoqIEdOVW1ha2VmaWxlLmFtOgoqIGJpbmRpbmdzL2dvYmplY3QvR05VbWFrZWZpbGUu
YW06CiogV2ViQ29yZS5neXBpOgoqIFdlYkNvcmUucHJpOgoqIFdlYkNvcmUucHJvOgoqIFdlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgoqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKClRlc3RzOiBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDEuaHRtbAogICAgICAg
ZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAyLmh0bWwKICAgICAgIGZhc3QvbWVkaWEvbWVk
aWEtcXVlcnktbGlzdC0wMy5odG1sCgpMYXlvdXRUZXN0czoKCk5ldyBwcm9wZXJ0eSBtYXRjaE1l
ZGlhIHdhcyBhZGRlZCB0byB3aW5kb3cuCgoqIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVy
dGllcy1leHBlY3RlZC50eHQ6CiogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1kZXNj
cmlwdG9ycy1leHBlY3RlZC50eHQ6Cgp3aW5kb3cubWF0Y2hNZWRpYSBhbmQgTWVkaWFRdWVyeUxp
c3QgdGVzdHMuCgoqIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMS1leHBlY3RlZC50eHQ6
IEFkZGVkLgoqIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMS5odG1sOiBBZGRlZC4KClRo
ZSBmb2xsb3dpbmcgdGVzdHMgZGVwZW5kIG9uIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRWaWV3
TW9kZU1lZGlhRmVhdHVyZSgpIHRvIHdvcmsuCkFzIGl0IGlzIG9ubHkgaW1wbGVtZW50ZWQgYnkg
UXQgYW5kIEd0ayB0aGUgdGVzdHMgbmVlZGVkIHRvIGJlIHNraXBwZWQgaW4gYWxsIG90aGVyIHBs
YXRmb3Jtcy4KCiogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAyLWV4cGVjdGVkLnR4dDog
QWRkZWQuCiogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAyLmh0bWw6IEFkZGVkLgoqIGZh
c3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMy1leHBlY3RlZC50eHQ6IEFkZGVkLgoqIGZhc3Qv
bWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMy5odG1sOiBBZGRlZC4KKiBwbGF0Zm9ybS9jaHJvbWl1
bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CiogcGxhdGZvcm0vbWFjL1NraXBwZWQ6CiogcGxhdGZv
cm0vd2luL1NraXBwZWQ6Ci0tLQogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDI4ICsrKwogLi4uL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJv
cGVydGllcy1leHBlY3RlZC50eHQgfCAgICAxICsKIC4uLi93aW5kb3ctcHJvcGVydHktZGVzY3Jp
cHRvcnMtZXhwZWN0ZWQudHh0ICAgICAgIHwgICAgMSArCiAuLi4vZmFzdC9tZWRpYS9tZWRpYS1x
dWVyeS1saXN0LTAxLWV4cGVjdGVkLnR4dCAgICB8ICAgMTUgKysKIExheW91dFRlc3RzL2Zhc3Qv
bWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMS5odG1sICAgIHwgICA1MiArKysrKysKIC4uLi9mYXN0
L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDItZXhwZWN0ZWQudHh0ICAgIHwgICAyNSArKysKIExh
eW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMi5odG1sICAgIHwgICA2MSAr
KysrKysrCiAuLi4vZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAzLWV4cGVjdGVkLnR4dCAg
ICB8ICAgNDEgKysrKysKIExheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0w
My5odG1sICAgIHwgICA3MCArKysrKysrKwogLi4uL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhw
ZWN0YXRpb25zLnR4dCAgICAgICAgfCAgICA0ICstCiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
U2tpcHBlZCAgICAgICAgICAgICAgICAgICB8ICAgIDQgKy0KIExheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbi9Ta2lwcGVkICAgICAgICAgICAgICAgICAgIHwgICAgNCArLQogV2ViQ29yZS9DaGFuZ2VM
b2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTAxICsrKysrKysrKysrCiBX
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDQg
Ky0KIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAxMSArLQogV2ViQ29yZS9XZWJDb3JlLmd5cGkgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgIDEwICstCiBXZWJDb3JlL1dlYkNvcmUucHJpICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgIDIgKwogV2ViQ29yZS9XZWJDb3JlLnBybyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgICA5ICstCiBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qICAgICAgICAgICAgICB8ICAgODQgKysrKysrKysrCiBXZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiAgICAgICAgICB8ICAgNDAgKysrKysKIFdlYkNvcmUvYmluZGlu
Z3MvU2NyaXB0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgIHwgICA2NCArKysrKysrCiBXZWJD
b3JlL2JpbmRpbmdzL1NjcmlwdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCAgICB8ICAgNTIgKysr
KysrCiBXZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvR05VbWFrZWZpbGUuYW0gICAgICAgICAgICB8
ICAgIDMgKwogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBt
ICAgfCAgIDE5ICsrLQogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bSAgICAgICAgfCAgIDExICsrCiBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
clY4LnBtICAgICAgICB8ICAgMTEgKy0KIFdlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0LmNwcCAg
ICAgICAgICAgICAgICAgICAgIHwgICA5NCArKysrKysrKysrCiBXZWJDb3JlL2Nzcy9NZWRpYVF1
ZXJ5TGlzdC5oICAgICAgICAgICAgICAgICAgICAgICB8ICAgNzMgKysrKysrKysKIFdlYkNvcmUv
Y3NzL01lZGlhUXVlcnlMaXN0LmlkbCAgICAgICAgICAgICAgICAgICAgIHwgICAzMyArKysrCiBX
ZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggICAgICAgICAgICAgICB8ICAgNjEg
KysrKysrKwogV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5pZGwgICAgICAgICAg
ICAgfCAgIDM1ICsrKysKIFdlYkNvcmUvY3NzL01lZGlhUXVlcnlNYXRjaGVyLmNwcCAgICAgICAg
ICAgICAgICAgIHwgIDE3OCArKysrKysrKysrKysrKysrKysrKwogV2ViQ29yZS9jc3MvTWVkaWFR
dWVyeU1hdGNoZXIuaCAgICAgICAgICAgICAgICAgICAgfCAgMTQ2ICsrKysrKysrKysrKysrKysK
IFdlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAx
NiArKwogV2ViQ29yZS9kb20vRG9jdW1lbnQuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fCAgICA3ICsKIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgICAgOSArLQogV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgICA2ICstCiBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbCAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgIDMgKy0KIDM4IGZpbGVzIGNoYW5nZWQsIDEzNzMgaW5zZXJ0aW9u
cygrKSwgMTUgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAxLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAw
NjQ0IExheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMS5odG1sCiBjcmVh
dGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAy
LWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvbWVkaWEv
bWVkaWEtcXVlcnktbGlzdC0wMi5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAzLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUg
MTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMy5odG1sCiBt
b2RlIGNoYW5nZSAxMDA2NDQgPT4gMTAwNzU1IFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2oKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL2JpbmRpbmdzL1NjcmlwdE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXIuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9iaW5kaW5n
cy9TY3JpcHRNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJD
b3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL2Nz
cy9NZWRpYVF1ZXJ5TGlzdC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9jc3MvTWVkaWFR
dWVyeUxpc3QuaWRsCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxp
c3RMaXN0ZW5lci5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxp
c3RMaXN0ZW5lci5pZGwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5
TWF0Y2hlci5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TWF0
Y2hlci5oCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDhhMWU1OTAuLjJmNmYzZDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAor
MjAxMC0wOS0xNyAgTHVpeiBBZ29zdGluaSAgPGx1aXouYWdvc3RpbmlAb3BlbmJvc3NhLm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1l
bnQgQ1NTT00gVmlldyBtYXRjaE1lZGlhIGludGVyZmFjZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzcyMDUKKworICAgICAgICBOZXcgcHJvcGVydHkg
bWF0Y2hNZWRpYSB3YXMgYWRkZWQgdG8gd2luZG93LgorCisgICAgICAgICogZmFzdC9kb20vV2lu
ZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9X
aW5kb3cvd2luZG93LXByb3BlcnR5LWRlc2NyaXB0b3JzLWV4cGVjdGVkLnR4dDoKKworICAgICAg
ICB3aW5kb3cubWF0Y2hNZWRpYSBhbmQgTWVkaWFRdWVyeUxpc3QgdGVzdHMuCisKKyAgICAgICAg
KiBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDEuaHRtbDogQWRkZWQuCisKKyAg
ICAgICAgVGhlIGZvbGxvd2luZyB0ZXN0cyBkZXBlbmQgb24gTGF5b3V0VGVzdENvbnRyb2xsZXI6
OnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCkgdG8gd29yay4KKyAgICAgICAgQXMgaXQgaXMgb25s
eSBpbXBsZW1lbnRlZCBieSBRdCBhbmQgR3RrIHRoZSB0ZXN0cyBuZWVkZWQgdG8gYmUgc2tpcHBl
ZCBpbiBhbGwgb3RoZXIgcGxhdGZvcm1zLgorCisgICAgICAgICogZmFzdC9tZWRpYS9tZWRpYS1x
dWVyeS1saXN0LTAyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYS9t
ZWRpYS1xdWVyeS1saXN0LTAyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWEvbWVk
aWEtcXVlcnktbGlzdC0wMy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVk
aWEvbWVkaWEtcXVlcnktbGlzdC0wMy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Nr
aXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vd2luL1NraXBwZWQ6CisKIDIwMTAtMDktMjIgIEFi
aGlzaGVrIEFyeWEgIDxpbmZlcm5vQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2Vk
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0
aWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJv
cGVydGllcy1leHBlY3RlZC50eHQKaW5kZXggZDQ4NGNmZS4uZTIwNWYwZCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhw
ZWN0ZWQudHh0CkBAIC0yMjM3LDYgKzIyMzcsNyBAQCB3aW5kb3cubG9jYXRpb25iYXIudmlzaWJs
ZSBbYm9vbGVhbl0KIHdpbmRvdy5sb2cgW2Z1bmN0aW9uXQogd2luZG93LmxvZ1Byb3BlcnRpZXMg
W2Z1bmN0aW9uXQogd2luZG93LmxvZ1ZhbHVlIFtmdW5jdGlvbl0KK3dpbmRvdy5tYXRjaE1lZGlh
IFtmdW5jdGlvbl0KIHdpbmRvdy5tZW51YmFyIFtvYmplY3QgQmFySW5mb10KIHdpbmRvdy5tZW51
YmFyLnZpc2libGUgW2Jvb2xlYW5dCiB3aW5kb3cubW92ZUJ5IFtmdW5jdGlvbl0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRv
cnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9w
ZXJ0eS1kZXNjcmlwdG9ycy1leHBlY3RlZC50eHQKaW5kZXggMDhkNjY2NC4uNjNiZDYxZSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1kZXNj
cmlwdG9ycy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dp
bmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy1leHBlY3RlZC50eHQKQEAgLTUwNSw2ICs1MDUsNyBA
QCBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnZ2V0TWF0Y2hl
ZENTU1J1bGVzJykgaXMgdW5kZWZpbmVkLgogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKHdpbmRvdywgJ2dldFNlbGVjdGlvbicpIGlzIHVuZGVmaW5lZC4KIFBBU1MgT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdoYXNPd25Qcm9wZXJ0eScpIGlzIHVu
ZGVmaW5lZC4KIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdp
c1Byb3RvdHlwZU9mJykgaXMgdW5kZWZpbmVkLgorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKHdpbmRvdywgJ21hdGNoTWVkaWEnKSBpcyB1bmRlZmluZWQuCiBQQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnbW92ZUJ5JykgaXMgdW5kZWZpbmVk
LgogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ21vdmVUbycp
IGlzIHVuZGVmaW5lZC4KIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5k
b3csICdvcGVuJykgaXMgdW5kZWZpbmVkLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
bWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uNGViYTNmNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
NSBAQAorVGVzdCB0aGUgTWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlOiBodHRwOi8vZGV2LnczLm9y
Zy9jc3N3Zy9jc3NvbS12aWV3LyN0aGUtbWVkaWFxdWVyeWxpc3QtaW50ZXJmYWNlLgorCisic2Ny
ZWVuIiBldmFsdWF0ZXMgdG8gdHJ1ZTogUEFTUworInByb2plY3Rpb24iIGV2YWx1YXRlcyB0byBm
YWxzZTogUEFTUworImFsbCBhbmQgKGNvbG9yKSIgZXZhbHVhdGVzIHRvIHRydWU6IFBBU1MKKyJu
b3QgcHJvamVjdGlvbiBhbmQgKGNvbG9yKSIgZXZhbHVhdGVzIHRvIHRydWU6IFBBU1MKKyIoY29s
b3IpIiBldmFsdWF0ZXMgdG8gdHJ1ZTogUEFTUworIihjb2xvciIgZXZhbHVhdGVzIHRvIGZhbHNl
OiBQQVNTCisiY29sb3IiIGV2YWx1YXRlcyB0byBmYWxzZTogUEFTUworImdhcmJhZ2UiIGV2YWx1
YXRlcyB0byBmYWxzZTogUEFTUworIihtaW4tZGV2aWNlLXdpZHRoOiAxMDBweCkiIGV2YWx1YXRl
cyB0byB0cnVlOiBQQVNTCisiKG1pbi1kZXZpY2Utd2lkdGg6IDUwMDAwcHgpIiBldmFsdWF0ZXMg
dG8gZmFsc2U6IFBBU1MKKyIoLXdlYmtpdC1hbmltYXRpb246IDEpIiBldmFsdWF0ZXMgdG8gdHJ1
ZTogUEFTUworIigtd2Via2l0LXRyYW5zZm9ybS0yZCkiIGV2YWx1YXRlcyB0byB0cnVlOiBQQVNT
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0w
MS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAxLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzNkY2M2NwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMS5odG1sCkBA
IC0wLDAgKzEsNTIgQEAKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+VGVzdCBDU1NPTSBWaWV3IG1v
ZHVsZTogTWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlPC90aXRsZT4KKzxzdHlsZSB0eXBlPSJ0ZXh0
L2NzcyI+CisKKzwvc3R5bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNl
dD0idXRmLTgiPgorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworICAgIGZ1bmN0aW9uIGxvZyht
KQorICAgIHsKKyAgICAgICAgdmFyIHJlc3VsdHMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
cmVzdWx0cycpOworICAgICAgICByZXN1bHRzLmlubmVySFRNTCArPSBtICsgJzxicj4nOworICAg
IH0KKworICAgIGZ1bmN0aW9uIHRlc3RRdWVyeShxdWVyeSwgZXhwZWN0ZWQpCisgICAgeworICAg
ICAgICB2YXIgaXNUcnVlID0gd2luZG93Lm1hdGNoTWVkaWEocXVlcnkpLm1hdGNoZXM7CisgICAg
ICAgIHZhciBtZXNzYWdlID0gJ1wiJyArIHF1ZXJ5ICsgJ1wiIGV2YWx1YXRlcyB0byAnICsgKGlz
VHJ1ZSA/ICd0cnVlJyA6ICdmYWxzZScpOworICAgICAgICBtZXNzYWdlICs9IChpc1RydWUgPT0g
ZXhwZWN0ZWQpID8gJzogUEFTUycgOiAnOiBGQUlMJzsKKyAgICAgICAgbG9nKG1lc3NhZ2UpOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3RzKCkKKyAgICB7CisgICAgICAgIHRlc3RRdWVy
eSgnc2NyZWVuJywgdHJ1ZSk7CisgICAgICAgIHRlc3RRdWVyeSgncHJvamVjdGlvbicsIGZhbHNl
KTsKKworICAgICAgICB0ZXN0UXVlcnkoJ2FsbCBhbmQgKGNvbG9yKScsIHRydWUpOworICAgICAg
ICB0ZXN0UXVlcnkoJ25vdCBwcm9qZWN0aW9uIGFuZCAoY29sb3IpJywgdHJ1ZSk7CisgICAgICAg
IHRlc3RRdWVyeSgnKGNvbG9yKScsIHRydWUpOworICAgICAgICB0ZXN0UXVlcnkoJyhjb2xvcics
IGZhbHNlKTsKKyAgICAgICAgdGVzdFF1ZXJ5KCdjb2xvcicsIGZhbHNlKTsKKworICAgICAgICB0
ZXN0UXVlcnkoJ2dhcmJhZ2UnLCBmYWxzZSk7CisKKyAgICAgICAgdGVzdFF1ZXJ5KCcobWluLWRl
dmljZS13aWR0aDogMTAwcHgpJywgdHJ1ZSk7CisgICAgICAgIHRlc3RRdWVyeSgnKG1pbi1kZXZp
Y2Utd2lkdGg6IDUwMDAwcHgpJywgZmFsc2UpOworCisgICAgICAgIHRlc3RRdWVyeSgnKC13ZWJr
aXQtYW5pbWF0aW9uOiAxKScsIHRydWUpOworICAgICAgICB0ZXN0UXVlcnkoJygtd2Via2l0LXRy
YW5zZm9ybS0yZCknLCB0cnVlKTsKKyAgICB9CisKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkg
b25sb2FkPSJydW5UZXN0cygpIj4KKyAgICA8cD5UZXN0IHRoZSBNZWRpYVF1ZXJ5TGlzdCBpbnRl
cmZhY2U6IDxhIGhyZWY9Imh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzc29tLXZpZXcvI3RoZS1t
ZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2UiIHRpdGxlPSJDU1NPTSBWaWV3IE1vZHVsZSI+aHR0cDov
L2Rldi53My5vcmcvY3Nzd2cvY3Nzb20tdmlldy8jdGhlLW1lZGlhcXVlcnlsaXN0LWludGVyZmFj
ZTwvYT4uPC9wPgorICAgIDxkaXYgaWQ9InJlc3VsdHMiPgorICAgIDwvZGl2PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1s
aXN0LTAyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnkt
bGlzdC0wMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
NjM2NDNkOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEt
cXVlcnktbGlzdC0wMi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNSBAQAorVGVzdCB0aGUgTWVk
aWFRdWVyeUxpc3QgaW50ZXJmYWNlOiBodHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9jc3NvbS12aWV3
LyN0aGUtbWVkaWFxdWVyeWxpc3QtaW50ZXJmYWNlLgorCitUZXN0aW5nIGFkZExpc3RlbmVyIGlu
IGRpZmZlcmVudCBNZWRpYVF1ZXJ5TGlzdCBvYmplY3RzIGFuZCB0aGUgY2FsbGJhY2sgY2FsbCBz
ZXF1ZW5jZQorCistLS0tLS0tLS0tLS0tIG1pbmltaXplZCAtLS0tLS0tLS0tLS0tCitbMV0gLSBx
dWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFuZ2VkIHRvIGZhbHNlCitbMV0g
LSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCkgY2hhbmdlZCB0byB0cnVlCitb
Ml0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFuZ2VkIHRvIGZhbHNl
CitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCkgY2hhbmdlZCB0byB0
cnVlCistLS0tLS0tLS0tLS0tIG1heGltaXplZCAtLS0tLS0tLS0tLS0tCitbMV0gLSBxdWVyeSAo
LXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCkgY2hhbmdlZCB0byBmYWxzZQorWzFdIC0gcXVl
cnkgKC13ZWJraXQtdmlldy1tb2RlOiBtYXhpbWl6ZWQpIGNoYW5nZWQgdG8gdHJ1ZQorWzJdIC0g
cXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQpIGNoYW5nZWQgdG8gZmFsc2UKK1sy
XSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWF4aW1pemVkKSBjaGFuZ2VkIHRvIHRydWUK
Ky0tLS0tLS0tLS0tLS0gd2luZG93ZWQgLS0tLS0tLS0tLS0tLQorWzFdIC0gcXVlcnkgKC13ZWJr
aXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0byB0cnVlCitbMV0gLSBxdWVyeSAoLXdl
YmtpdC12aWV3LW1vZGU6IG1heGltaXplZCkgY2hhbmdlZCB0byBmYWxzZQorWzJdIC0gcXVlcnkg
KC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0byB0cnVlCitbMl0gLSBxdWVy
eSAoLXdlYmtpdC12aWV3LW1vZGU6IG1heGltaXplZCkgY2hhbmdlZCB0byBmYWxzZQorLS0tLS0t
LS0tLS0tLSBmbG9hdGluZyAtLS0tLS0tLS0tLS0tCitbMV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3
LW1vZGU6IHdpbmRvd2VkKSBjaGFuZ2VkIHRvIGZhbHNlCitbMV0gLSBxdWVyeSAoLXdlYmtpdC12
aWV3LW1vZGU6IGZsb2F0aW5nKSBjaGFuZ2VkIHRvIHRydWUKK1syXSAtIHF1ZXJ5ICgtd2Via2l0
LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQgdG8gZmFsc2UKK1syXSAtIHF1ZXJ5ICgtd2Vi
a2l0LXZpZXctbW9kZTogZmxvYXRpbmcpIGNoYW5nZWQgdG8gdHJ1ZQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDIuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjhkZWNlNDMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDIuaHRtbApAQCAtMCwwICsxLDYxIEBACis8
aHRtbD4KKzxoZWFkPgorPHRpdGxlPlRlc3QgQ1NTT00gVmlldyBtb2R1bGU6IE1lZGlhUXVlcnlM
aXN0IGludGVyZmFjZTwvdGl0bGU+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorCis8L3N0eWxl
PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7CisKKyAgICBmdW5jdGlvbiBsb2cobSkgeworICAgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0cycpLmlubmVySFRNTCArPSBtICsgJzxicj4nOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIGNhbGxiYWNrMShxdWVyeSkgeworICAgICAgICBsb2coIlsx
XSAtIHF1ZXJ5ICIgKyBxdWVyeS5tZWRpYSArICIgY2hhbmdlZCB0byAiICsgKHF1ZXJ5Lm1hdGNo
ZXMgPyAidHJ1ZSIgOiAiZmFsc2UiKSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gY2FsbGJhY2sy
KHF1ZXJ5KSB7CisgICAgICAgIGxvZygiWzJdIC0gcXVlcnkgIiArIHF1ZXJ5Lm1lZGlhICsgIiBj
aGFuZ2VkIHRvICIgKyAocXVlcnkubWF0Y2hlcyA/ICJ0cnVlIiA6ICJmYWxzZSIpKTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBydW5UZXN0cygpCisgICAgeworICAgICAgICBpZiAoIXdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB3aW5k
b3dlZFF1ZXJ5ID0gd2luZG93Lm1hdGNoTWVkaWEoIigtd2Via2l0LXZpZXctbW9kZTogd2luZG93
ZWQpIik7CisgICAgICAgIGZsb2F0aW5nUXVlcnkgPSB3aW5kb3cubWF0Y2hNZWRpYSgiKC13ZWJr
aXQtdmlldy1tb2RlOiBmbG9hdGluZykiKTsKKyAgICAgICAgbWluaW1pemVkUXVlcnkgPSB3aW5k
b3cubWF0Y2hNZWRpYSgiKC13ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQpIik7CisgICAgICAg
IG1heGltaXplZFF1ZXJ5ID0gd2luZG93Lm1hdGNoTWVkaWEoIigtd2Via2l0LXZpZXctbW9kZTog
bWF4aW1pemVkKSIpOworCisgICAgICAgIHdpbmRvd2VkUXVlcnkuYWRkTGlzdGVuZXIoY2FsbGJh
Y2sxKTsKKyAgICAgICAgZmxvYXRpbmdRdWVyeS5hZGRMaXN0ZW5lcihjYWxsYmFjazEpOworICAg
ICAgICBtaW5pbWl6ZWRRdWVyeS5hZGRMaXN0ZW5lcihjYWxsYmFjazEpOworICAgICAgICBtYXhp
bWl6ZWRRdWVyeS5hZGRMaXN0ZW5lcihjYWxsYmFjazEpOworCisgICAgICAgIHdpbmRvd2VkUXVl
cnkuYWRkTGlzdGVuZXIoY2FsbGJhY2syKTsKKyAgICAgICAgZmxvYXRpbmdRdWVyeS5hZGRMaXN0
ZW5lcihjYWxsYmFjazIpOworICAgICAgICBtaW5pbWl6ZWRRdWVyeS5hZGRMaXN0ZW5lcihjYWxs
YmFjazIpOworICAgICAgICBtYXhpbWl6ZWRRdWVyeS5hZGRMaXN0ZW5lcihjYWxsYmFjazIpOwor
CisgICAgICAgIGxvZygiLS0tLS0tLS0tLS0tLSBtaW5pbWl6ZWQgLS0tLS0tLS0tLS0tLSIpOwor
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSgibWlu
aW1pemVkIik7CisgICAgICAgIGxvZygiLS0tLS0tLS0tLS0tLSBtYXhpbWl6ZWQgLS0tLS0tLS0t
LS0tLSIpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9kZU1lZGlhRmVh
dHVyZSgibWF4aW1pemVkIik7CisgICAgICAgIGxvZygiLS0tLS0tLS0tLS0tLSB3aW5kb3dlZCAt
LS0tLS0tLS0tLS0tIik7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFZpZXdNb2Rl
TWVkaWFGZWF0dXJlKCJ3aW5kb3dlZCIpOworICAgICAgICBsb2coIi0tLS0tLS0tLS0tLS0gZmxv
YXRpbmcgLS0tLS0tLS0tLS0tLSIpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRW
aWV3TW9kZU1lZGlhRmVhdHVyZSgiZmxvYXRpbmciKTsKKyAgICB9CisKKzwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0cygpIj4KKyAgICA8cD5UZXN0IHRoZSBNZWRpYVF1
ZXJ5TGlzdCBpbnRlcmZhY2U6IDxhIGhyZWY9Imh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzc29t
LXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2UiIHRpdGxlPSJDU1NPTSBWaWV3IE1v
ZHVsZSI+aHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3Nzb20tdmlldy8jdGhlLW1lZGlhcXVlcnls
aXN0LWludGVyZmFjZTwvYT4uPC9wPgorICAgIDxwPlRlc3RpbmcgYWRkTGlzdGVuZXIgaW4gZGlm
ZmVyZW50IE1lZGlhUXVlcnlMaXN0IG9iamVjdHMgYW5kIHRoZSBjYWxsYmFjayBjYWxsIHNlcXVl
bmNlPC9wPgorICAgIDxkaXYgaWQ9InJlc3VsdHMiPgorICAgIDwvZGl2PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0
LTAzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlz
dC0wMy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjI0
ZTIwNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVl
cnktbGlzdC0wMy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0MSBAQAorVGVzdCB0aGUgTWVkaWFR
dWVyeUxpc3QgaW50ZXJmYWNlOiBodHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9jc3NvbS12aWV3LyN0
aGUtbWVkaWFxdWVyeWxpc3QtaW50ZXJmYWNlLgorCitUZXN0aW5nIHJlbW92ZUxpc3RlbmVyIGlu
IGRpZmZlcmVudCBNZWRpYVF1ZXJ5TGlzdCBvYmplY3RzIGFuZCB0aGUgY2FsbGJhY2sgY2FsbCBz
ZXF1ZW5jZQorCithZGRpbmcgd2luZG93ZWRbMV0sIG1pbmltaXplZFsxXSwgd2luZG93ZWRbMl0g
YW5kIG1pbmltaXplZFsyXQorCistLS0tLS0tLS0tLS0tIG1pbmltaXplZCAtLS0tLS0tLS0tLS0t
CitbMV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFuZ2VkIHRvIGZh
bHNlCitbMV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCkgY2hhbmdlZCB0
byB0cnVlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFuZ2Vk
IHRvIGZhbHNlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCkgY2hh
bmdlZCB0byB0cnVlCistLS0tLS0tLS0tLS0tIHdpbmRvd2VkIC0tLS0tLS0tLS0tLS0KK1sxXSAt
IHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQgdG8gdHJ1ZQorWzFd
IC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQpIGNoYW5nZWQgdG8gZmFsc2UK
K1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQgdG8gdHJ1
ZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQpIGNoYW5nZWQgdG8g
ZmFsc2UKKworCityZW1vdmluZyB3aW5kb3dlZFsxXSBhbmQgbWluaW1pemVkWzJdCisKKy0tLS0t
LS0tLS0tLS0gbWluaW1pemVkIC0tLS0tLS0tLS0tLS0KK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZp
ZXctbW9kZTogbWluaW1pemVkKSBjaGFuZ2VkIHRvIHRydWUKK1syXSAtIHF1ZXJ5ICgtd2Via2l0
LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQgdG8gZmFsc2UKKy0tLS0tLS0tLS0tLS0gd2lu
ZG93ZWQgLS0tLS0tLS0tLS0tLQorWzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtaW5p
bWl6ZWQpIGNoYW5nZWQgdG8gZmFsc2UKK1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTog
d2luZG93ZWQpIGNoYW5nZWQgdG8gdHJ1ZQorCisKK2FkZGluZyB3aW5kb3dlZFsxXSBhbmQgbWlu
aW1pemVkWzJdCisKKy0tLS0tLS0tLS0tLS0gbWluaW1pemVkIC0tLS0tLS0tLS0tLS0KK1sxXSAt
IHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSBjaGFuZ2VkIHRvIHRydWUKK1sy
XSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQgdG8gZmFsc2UK
K1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQgdG8gZmFs
c2UKK1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSBjaGFuZ2VkIHRv
IHRydWUKKy0tLS0tLS0tLS0tLS0gd2luZG93ZWQgLS0tLS0tLS0tLS0tLQorWzFdIC0gcXVlcnkg
KC13ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQpIGNoYW5nZWQgdG8gZmFsc2UKK1syXSAtIHF1
ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQgdG8gdHJ1ZQorWzFdIC0g
cXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0byB0cnVlCitbMl0g
LSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCkgY2hhbmdlZCB0byBmYWxzZQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMy5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIyZDQwOGQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMuaHRtbApAQCAt
MCwwICsxLDcwIEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPlRlc3QgQ1NTT00gVmlldyBtb2R1
bGU6IE1lZGlhUXVlcnlMaXN0IGludGVyZmFjZTwvdGl0bGU+Cis8c3R5bGUgdHlwZT0idGV4dC9j
c3MiPgorCis8L3N0eWxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9
InV0Zi04Ij4KKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyAgICBmdW5jdGlvbiBsb2cobSkg
eworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0cycpLmlubmVySFRNTCAr
PSBtICsgJzxicj4nOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNhbGxiYWNrMShxdWVyeSkgewor
ICAgICAgICBsb2coIlsxXSAtIHF1ZXJ5ICIgKyBxdWVyeS5tZWRpYSArICIgY2hhbmdlZCB0byAi
ICsgKHF1ZXJ5Lm1hdGNoZXMgPyAidHJ1ZSIgOiAiZmFsc2UiKSk7CisgICAgfQorCisgICAgZnVu
Y3Rpb24gY2FsbGJhY2syKHF1ZXJ5KSB7CisgICAgICAgIGxvZygiWzJdIC0gcXVlcnkgIiArIHF1
ZXJ5Lm1lZGlhICsgIiBjaGFuZ2VkIHRvICIgKyAocXVlcnkubWF0Y2hlcyA/ICJ0cnVlIiA6ICJm
YWxzZSIpKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0cygpCisgICAgeworICAgICAg
ICBpZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgIHJldHVybjsK
KworICAgICAgICB3aW5kb3dlZFF1ZXJ5ID0gd2luZG93Lm1hdGNoTWVkaWEoIigtd2Via2l0LXZp
ZXctbW9kZTogd2luZG93ZWQpIik7CisgICAgICAgIG1pbmltaXplZFF1ZXJ5ID0gd2luZG93Lm1h
dGNoTWVkaWEoIigtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSIpOworCisgICAgICAgIGxv
ZygiYWRkaW5nIHdpbmRvd2VkWzFdLCBtaW5pbWl6ZWRbMV0sIHdpbmRvd2VkWzJdIGFuZCBtaW5p
bWl6ZWRbMl08YnI+Iik7CisgICAgICAgIHdpbmRvd2VkUXVlcnkuYWRkTGlzdGVuZXIoY2FsbGJh
Y2sxKTsKKyAgICAgICAgbWluaW1pemVkUXVlcnkuYWRkTGlzdGVuZXIoY2FsbGJhY2sxKTsKKyAg
ICAgICAgd2luZG93ZWRRdWVyeS5hZGRMaXN0ZW5lcihjYWxsYmFjazIpOworICAgICAgICBtaW5p
bWl6ZWRRdWVyeS5hZGRMaXN0ZW5lcihjYWxsYmFjazIpOworCisgICAgICAgIGxvZygiLS0tLS0t
LS0tLS0tLSBtaW5pbWl6ZWQgLS0tLS0tLS0tLS0tLSIpOworICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSgibWluaW1pemVkIik7CisgICAgICAgIGxv
ZygiLS0tLS0tLS0tLS0tLSB3aW5kb3dlZCAtLS0tLS0tLS0tLS0tIik7CisgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCJ3aW5kb3dlZCIpOworCisg
ICAgICAgIGxvZygiPGJyPjxicj5yZW1vdmluZyB3aW5kb3dlZFsxXSBhbmQgbWluaW1pemVkWzJd
PGJyPiIpOworICAgICAgICB3aW5kb3dlZFF1ZXJ5LnJlbW92ZUxpc3RlbmVyKGNhbGxiYWNrMSk7
CisgICAgICAgIG1pbmltaXplZFF1ZXJ5LnJlbW92ZUxpc3RlbmVyKGNhbGxiYWNrMik7CisKKyAg
ICAgICAgbG9nKCItLS0tLS0tLS0tLS0tIG1pbmltaXplZCAtLS0tLS0tLS0tLS0tIik7CisgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCJtaW5pbWl6
ZWQiKTsKKyAgICAgICAgbG9nKCItLS0tLS0tLS0tLS0tIHdpbmRvd2VkIC0tLS0tLS0tLS0tLS0i
KTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUo
IndpbmRvd2VkIik7CisKKyAgICAgICAgbG9nKCI8YnI+PGJyPmFkZGluZyB3aW5kb3dlZFsxXSBh
bmQgbWluaW1pemVkWzJdPGJyPiIpOworICAgICAgICB3aW5kb3dlZFF1ZXJ5LmFkZExpc3RlbmVy
KGNhbGxiYWNrMSk7CisgICAgICAgIG1pbmltaXplZFF1ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNr
Mik7CisKKyAgICAgICAgbG9nKCItLS0tLS0tLS0tLS0tIG1pbmltaXplZCAtLS0tLS0tLS0tLS0t
Iik7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0dXJl
KCJtaW5pbWl6ZWQiKTsKKyAgICAgICAgbG9nKCItLS0tLS0tLS0tLS0tIHdpbmRvd2VkIC0tLS0t
LS0tLS0tLS0iKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Vmlld01vZGVNZWRp
YUZlYXR1cmUoIndpbmRvd2VkIik7CisKKyAgICB9CisKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHkgb25sb2FkPSJydW5UZXN0cygpIj4KKyAgICA8cD5UZXN0IHRoZSBNZWRpYVF1ZXJ5TGlzdCBp
bnRlcmZhY2U6IDxhIGhyZWY9Imh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzc29tLXZpZXcvI3Ro
ZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2UiIHRpdGxlPSJDU1NPTSBWaWV3IE1vZHVsZSI+aHR0
cDovL2Rldi53My5vcmcvY3Nzd2cvY3Nzb20tdmlldy8jdGhlLW1lZGlhcXVlcnlsaXN0LWludGVy
ZmFjZTwvYT4uPC9wPgorICAgIDxwPlRlc3RpbmcgcmVtb3ZlTGlzdGVuZXIgaW4gZGlmZmVyZW50
IE1lZGlhUXVlcnlMaXN0IG9iamVjdHMgYW5kIHRoZSBjYWxsYmFjayBjYWxsIHNlcXVlbmNlPC9w
PgorICAgIDxkaXYgaWQ9InJlc3VsdHMiPgorICAgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlv
bnMudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMu
dHh0CmluZGV4IDU5MDcxOTEuLjE0OGUzYWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKQEAgLTI0MDAsOCArMjQwMCwxMCBA
QCBCVUczODU3OCA6IHBsdWdpbnMvb3ZlcnJpZGUtbm9kZS1tZXRob2QuaHRtbCA9IFRFWFQKIEJV
RzM4NjUzIE1BQyA6IGVkaXRpbmcvc2VsZWN0aW9uL2ZpbmQteWVuc2lnbi1hbmQtYmFja3NsYXNo
Lmh0bWwgPSBURVhUCiBCVUczODY1NiA6IGZhc3QvbWVkaWEvcHJpbnQtcmVzdG9yZXMtcHJldmlv
dXMtbWVkaWF0eXBlLmh0bWwgPSBURVhUCiAKLS8vIE5lZWRzIGxheW91dFRlc3RDb250cm9sbGVy
LnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCkgKGltcGxlbWVudGVkIG9uIFF0IG9ubHkpCisvLyBO
ZWVkcyBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSgpCiBCVUc0
MDY4MCBTS0lQIDogZmFzdC9tZWRpYS92aWV3LW1vZGUtbWVkaWEtZmVhdHVyZS5odG1sID0gRkFJ
TAorQlVHNDA2ODAgU0tJUCA6IGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMi5odG1sID0g
RkFJTAorQlVHNDA2ODAgU0tJUCA6IGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMy5odG1s
ID0gRkFJTAogCiAvLyBVbmtub3duIGZsYWtpbmVzcy4KIEJVRzM4NzA2IDogc3ZnL2N1c3RvbS9k
ZWVwLWR5bmFtaWMtdXBkYXRlcy5zdmcgPSBJTUFHRStURVhUIElNQUdFIFBBU1MKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL1NraXBwZWQKaW5kZXggYjQxMTFhZS4uZjUyZWJkYyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L1NraXBwZWQKQEAgLTE0MCw4ICsxNDAsMTAgQEAgaHR0cC90ZXN0cy9wbHVnaW5zL3BsdWdpbi1k
b2N1bWVudC1oYXMtZm9jdXMuaHRtbAogIyBNaXNzZXMgc2V0TWVkaWFUeXBlKCkgYW5kIGltcGxl
bWVudGF0aW9uCiBmYXN0L21lZGlhL3ByaW50LXJlc3RvcmVzLXByZXZpb3VzLW1lZGlhdHlwZS5o
dG1sCiAKLSMgdmlldyBtb2RlIG1lZGlhIGZlYXR1cmUKKyMgTmVlZHMgbGF5b3V0VGVzdENvbnRy
b2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoKQogZmFzdC9tZWRpYS92aWV3LW1vZGUtbWVk
aWEtZmVhdHVyZS5odG1sCitmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDIuaHRtbAorZmFz
dC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAzLmh0bWwKIAogIyBUZXN0IGlzIGZsYWt5IGFuZCB0
aHVzIG5vdCB1c2VmdWwgdW50aWwgZml4ZWQuCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0zNjY0MgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2lu
L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAppbmRleCAxMGE4ZjM2
Li5kYzNjMzlmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApAQCAtODQ1LDggKzg0NSwxMCBA
QCBmYXN0L2RvbS9IVE1MTWV0ZXJFbGVtZW50L21ldGVyLXBlcmNlbnQtc2l6ZS5odG1sCiBmYXN0
L2RvbS9IVE1MTWV0ZXJFbGVtZW50L21ldGVyLXN0eWxlcy5odG1sCiBmYXN0L2RvbS9IVE1MTWV0
ZXJFbGVtZW50L21ldGVyLXN0eWxlcy1jaGFuZ2luZy1wc2V1ZG8uaHRtbAogCi0jIHZpZXcgbW9k
ZSBtZWRpYSBmZWF0dXJlCisjIE5lZWRzIGxheW91dFRlc3RDb250cm9sbGVyLnNldFZpZXdNb2Rl
TWVkaWFGZWF0dXJlKCkKIGZhc3QvbWVkaWEvdmlldy1tb2RlLW1lZGlhLWZlYXR1cmUuaHRtbAor
ZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAyLmh0bWwKK2Zhc3QvbWVkaWEvbWVkaWEtcXVl
cnktbGlzdC0wMy5odG1sCiAKICMgTmVlZCBleHBlY3RhdGlvbnMuIFNlZSBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzY0NjEKIGZhc3QvcmVwYWludC9vdmVyZmxvdy1z
Y3JvbGwtYm9keS1hcHBlYXIuaHRtbApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3NmIyMjk4Li5iNTBmMWYyIDEwMDY0NAotLS0gYS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwNCBAQAor
MjAxMC0wOS0xNyAgTHVpeiBBZ29zdGluaSAgPGx1aXouYWdvc3RpbmlAb3BlbmJvc3NhLm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1l
bnQgQ1NTT00gVmlldyBtYXRjaE1lZGlhIGludGVyZmFjZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzcyMDUKKworICAgICAgICBOZXcgaW50ZXJmYWNl
cyBtYXkgYmUgdXNlZCB0byBldmFsdWF0ZSBtZWRpYSBxdWVyaWVzIGFuZCB0byBhc3NvY2lhdGUg
bGlzdGVuZXJzCisgICAgICAgIHRvIG1lZGlhIHF1ZXJpZXMuIFRob3NlIGxpc3RlbmVycyBhcmUg
Y2FsbGVkIHdoZW5ldmVyIHRoZSBhc3NvY2lhdGVkIHF1ZXJ5IGNoYW5nZXMuCisgICAgICAgIFNw
ZWNpZmljYXRpb24gbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzc29t
LXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2UKKworICAgICAgICBOZXcgaW50ZXJm
YWNlczoKKworICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5TGlzdC5pZGw6IEFkZGVkLgorICAgICAg
ICAqIGNzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmlkbDogQWRkZWQuCisKKyAgICAgICAgQ2xh
c3NlcyBNZWRpYVF1ZXJ5TGlzdCBhbmQgTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci4KKworICAgICAg
ICAqIGNzcy9NZWRpYVF1ZXJ5TGlzdC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFRdWVyeUxpc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdDo6
TWVkaWFRdWVyeUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeUxpc3Q6On5NZWRp
YVF1ZXJ5TGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdDo6bWVkaWEpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeUxpc3Q6OmFkZExpc3RlbmVyKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUXVlcnlMaXN0OjpyZW1vdmVMaXN0ZW5lcik6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVF1ZXJ5TGlzdDo6ZXZhbHVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFR
dWVyeUxpc3Q6OnNldE1hdGNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeUxpc3Q6
OmNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeUxpc3Q6Om1hdGNoZXMpOgor
ICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5TGlzdC5oOiBBZGRlZC4KKyAgICAgICAgKiBjc3MvTWVk
aWFRdWVyeUxpc3RMaXN0ZW5lci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVl
cnlMaXN0TGlzdGVuZXI6Ok1lZGlhUXVlcnlMaXN0TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6fk1lZGlhUXVlcnlMaXN0TGlzdGVuZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6dHlwZSk6CisKKyAgICAgICAg
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciBpbXBsZW1lbnRhdGlvbiB1c2VkIGJ5IEpTIGFuZCBWODoK
KworICAgICAgICAqIGJpbmRpbmdzL1NjcmlwdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OlNj
cmlwdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lcjo6cXVlcnlDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cmlwdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OmlzRXF1YWxUbyk6CisgICAgICAgICogYmluZGlu
Z3MvU2NyaXB0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlNjcmlwdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OmNyZWF0ZSk6CisKKyAgICAgICAgVG8g
YXZvaWQgYWRkaW5nIGNvZGUgdG8gY2xhc3NlcyBET01XaW5kb3cgYW5kIERvY3VtZW50IGEgbmV3
IGNsYXNzIE1lZGlhUXVlcnlNYXRjaGVyIHdhcworICAgICAgICBjcmVhdGVkLgorCisgICAgICAg
ICogY3NzL01lZGlhUXVlcnlNYXRjaGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVF1ZXJ5TWF0Y2hlcjo6TGlzdGVuZXI6Okxpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUXVlcnlNYXRjaGVyOjpMaXN0ZW5lcjo6fkxpc3RlbmVyKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUXVlcnlNYXRjaGVyOjpMaXN0ZW5lcjo6ZXZhbHVhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFRdWVyeU1hdGNoZXI6Ok1lZGlhUXVlcnlNYXRjaGVyKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUXVlcnlNYXRjaGVyOjp+TWVkaWFRdWVyeU1hdGNoZXIpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFRdWVyeU1hdGNoZXI6OnRlcm1pbmF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVF1ZXJ5TWF0Y2hlcjo6bWVkaWFUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UXVlcnlNYXRjaGVyOjpwcmVwYXJlRXZhbHVhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UXVlcnlNYXRjaGVyOjpldmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5TWF0
Y2hlcjo6bWF0Y2hNZWRpYSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5TWF0Y2hlcjo6
YWRkTGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeU1hdGNoZXI6OnJlbW92
ZUxpc3RlbmVyKToKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeU1hdGNoZXIuaDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5TWF0Y2hlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUXVlcnlNYXRjaGVyOjpldmFsUm91bmQpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFRdWVyeU1hdGNoZXI6Okxpc3RlbmVyOjpsaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVF1ZXJ5TWF0Y2hlcjo6TGlzdGVuZXI6OnF1ZXJ5KToKKworICAgICAgICBEb2N1bWVu
dCBhbmQgRE9NV2luZG93IGhhdmUgY2hhbmdlZCB0byBzdXBwb3J0IG5ldyBmZWF0dXJlcy4gRE9N
V2luZG93IGlzIHRoZSBjbGFzcyB0aGF0CisgICAgICAgIHB1Ymxpc2hlcyBtZXRob2RzIG1hdGNo
TWVkaWEgYnV0IGZvciBwYWdlIGNhY2hlIHRvIHdvcmsgcHJvcGVybHkgIHRoZSByZWZlcmVuY2Ug
dG8gdGhlIAorICAgICAgICBNZWRpYVF1ZXJ5TWF0Y2hlciBpcyBrZXB0IGJ5IERvY3VtZW50IGlu
c3RhbmNlLgorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRvY3VtZW50Ojp+RG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Om1hdGNo
TWVkaWEpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnN0eWxlU2VsZWN0b3JDaGFuZ2Vk
KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6Om1hdGNoTWVkaWEpOgorICAgICAgICAq
IHBhZ2UvRE9NV2luZG93Lmg6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaWRsOgorCisgICAg
ICAgIFNvbWUgYWRqdXN0bWVudHMgdG8gY29kZSBnZW5lcmF0b3JzOgorCisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbToKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JWOC5wbToKKworICAgICAgICBidWlsZCBzeXN0ZW06CisKKyAgICAgICAg
KiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAg
ICAqIGJpbmRpbmdzL2dvYmplY3QvR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5n
eXBpOgorICAgICAgICAqIFdlYkNvcmUucHJpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAg
ICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKworICAgICAgICBUZXN0czogZmFzdC9tZWRpYS9t
ZWRpYS1xdWVyeS1saXN0LTAxLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvbWVkaWEvbWVkaWEt
cXVlcnktbGlzdC0wMi5odG1sCisgICAgICAgICAgICAgICBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5
LWxpc3QtMDMuaHRtbAorCiAyMDEwLTA5LTIyICBMdWl6IEFnb3N0aW5pICA8bHVpei5hZ29zdGlu
aUBvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9saXZlciBIdW50LgpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlCmluZGV4IGFkYmQzMGMuLjg3ZTMzYjQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMubWFrZQorKysgYi9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTI2
MCw2ICsyNjAsOCBAQCBET01fQ0xBU1NFUyA9IFwKICAgICBMb2NhdGlvbiBcCiAgICAgTWVkaWFF
cnJvciBcCiAgICAgTWVkaWFMaXN0IFwKKyAgICBNZWRpYVF1ZXJ5TGlzdCBcCisgICAgTWVkaWFR
dWVyeUxpc3RMaXN0ZW5lciBcCiAgICAgTWVtb3J5SW5mbyBcCiAgICAgTWVzc2FnZUNoYW5uZWwg
XAogICAgIE1lc3NhZ2VFdmVudCBcCkBAIC00OTYsNyArNDk4LDcgQEAgRE9NX0NMQVNTRVMgPSBc
CiAKIC5QSE9OWSA6IGFsbAogCi1KU19ET01fSEVBREVSUz0kKGZpbHRlci1vdXQgSlNFdmVudExp
c3RlbmVyLmggSlNFdmVudFRhcmdldC5oLCQoRE9NX0NMQVNTRVM6JT1KUyUuaCkpCitKU19ET01f
SEVBREVSUz0kKGZpbHRlci1vdXQgSlNNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggSlNFdmVudExp
c3RlbmVyLmggSlNFdmVudFRhcmdldC5oLCQoRE9NX0NMQVNTRVM6JT1KUyUuaCkpCiAKIFdFQl9E
T01fSEVBREVSUyA6PQogaWZlcSAoJChmaW5kc3RyaW5nIEJVSUxESU5HX1dYLCQoRkVBVFVSRV9E
RUZJTkVTKSksIEJVSUxESU5HX1dYKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5h
bSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggZTcyNjViNi4uOGY4MTNlMyAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFt
CkBAIC00MTcsNiArNDE3LDggQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTTWVkaWFFcnJvci5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTTWVkaWFMaXN0LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhTGlzdC5o
IFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFRdWVyeUxpc3QuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFRdWVyeUxpc3QuaCBcCiAJRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU01lbW9yeUluZm8uY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVt
b3J5SW5mby5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVzc2FnZUNoYW5uZWwuY3Bw
IFwKQEAgLTYxNSw2ICs2MTcsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVSb3cuaCBcCiAJV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuY3BwIFwKIAlXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RD
YWNoZS5oIFwKKwlXZWJDb3JlL2JpbmRpbmdzL1NjcmlwdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIu
Y3BwIFwKKwlXZWJDb3JlL2JpbmRpbmdzL1NjcmlwdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCBc
CiAJV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0FjdGl2ZURPTUNhbGxiYWNrLmNwcCBcCiAJV2Vi
Q29yZS9iaW5kaW5ncy9nZW5lcmljL0FjdGl2ZURPTUNhbGxiYWNrLmggXAogCVdlYkNvcmUvYmlu
ZGluZ3MvZ2VuZXJpYy9CaW5kaW5nRnJhbWUuaCBcCkBAIC05ODYsMTEgKzk5MCwxNiBAQCB3ZWJj
b3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvY3NzL01lZGlhTGlzdC5jcHAgXAogCVdlYkNvcmUv
Y3NzL01lZGlhTGlzdC5oIFwKIAlXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5LmNwcCBcCisJV2ViQ29y
ZS9jc3MvTWVkaWFRdWVyeS5oIFwKIAlXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNw
cCBcCiAJV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5oIFwKIAlXZWJDb3JlL2Nzcy9N
ZWRpYVF1ZXJ5RXhwLmNwcCBcCiAJV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cC5oIFwKLQlXZWJD
b3JlL2Nzcy9NZWRpYVF1ZXJ5LmggXAorCVdlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0LmNwcCBc
CisJV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3QuaCBcCisJV2ViQ29yZS9jc3MvTWVkaWFRdWVy
eUxpc3RMaXN0ZW5lci5oIFwKKwlXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TWF0Y2hlci5jcHAgXAor
CVdlYkNvcmUvY3NzL01lZGlhUXVlcnlNYXRjaGVyLmggXAogCVdlYkNvcmUvY3NzL1BhaXIuaCBc
CiAJV2ViQ29yZS9jc3MvUmVjdC5oIFwKIAlXZWJDb3JlL2Nzcy9SR0JDb2xvci5jcHAgXApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRl
eCBjODcwMmZjLi41YmFlZThkIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysg
Yi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMTksNiArMTksNyBAQAogICAgICAgICAgICAgJ2Nz
cy9DU1NWYXJpYWJsZXNSdWxlLmlkbCcsCiAgICAgICAgICAgICAnY3NzL0NvdW50ZXIuaWRsJywK
ICAgICAgICAgICAgICdjc3MvTWVkaWFMaXN0LmlkbCcsCisgICAgICAgICAgICAnY3NzL01lZGlh
UXVlcnlMaXN0LmlkbCcsCiAgICAgICAgICAgICAnY3NzL1JlY3QuaWRsJywKICAgICAgICAgICAg
ICdjc3MvUkdCQ29sb3IuaWRsJywKICAgICAgICAgICAgICdjc3MvU3R5bGVNZWRpYS5pZGwnLApA
QCAtNTEyLDYgKzUxMyw4IEBACiAgICAgICAgICAgICAnYWNjZXNzaWJpbGl0eS93aW4vQWNjZXNz
aWJpbGl0eU9iamVjdFdpbi5jcHAnLAogICAgICAgICAgICAgJ2FjY2Vzc2liaWxpdHkvd2luL0Fj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyV2luLmgnLAogICAgICAgICAgICAgJ2FjY2Vzc2liaWxp
dHkvd3gvQWNjZXNzaWJpbGl0eU9iamVjdFd4LmNwcCcsCisgICAgICAgICAgICAnYmluZGluZ3Mv
U2NyaXB0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAnLAorICAgICAgICAgICAgJ2JpbmRpbmdz
L1NjcmlwdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3Mv
Z2VuZXJpYy9BY3RpdmVET01DYWxsYmFjay5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2dl
bmVyaWMvQWN0aXZlRE9NQ2FsbGJhY2suaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvZ2VuZXJp
Yy9CaW5kaW5nRE9NV2luZG93LmgnLApAQCAtMTA2MCwxMSArMTA2MywxNiBAQAogICAgICAgICAg
ICAgJ2Nzcy9NZWRpYUxpc3QuY3BwJywKICAgICAgICAgICAgICdjc3MvTWVkaWFMaXN0LmgnLAog
ICAgICAgICAgICAgJ2Nzcy9NZWRpYVF1ZXJ5LmNwcCcsCisgICAgICAgICAgICAnY3NzL01lZGlh
UXVlcnkuaCcsCiAgICAgICAgICAgICAnY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwJywKICAg
ICAgICAgICAgICdjc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5oJywKICAgICAgICAgICAgICdjc3Mv
TWVkaWFRdWVyeUV4cC5jcHAnLAogICAgICAgICAgICAgJ2Nzcy9NZWRpYVF1ZXJ5RXhwLmgnLAot
ICAgICAgICAgICAgJ2Nzcy9NZWRpYVF1ZXJ5LmgnLAorICAgICAgICAgICAgJ2Nzcy9NZWRpYVF1
ZXJ5TGlzdC5jcHAnLAorICAgICAgICAgICAgJ2Nzcy9NZWRpYVF1ZXJ5TGlzdC5oJywKKyAgICAg
ICAgICAgICdjc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oJywKKyAgICAgICAgICAgICdjc3Mv
TWVkaWFRdWVyeU1hdGNoZXIuY3BwJywKKyAgICAgICAgICAgICdjc3MvTWVkaWFRdWVyeU1hdGNo
ZXIuaCcsCiAgICAgICAgICAgICAnY3NzL1BhaXIuaCcsCiAgICAgICAgICAgICAnY3NzL1JlY3Qu
aCcsCiAgICAgICAgICAgICAnY3NzL1JHQkNvbG9yLmNwcCcsCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L1dlYkNvcmUucHJpIGIvV2ViQ29yZS9XZWJDb3JlLnByaQppbmRleCAzN2JiMjA1Li5jMjM3YmRl
IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5w
cmkKQEAgLTg2LDYgKzg2LDggQEAgSURMX0JJTkRJTkdTICs9IFwKICAgICBjc3MvQ1NTVmFyaWFi
bGVzRGVjbGFyYXRpb24uaWRsIFwKICAgICBjc3MvQ1NTVmFyaWFibGVzUnVsZS5pZGwgXAogICAg
IGNzcy9NZWRpYUxpc3QuaWRsIFwKKyAgICBjc3MvTWVkaWFRdWVyeUxpc3QuaWRsIFwKKyMgICAg
Y3NzL01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaWRsIFwKICAgICBjc3MvUmVjdC5pZGwgXAogICAg
IGNzcy9SR0JDb2xvci5pZGwgXAogICAgIGNzcy9TdHlsZU1lZGlhLmlkbCBcCmRpZmYgLS1naXQg
YS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCA1ZDM2NTBj
Li5hZGU0Y2ZhIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1dlYkNvcmUv
V2ViQ29yZS5wcm8KQEAgLTMxOCw2ICszMTgsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lci5jcHAgXCAgICAKICAgICBh
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJvdy5jcHAgXCAgICAKICAgICBhY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIFwKKyAgICBiaW5kaW5ncy9TY3JpcHRNZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyLmNwcCBcCiAgICAgYmluZGluZ3MvZ2VuZXJpYy9BY3RpdmVET01DYWxsYmFj
ay5jcHAKIAogdjggewpAQCAtNjUzLDYgKzY1NCw4IEBAIFNPVVJDRVMgKz0gXAogICAgIGNzcy9N
ZWRpYVF1ZXJ5LmNwcCBcCiAgICAgY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwIFwKICAgICBj
c3MvTWVkaWFRdWVyeUV4cC5jcHAgXAorICAgIGNzcy9NZWRpYVF1ZXJ5TGlzdC5jcHAgXAorICAg
IGNzcy9NZWRpYVF1ZXJ5TWF0Y2hlci5jcHAgXAogICAgIGNzcy9SR0JDb2xvci5jcHAgXAogICAg
IGNzcy9TaGFkb3dWYWx1ZS5jcHAgXAogICAgIGNzcy9TdHlsZUJhc2UuY3BwIFwKQEAgLTEzMTQs
NiArMTMxNyw3IEBAIEhFQURFUlMgKz0gXAogICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVRhYmxlUm93LmggXAogICAgIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oIFwKICAgICBi
aW5kaW5ncy9TY3JpcHRDb250cm9sbGVyQmFzZS5oIFwKKyAgICBiaW5kaW5ncy9TY3JpcHRNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyLmggXAogICAgIGJpbmRpbmdzL2dlbmVyaWMvQWN0aXZlRE9NQ2Fs
bGJhY2suaAogCiB2OCB7CkBAIC0xNTIxLDkgKzE1MjUsMTIgQEAgSEVBREVSUyArPSBcCiAgICAg
Y3NzL0ZvbnRWYWx1ZS5oIFwKICAgICBjc3MvTWVkaWFGZWF0dXJlTmFtZXMuaCBcCiAgICAgY3Nz
L01lZGlhTGlzdC5oIFwKKyAgICBjc3MvTWVkaWFRdWVyeS5oIFwKICAgICBjc3MvTWVkaWFRdWVy
eUV2YWx1YXRvci5oIFwKICAgICBjc3MvTWVkaWFRdWVyeUV4cC5oIFwKLSAgICBjc3MvTWVkaWFR
dWVyeS5oIFwKKyAgICBjc3MvTWVkaWFRdWVyeUxpc3QuaCBcCisgICAgY3NzL01lZGlhUXVlcnlM
aXN0TGlzdGVuZXIuaCBcCisgICAgY3NzL01lZGlhUXVlcnlNYXRjaGVyLmggXAogICAgIGNzcy9S
R0JDb2xvci5oIFwKICAgICBjc3MvU2hhZG93VmFsdWUuaCBcCiAgICAgY3NzL1N0eWxlQmFzZS5o
IFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCm9sZCBtb2RlIDEwMDY0NApuZXcg
bW9kZSAxMDA3NTUKaW5kZXggNTJjYjI2Yi4uYzBmZGEyOAotLS0gYS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2oKQEAgLTk4OTMsNiArOTg5Myw2MiBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJ
PEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVj
dE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTTWVkaWFRdWVyeUxpc3QuY3BwIg0KKwkJCQk+DQorCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiDQorCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQor
CQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiINCisJCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z19JbnRlcm5hbHxX
aW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRv
b2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1
Z19DYWlyb3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0K
KwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlO
YW1lPSJSZWxlYXNlX0NhaXJvfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
DQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQor
CQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24NCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQk8L0ZpbGU+DQor
CQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJv
amVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTTWVkaWFRdWVyeUxpc3QuaCINCisJCQkJPg0KKwkJ
CTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGly
KVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNNZW1vcnlJbmZvLmNwcCINCiAJ
CQkJPg0KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCkBAIC0yOTk0MSw2ICsyOTk5NywyNiBAQAog
CQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxjc3Nc
TWVkaWFRdWVyeUxpc3QuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cY3NzXE1lZGlhUXVlcnlMaXN0LmgiDQorCQkJCT4NCisJCQk8L0Zp
bGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxjc3NcTWVkaWFRdWVyeUxpc3RM
aXN0ZW5lci5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZl
UGF0aD0iLi5cY3NzXE1lZGlhUXVlcnlNYXRjaGVyLmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4N
CisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xNZWRpYVF1ZXJ5TWF0Y2hlci5o
Ig0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iLi5c
Y3NzXFBhaXIuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCkBAIC00MjQ2NCw2ICs0MjU0MCwxNCBA
QAogCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcU2NyaXB0Q29udHJvbGxlckJhc2UuaCIN
CiAJCQkJPg0KIAkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJp
bmRpbmdzXFNjcmlwdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwIg0KKwkJCQk+DQorCQkJPC9G
aWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcU2NyaXB0TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lci5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KIAkJCTxGaWx0ZXIN
CiAJCQkJTmFtZT0iZ2VuZXJpYyINCiAJCQkJPg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggYWRiYjQzNC4uMWZkMDZiMiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTUxOTYsNiArNTE5NiwxNSBAQAogCQlEMjND
QTU2QzBBQjBFQjhEMDA1MTA4QTUgLyogUmFuZ2VFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQyM0NBNTZCMEFCMEVCOEQwMDUxMDhBNSAv
KiBSYW5nZUV4Y2VwdGlvbi5oICovOyB9OwogCQlEMzlEMDA2RDExRjhFMzA4MDA2MDQxRjIgLyog
UG9wdXBNZW51TWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBEMzlEMDA2QzExRjhFMzA4MDA2MDQxRjIgLyogUG9wdXBNZW51TWFjLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRDM5RDAwOUQxMUY5MDdF
NjAwNjA0MUYyIC8qIFNlYXJjaFBvcHVwTWVudU1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDM5RDAwOUMxMUY5MDdFNjAwNjA0MUYyIC8qIFNlYXJj
aFBvcHVwTWVudU1hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCUQzQTk0QTM4MTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0E5NEEzMTEy
MkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeUxpc3QuY3BwICovOyB9OworCQlEM0E5NEEzOTEy
MkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeUxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQTk0QTMyMTIyREFCQUMwMEEzN0JCQyAvKiBNZWRp
YVF1ZXJ5TGlzdC5oICovOyB9OworCQlEM0E5NEEzQjEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFR
dWVyeUxpc3RMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRDNBOTRBMzQxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXIuaCAqLzsgfTsKKwkJRDNBOTRBNDYxMjJEQzQwRjAwQTM3QkJDIC8qIEpTTWVkaWFRdWVyeUxp
c3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNB
OTRBNDIxMjJEQzQwRjAwQTM3QkJDIC8qIEpTTWVkaWFRdWVyeUxpc3QuY3BwICovOyB9OworCQlE
M0E5NEE0NzEyMkRDNDBGMDBBMzdCQkMgLyogSlNNZWRpYVF1ZXJ5TGlzdC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNBOTRBNDMxMjJEQzQwRjAwQTM3
QkJDIC8qIEpTTWVkaWFRdWVyeUxpc3QuaCAqLzsgfTsKKwkJRDNBQTEwRjMxMjNBOThBQTAwOTIx
NTJCIC8qIE1lZGlhUXVlcnlNYXRjaGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEQzQUExMEYxMTIzQTk4QUEwMDkyMTUyQiAvKiBNZWRpYVF1ZXJ5
TWF0Y2hlci5jcHAgKi87IH07CisJCUQzQUExMEY0MTIzQTk4QUEwMDkyMTUyQiAvKiBNZWRpYVF1
ZXJ5TWF0Y2hlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRDNBQTEwRjIxMjNBOThBQTAwOTIxNTJCIC8qIE1lZGlhUXVlcnlNYXRjaGVyLmggKi87IH07
CisJCUQzQkE1MERFMTI0MjY0ODgwMEFFNURERCAvKiBTY3JpcHRNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQz
QkE1MERDMTI0MjY0ODgwMEFFNURERCAvKiBTY3JpcHRNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNw
cCAqLzsgfTsKKwkJRDNCQTUwREYxMjQyNjQ4ODAwQUU1REREIC8qIFNjcmlwdE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEQzQkE1MEREMTI0MjY0ODgwMEFFNURERCAvKiBTY3JpcHRNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyLmggKi87IH07CiAJCUQ4QjYxNTJGMTAzMjQ5NTEwMEM4NTU0QSAvKiBDb29raWUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQ4QjYxNTJFMTAzMjQ5
NTEwMEM4NTU0QSAvKiBDb29raWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlEQjIzQzJDQjBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVu
dENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gREIyM0MyQzkwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmNwcCAq
LzsgfTsKIAkJREIyM0MyQ0MwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5k
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQjIzQzJD
QTBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuaCAqLzsgfTsKQEAgLTEx
MDU4LDYgKzExMDY3LDE3IEBACiAJCUQyM0NBNTZCMEFCMEVCOEQwMDUxMDhBNSAvKiBSYW5nZUV4
Y2VwdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmFuZ2VFeGNlcHRp
b24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDM5RDAwNkMxMUY4RTMwODAwNjA0
MUYyIC8qIFBvcHVwTWVudU1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQ
b3B1cE1lbnVNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDM5RDAwOUMxMUY5
MDdFNjAwNjA0MUYyIC8qIFNlYXJjaFBvcHVwTWVudU1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTZWFyY2hQb3B1cE1lbnVNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRDNBOTRBMzExMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhUXVlcnlMaXN0LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDNBOTRBMzIxMjJEQUJBQzAwQTM3QkJDIC8q
IE1lZGlhUXVlcnlMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlh
UXVlcnlMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQzQTk0QTMzMTIyREFC
QUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
TWVkaWFRdWVyeUxpc3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEM0E5NEEz
NDEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUQzQTk0QTM1MTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDNBOTRBNDIxMjJE
QzQwRjAwQTM3QkJDIC8qIEpTTWVkaWFRdWVyeUxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNNZWRpYVF1ZXJ5TGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUQzQTk0QTQzMTIyREM0MEYwMEEzN0JCQyAvKiBKU01lZGlhUXVlcnlMaXN0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWVkaWFRdWVyeUxpc3QuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDNBQTEwRjExMjNBOThBQTAwOTIxNTJCIC8q
IE1lZGlhUXVlcnlNYXRjaGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IE1lZGlhUXVlcnlNYXRjaGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RDNBQTEwRjIxMjNBOThBQTAwOTIxNTJCIC8qIE1lZGlhUXVlcnlNYXRjaGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUXVlcnlNYXRjaGVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUQzQkE1MERDMTI0MjY0ODgwMEFFNURERCAvKiBTY3JpcHRNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFNjcmlwdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlEM0JBNTBERDEyNDI2NDg4MDBBRTVEREQgLyogU2NyaXB0TWVkaWFRdWVyeUxp
c3RMaXN0ZW5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQ4QjYx
NTJFMTAzMjQ5NTEwMEM4NTU0QSAvKiBDb29raWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQ29va2llLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURCMjNDMkM5
MEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5kZW50T3V0ZGVudENvbW1hbmQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQjIzQzJDQTBBNTA4RDI5MDAyNDg5RUIgLyogSW5k
ZW50T3V0ZGVudENvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElu
ZGVudE91dGRlbnRDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTE2
MCw2ICsxNTE4MCw4IEBACiAJCQkJQkM2ODZDN0EwRTBDMzMwMTAwREU4QTA4IC8qIEpTQ1NTVmFy
aWFibGVzUnVsZS5jcHAgKi8sCiAJCQkJQkM2ODZDN0IwRTBDMzMwMTAwREU4QTA4IC8qIEpTQ1NT
VmFyaWFibGVzUnVsZS5oICovLAogCQkJCUJDM0MzOUI0MEMwRDNEOEQwMDVGNEQ3QSAvKiBKU01l
ZGlhTGlzdC5jcHAgKi8sCisJCQkJRDNBOTRBNDIxMjJEQzQwRjAwQTM3QkJDIC8qIEpTTWVkaWFR
dWVyeUxpc3QuY3BwICovLAorCQkJCUQzQTk0QTQzMTIyREM0MEYwMEEzN0JCQyAvKiBKU01lZGlh
UXVlcnlMaXN0LmggKi8sCiAJCQkJQkMzQzM5QjUwQzBEM0Q4RDAwNUY0RDdBIC8qIEpTTWVkaWFM
aXN0LmggKi8sCiAJCQkJQkNGRTJGMEYwQzFCNTgzNzAwMjAyMzVGIC8qIEpTUmVjdC5jcHAgKi8s
CiAJCQkJQkNGRTJGMTAwQzFCNTgzNzAwMjAyMzVGIC8qIEpTUmVjdC5oICovLApAQCAtMTYyMTQs
NiArMTYyMzYsOCBAQAogCQkJCThDNkVBNjE4MTFFRjdFMDQwMEZEOEVFMyAvKiBSdW50aW1lRW5h
YmxlZEZlYXR1cmVzLmggKi8sCiAJCQkJOTdFRjdERkQxMDdFNTVCNzAwRDdDNDlDIC8qIFNjcmlw
dENvbnRyb2xsZXJCYXNlLmNwcCAqLywKIAkJCQlDRTAyRjBDMzExRTgzQUREMDBDNjY4NEEgLyog
U2NyaXB0Q29udHJvbGxlckJhc2UuaCAqLywKKwkJCQlEM0JBNTBEQzEyNDI2NDg4MDBBRTVEREQg
LyogU2NyaXB0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgKi8sCisJCQkJRDNCQTUwREQxMjQy
NjQ4ODAwQUU1REREIC8qIFNjcmlwdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCAqLywKIAkJCSk7
CiAJCQlwYXRoID0gYmluZGluZ3M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTcx
NDgsNiArMTcxNzIsMTMgQEAKIAkJCQk0RTE5NTkyNjBBMzlEQUNDMDAyMjBGRTUgLyogTWVkaWFR
dWVyeUV2YWx1YXRvci5oICovLAogCQkJCTRFMTk1OTI3MEEzOURBQ0MwMDIyMEZFNSAvKiBNZWRp
YVF1ZXJ5RXhwLmNwcCAqLywKIAkJCQk0RTE5NTkyODBBMzlEQUNDMDAyMjBGRTUgLyogTWVkaWFR
dWVyeUV4cC5oICovLAorCQkJCUQzQTk0QTMxMTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5
TGlzdC5jcHAgKi8sCisJCQkJRDNBOTRBMzIxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlM
aXN0LmggKi8sCisJCQkJRDNBOTRBMzMxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0
LmlkbCAqLywKKwkJCQlEM0E5NEEzNDEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeUxpc3RM
aXN0ZW5lci5oICovLAorCQkJCUQzQTk0QTM1MTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyLmlkbCAqLywKKwkJCQlEM0FBMTBGMTEyM0E5OEFBMDA5MjE1MkIgLyogTWVk
aWFRdWVyeU1hdGNoZXIuY3BwICovLAorCQkJCUQzQUExMEYyMTIzQTk4QUEwMDkyMTUyQiAvKiBN
ZWRpYVF1ZXJ5TWF0Y2hlci5oICovLAogCQkJCUE4MEU2Q0QxMEExOTg5Q0EwMDdGQjhDNSAvKiBQ
YWlyLmggKi8sCiAJCQkJOTNDQTRDOUYwOURGOTNGQTAwREY4Njc3IC8qIHF1aXJrcy5jc3MgKi8s
CiAJCQkJQkM0MzY4RTcwQzIyNkUzMjAwNUVGQjVGIC8qIFJlY3QuaCAqLywKQEAgLTIwNTgyLDYg
KzIwNjEzLDExIEBACiAJCQkJODQ3MzBEOTExMjQ4RjBCMzAwRDNBOUM5IC8qIExpZ2h0U291cmNl
LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NDczMEQ5MjEyNDhGMEIzMDBEM0E5QzkgLyogUG9pbnRM
aWdodFNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODQ3MzBEOTMxMjQ4RjBCMzAwRDNBOUM5
IC8qIFNwb3RMaWdodFNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRDNBOTRBMzkxMjJEQUJB
QzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQlEM0E5NEEz
QjEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJRDNBOTRBNDcxMjJEQzQwRjAwQTM3QkJDIC8qIEpTTWVkaWFRdWVyeUxpc3QuaCBp
biBIZWFkZXJzICovLAorCQkJCUQzQUExMEY0MTIzQTk4QUEwMDkyMTUyQiAvKiBNZWRpYVF1ZXJ5
TWF0Y2hlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRDNCQTUwREYxMjQyNjQ4ODAwQUU1REREIC8q
IFNjcmlwdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJ
CXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjMwNjEs
NiArMjMwOTcsMTAgQEAKIAkJCQk4NDczMEQ4QTEyNDhGMEIzMDBEM0E5QzkgLyogRkVUaWxlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTg0NzMwRDhDMTI0OEYwQjMwMEQzQTlDOSAvKiBGRVR1cmJ1
bGVuY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODQ3MzBEOTAxMjQ4RjBCMzAwRDNBOUM5IC8q
IExpZ2h0U291cmNlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUQzQTk0QTM4MTIyREFCQUMwMEEz
N0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlEM0E5NEE0NjEy
MkRDNDBGMDBBMzdCQkMgLyogSlNNZWRpYVF1ZXJ5TGlzdC5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlEM0FBMTBGMzEyM0E5OEFBMDA5MjE1MkIgLyogTWVkaWFRdWVyeU1hdGNoZXIuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJRDNCQTUwREUxMjQyNjQ4ODAwQUU1REREIC8qIFNjcmlwdE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRl
cGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Jp
bmRpbmdzL1NjcmlwdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwIGIvV2ViQ29yZS9iaW5kaW5n
cy9TY3JpcHRNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5mNWY1ZjdjCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9iaW5kaW5n
cy9TY3JpcHRNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcApAQCAtMCwwICsxLDY0IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lk
aWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTY3JpcHRN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgiCisKKyNpZiBVU0UoSlNDKQorI2luY2x1ZGUgIkpTTWVk
aWFRdWVyeUxpc3QuaCIKKyNlbHNlCisjaW5jbHVkZSAiVjhNZWRpYVF1ZXJ5TGlzdC5oIgorI2Vu
ZGlmCisjaW5jbHVkZSAiTWVkaWFRdWVyeUxpc3QuaCIKKyNpbmNsdWRlICJTY3JpcHRGdW5jdGlv
bkNhbGwuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTY3JpcHRNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyOjpTY3JpcHRNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKFNjcmlwdFZhbHVlIHZhbHVlKQor
ICAgIDogTWVkaWFRdWVyeUxpc3RMaXN0ZW5lcihTY3JpcHRNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
VHlwZSkKKyAgICAsIG1fdmFsdWUodmFsdWUpCit7Cit9CisKK3ZvaWQgU2NyaXB0TWVkaWFRdWVy
eUxpc3RMaXN0ZW5lcjo6cXVlcnlDaGFuZ2VkKFNjcmlwdFN0YXRlKiBzdGF0ZSwgTWVkaWFRdWVy
eUxpc3QqIHF1ZXJ5KQoreworICAgIFNjcmlwdENhbGxiYWNrIGNhbGxiYWNrKHN0YXRlLCBtX3Zh
bHVlKTsKKyNpZiBVU0UoSlNDKQorICAgIGNhbGxiYWNrLmFwcGVuZEFyZ3VtZW50KHRvSlMoc3Rh
dGUsIHF1ZXJ5KSk7CisjZWxzZQorICAgIGNhbGxiYWNrLmFwcGVuZEFyZ3VtZW50KHRvVjgocXVl
cnkpKTsKKyNlbmRpZgorICAgIGNhbGxiYWNrLmNhbGwoKTsKK30KKworYm9vbCBTY3JpcHRNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyOjppc0VxdWFsVG8oU2NyaXB0U3RhdGUqIHN0YXRlLCBjb25zdCBN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKiBvdGhlcikKK3sKKyAgICBpZiAoIW90aGVyIHx8IG90aGVy
LT50eXBlKCkgIT0gdHlwZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgY29uc3QgU2Ny
aXB0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciogc2NyaXB0TGlzdGVuZXIgPSBzdGF0aWNfY2FzdDxj
b25zdCBTY3JpcHRNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKj4ob3RoZXIpOworICAgIHJldHVybiBz
Y3JpcHRMaXN0ZW5lciAmJiBzY3JpcHRMaXN0ZW5lci0+bV92YWx1ZS5pc0VxdWFsKHN0YXRlLCBt
X3ZhbHVlKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9TY3JpcHRNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyLmggYi9XZWJDb3JlL2JpbmRpbmdzL1NjcmlwdE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zY2QzMWUw
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9TY3JpcHRNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyLmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIFNjcmlwdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJfaAorI2RlZmluZSBTY3JpcHRNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyX2gKKworI2luY2x1ZGUgIk1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCIK
KyNpbmNsdWRlICJTY3JpcHRWYWx1ZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IFNjcmlwdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIgOiBwdWJsaWMgTWVkaWFRdWVyeUxpc3RMaXN0
ZW5lciB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U2NyaXB0TWVkaWFRdWVyeUxp
c3RMaXN0ZW5lcj4gY3JlYXRlKFNjcmlwdFZhbHVlIHZhbHVlKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBTY3JpcHRNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKHZhbHVlKSk7Cisg
ICAgfQorCisgICAgdmlydHVhbCB2b2lkIHF1ZXJ5Q2hhbmdlZChTY3JpcHRTdGF0ZSosIE1lZGlh
UXVlcnlMaXN0Kik7CisgICAgdmlydHVhbCBib29sIGlzRXF1YWxUbyhTY3JpcHRTdGF0ZSosIGNv
bnN0IE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqKTsKKworcHJpdmF0ZToKKyAgICBTY3JpcHRNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyKFNjcmlwdFZhbHVlIHZhbHVlKTsKKworICAgIFNjcmlwdFZhbHVl
IG1fdmFsdWU7Cit9OworCit9CisKKyNlbmRpZiAvLyBTY3JpcHRNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9HTlVtYWtlZmlsZS5h
bSBiL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9HTlVtYWtlZmlsZS5hbQppbmRleCAxMjgzNWNj
Li41Nzk4YTBlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvR05VbWFrZWZp
bGUuYW0KKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dOVW1ha2VmaWxlLmFtCkBAIC0x
OTIsNiArMTkyLDggQEAgd2Via2l0Z3RrX2dkb21fYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZl
ZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTU1lZGlhRXJyb3JQcml2YXRlLmggXAogCURlcml2ZWRT
b3VyY2VzL3dlYmtpdC9XZWJLaXRET01NZWRpYUxpc3QuY3BwIFwKIAlEZXJpdmVkU291cmNlcy93
ZWJraXQvV2ViS2l0RE9NTWVkaWFMaXN0UHJpdmF0ZS5oIFwKKwlEZXJpdmVkU291cmNlcy93ZWJr
aXQvV2ViS2l0RE9NTWVkaWFRdWVyeUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy93ZWJraXQv
V2ViS2l0RE9NTWVkaWFRdWVyeUxpc3RQcml2YXRlLmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtp
dC9XZWJLaXRET01NZW1vcnlJbmZvLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktp
dERPTU1lbW9yeUluZm9Qcml2YXRlLmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRE
T01NZXNzYWdlUG9ydC5jcHAgXApAQCAtMjUwLDYgKzI1Miw3IEBAIHdlYmtpdGd0a19idWlsdF9o
X2FwaSArPSBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTUNTU1N0eWxlU2hlZXQu
aCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTUNTU1ZhbHVlLmggXAogCURlcml2
ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01NZWRpYUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMv
d2Via2l0L1dlYktpdERPTU1lZGlhUXVlcnlMaXN0LmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtp
dC9XZWJLaXRET01TdHlsZU1lZGlhLmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRE
T01TdHlsZVNoZWV0LmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01TdHlsZVNo
ZWV0TGlzdC5oIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yR09iamVjdC5wbSBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
R09iamVjdC5wbQppbmRleCA2YTFkMTE1Li5kODZhMGM0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0KKysrIGIvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCkBAIC0yMTAsOCArMjEwLDExIEBA
IHN1YiBTa2lwRnVuY3Rpb24gewogCiAgICAgIyBTa2lwIGZ1bmN0aW9ucyB0aGF0IGhhdmUgWyJD
YWxsYmFjayJdIHBhcmFtZXRlcnMsIGJlY2F1c2UgdGhpcwogICAgICMgY29kZSBnZW5lcmF0b3Ig
ZG9lc24ndCBrbm93IGhvdyB0byBhdXRvLWdlbmVyYXRlIGNhbGxiYWNrcy4KKyAgICAjIFNraXAg
ZnVuY3Rpb25zIHRoYXQgaGF2ZSAiTWVkaWFRdWVyeUxpc3RMaXN0ZW5lciIgcGFyYW1ldGVycywg
YmVjYXVzZSB0aGlzCisgICAgIyBjb2RlIGdlbmVyYXRvciBkb2Vzbid0IGtub3cgaG93IHRvIGF1
dG8tZ2VuZXJhdGUgTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci4KICAgICBmb3JlYWNoIG15ICRwYXJh
bSAoQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9KSB7Ci0gICAgICAgIGlmICgkcGFyYW0tPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJDYWxsYmFjayJ9KSB7CisgICAgICAgIGlmICgkcGFyYW0tPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJDYWxsYmFjayJ9IHx8CisgICAgICAgICAgICAkcGFyYW0tPnR5cGUg
ZXEgIk1lZGlhUXVlcnlMaXN0TGlzdGVuZXIiKSB7CiAgICAgICAgICAgICByZXR1cm4gMTsKICAg
ICAgICAgfQogICAgIH0KQEAgLTYwMCw3ICs2MDMsOCBAQCBFT0YKICAgICBwdXNoKEB0eHRTZXRQ
cm9wcywgJHR4dFNldFByb3BzKTsKIAogICAgIGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQHJlYWRh
YmxlUHJvcGVydGllcykgewotICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBl
IG5lICJFdmVudExpc3RlbmVyIikgeworICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJl
LT50eXBlIG5lICJFdmVudExpc3RlbmVyIiAmJgorICAgICAgICAgICAgJGF0dHJpYnV0ZS0+c2ln
bmF0dXJlLT50eXBlIG5lICJNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIikgewogICAgICAgICAgICAg
R2VuZXJhdGVQcm9wZXJ0eSgkYXR0cmlidXRlLCAkaW50ZXJmYWNlTmFtZSwgXEB3cml0ZWFibGVQ
cm9wZXJ0aWVzKTsKICAgICAgICAgfQogICAgIH0KQEAgLTc2Nyw2ICs3NzEsNyBAQCBzdWIgZ2V0
SW5jbHVkZUhlYWRlciB7CiAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBzaG9y
dCI7CiAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJET01UaW1lU3RhbXAiOwogICAgIHJldHVy
biAiIiBpZiAkdHlwZSBlcSAiRXZlbnRMaXN0ZW5lciI7CisgICAgcmV0dXJuICIiIGlmICR0eXBl
IGVxICJNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIjsKICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEg
InVuc2lnbmVkIGNoYXIiOwogICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAiRE9NU3RyaW5nIjsK
ICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgImZsb2F0IjsKQEAgLTgwNiw2ICs4MTEsMTAgQEAg
c3ViIEdlbmVyYXRlRnVuY3Rpb24gewogCiAgICAgbXkgJGRlY2FtZWxpemUgPSBGaXhVcERlY2Ft
ZWxpemVkTmFtZShkZWNhbWVsaXplKCRpbnRlcmZhY2VOYW1lKSk7CiAKKyAgICBpZiAoJG9iamVj
dCBlcSAiTWVkaWFRdWVyeUxpc3RMaXN0ZW5lciIpIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KwogICAgIGlmIChTa2lwRnVuY3Rpb24oJGZ1bmN0aW9uLCAkZGVjYW1lbGl6ZSwgJHByZWZpeCkp
IHsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTgyNyw3ICs4MzYsNyBAQCBzdWIgR2VuZXJh
dGVGdW5jdGlvbiB7CiAKICAgICBmb3JlYWNoIG15ICRwYXJhbSAoQHskZnVuY3Rpb24tPnBhcmFt
ZXRlcnN9KSB7CiAgICAgICAgIG15ICRwYXJhbUlETFR5cGUgPSAkcGFyYW0tPnR5cGU7Ci0gICAg
ICAgIGlmICgkcGFyYW1JRExUeXBlIGVxICJFdmVudExpc3RlbmVyIikgeworICAgICAgICBpZiAo
JHBhcmFtSURMVHlwZSBlcSAiRXZlbnRMaXN0ZW5lciIgfHwgJHBhcmFtSURMVHlwZSBlcSAiTWVk
aWFRdWVyeUxpc3RMaXN0ZW5lciIpIHsKICAgICAgICAgICAgIHB1c2goQGhCb2R5LCAiXG4vKiBU
T0RPOiBldmVudCBmdW5jdGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CiAgICAgICAgICAg
ICBwdXNoKEBjQm9keSwgIlxuLyogVE9ETzogZXZlbnQgZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9
ICovXG5cbiIpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTA4MCw3ICsxMDg5LDkgQEAgc3Vi
IEdlbmVyYXRlRnVuY3Rpb25zIHsKIAogICAgIFRPUDoKICAgICBmb3JlYWNoIG15ICRhdHRyaWJ1
dGUgKEB7JGRhdGFOb2RlLT5hdHRyaWJ1dGVzfSkgewotICAgICAgICBpZiAoU2tpcEF0dHJpYnV0
ZSgkYXR0cmlidXRlKSB8fCAkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUgZXEgIkV2ZW50TGlz
dGVuZXIiKSB7CisgICAgICAgIGlmIChTa2lwQXR0cmlidXRlKCRhdHRyaWJ1dGUpIHx8CisgICAg
ICAgICAgICAkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUgZXEgIkV2ZW50TGlzdGVuZXIiIHx8
CisgICAgICAgICAgICAkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUgZXEgIk1lZGlhUXVlcnlM
aXN0TGlzdGVuZXIiKSB7CiAgICAgICAgICAgICBuZXh0IFRPUDsKICAgICAgICAgfQogICAgICAg
ICAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0gYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDFh
MTE0YTQuLjY0MDcyZTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG0KKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbQpAQCAtNiw2ICs2LDcgQEAKICMgQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4
LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMgQ29weXJpZ2h0
IChDKSAyMDA5IENhbWVyb24gTWNDb3JtYWNrIDxjYW1AbWNjLmlkLmF1PgogIyBDb3B5cmlnaHQg
KEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTAuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisjIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNp
ZGlhcnkoLWllcykKICMKICMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgogIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjgyLDYgKzI4MywxMCBAQCBzdWIgQWRk
SW5jbHVkZXNGb3JUeXBlCiAgICAgaWYgKCR0eXBlIGVxICJEb2N1bWVudCIpIHsKICAgICAgICAg
JGltcGxJbmNsdWRlc3siTm9kZUZpbHRlci5oIn0gPSAxOwogICAgIH0KKworICAgIGlmICgkdHlw
ZSBlcSAiTWVkaWFRdWVyeUxpc3RMaXN0ZW5lciIpIHsKKyAgICAgICAgJGltcGxJbmNsdWRlc3si
U2NyaXB0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oIn0gPSAxOworICAgIH0KIH0KIAogc3ViIEFk
ZEluY2x1ZGVzRm9yU1ZHQW5pbWF0ZWRUeXBlCkBAIC0yMzU5LDYgKzIzNjQsNyBAQCBteSAlbmF0
aXZlVHlwZSA9ICgKICAgICAidW5zaWduZWQgc2hvcnQiID0+ICJ1bnNpZ25lZCBzaG9ydCIsCiAg
ICAgImxvbmcgbG9uZyIgPT4gImxvbmcgbG9uZyIsCiAgICAgInVuc2lnbmVkIGxvbmcgbG9uZyIg
PT4gInVuc2lnbmVkIGxvbmcgbG9uZyIsCisgICAgIk1lZGlhUXVlcnlMaXN0TGlzdGVuZXIiID0+
ICJSZWZQdHI8U2NyaXB0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4iCiApOwogCiBzdWIgR2V0TmF0
aXZlVHlwZQpAQCAtMjQwNSw2ICsyNDExLDExIEBAIHN1YiBKU1ZhbHVlVG9OYXRpdmUKICAgICAg
ICAgcmV0dXJuICIkdmFsdWUiOwogICAgIH0KIAorICAgIGlmICgkdHlwZSBlcSAiTWVkaWFRdWVy
eUxpc3RMaXN0ZW5lciIpIHsKKyAgICAgICAgJGltcGxJbmNsdWRlc3siU2NyaXB0TWVkaWFRdWVy
eUxpc3RMaXN0ZW5lci5oIn0gPSAxOworICAgICAgICByZXR1cm4gIlNjcmlwdE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXI6OmNyZWF0ZSgiIC4gJHZhbHVlIC4iKSI7CisgICAgfQorCiAgICAgaWYgKCR0
eXBlIGVxICJTZXJpYWxpemVkU2NyaXB0VmFsdWUiIG9yICR0eXBlIGVxICJhbnkiKSB7CiAgICAg
ICAgICRpbXBsSW5jbHVkZXN7IlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIn0gPSAxOwogICAgICAg
ICByZXR1cm4gIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKGV4ZWMsICR2YWx1ZSkiOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbSBi
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KaW5kZXggZjc0ZjJi
MS4uNWM3MjEzZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JWOC5wbQorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4
LnBtCkBAIC02LDYgKzYsNyBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIs
IEluYy4KICMgQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAyMDA5IEdvb2dsZSBJbmMuCiAjIENv
cHlyaWdodCAoQykgMjAwOSBDYW1lcm9uIE1jQ29ybWFjayA8Y2FtQG1jYy5pZC5hdT4KKyMgQ29w
eXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgt
aWVzKQogIwogIyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCiAjIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yODY0LDYgKzI4NjUsOCBAQCBzdWIgR2V0TmF0aXZl
VHlwZQogCiAgICAgcmV0dXJuICJSZWZQdHI8JHt0eXBlfT4iIGlmIElzUmVmUHRyVHlwZSgkdHlw
ZSkgYW5kIG5vdCAkaXNQYXJhbWV0ZXI7CiAKKyAgICByZXR1cm4gIlJlZlB0cjxTY3JpcHRNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyPiIgaWYgJHR5cGUgZXEgIk1lZGlhUXVlcnlMaXN0TGlzdGVuZXIi
OworCiAgICAgIyBEZWZhdWx0LCBhc3N1bWUgbmF0aXZlIHR5cGUgaXMgYSBwb2ludGVyIHdpdGgg
c2FtZSB0eXBlIG5hbWUgYXMgaWRsIHR5cGUKICAgICByZXR1cm4gIiR7dHlwZX0qIjsKIH0KQEAg
LTI5NjAsNiArMjk2MywxMSBAQCBzdWIgSlNWYWx1ZVRvTmF0aXZlCiAgICAgICAgICRpbXBsSW5j
bHVkZXN7IkZsb2F0UmVjdC5oIn0gPSAxOwogICAgIH0KIAorICAgIGlmICgkdHlwZSBlcSAiTWVk
aWFRdWVyeUxpc3RMaXN0ZW5lciIpIHsKKyAgICAgICAgJGltcGxJbmNsdWRlc3siU2NyaXB0TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lci5oIn0gPSAxOworICAgICAgICByZXR1cm4gIlNjcmlwdE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXI6OmNyZWF0ZSgiIC4gJHZhbHVlIC4gIikiOworICAgIH0KKwogICAg
IGlmICgkdHlwZSBlcSAiU1ZHUG9pbnQiKSB7CiAgICAgICAgICRpbXBsSW5jbHVkZXN7IkZsb2F0
UG9pbnQuaCJ9ID0gMTsKICAgICB9CkBAIC0zMTA4LDcgKzMxMTYsOCBAQCBteSAlbm9uX3dyYXBw
ZXJfdHlwZXMgPSAoCiAgICAgJ05vZGVGaWx0ZXInID0+IDEsCiAgICAgJ0V2ZW50TGlzdGVuZXIn
ID0+IDEsCiAgICAgJ0lEQktleScgPT4gMSwKLSAgICAnRGF0ZScgPT4gMQorICAgICdEYXRlJyA9
PiAxLAorICAgICdNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyJyA9PiAxCiApOwogCiAKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0LmNwcCBiL1dlYkNvcmUvY3NzL01lZGlhUXVl
cnlMaXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYjVhNmZmCi0t
LSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3QuY3BwCkBAIC0wLDAg
KzEsOTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5k
L29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIk1lZGlhUXVlcnlMaXN0LmgiCisKKyNpbmNsdWRlICJNZWRpYUxpc3QuaCIKKyNpbmNs
dWRlICJNZWRpYVF1ZXJ5RXZhbHVhdG9yLmgiCisjaW5jbHVkZSAiTWVkaWFRdWVyeUxpc3RMaXN0
ZW5lci5oIgorI2luY2x1ZGUgIk1lZGlhUXVlcnlNYXRjaGVyLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdD4gTWVkaWFRdWVyeUxpc3Q6OmNyZWF0
ZShQYXNzUmVmUHRyPE1lZGlhUXVlcnlNYXRjaGVyPiB2ZWN0b3IsIFBhc3NSZWZQdHI8TWVkaWFM
aXN0PiBtZWRpYSwgYm9vbCBtYXRjaGVzKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgTWVk
aWFRdWVyeUxpc3QodmVjdG9yLCBtZWRpYSwgbWF0Y2hlcykpOworfQorCitNZWRpYVF1ZXJ5TGlz
dDo6TWVkaWFRdWVyeUxpc3QoUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TWF0Y2hlcj4gdmVjdG9yLCBQ
YXNzUmVmUHRyPE1lZGlhTGlzdD4gbWVkaWEsIGJvb2wgbWF0Y2hlcykKKyAgICA6IG1fbWF0Y2hl
cih2ZWN0b3IpCisgICAgLCBtX21lZGlhKG1lZGlhKQorICAgICwgbV9ldmFsUm91bmQobV9tYXRj
aGVyLT5ldmFsdWF0aW9uUm91bmQoKSkKKyAgICAsIG1fY2hhbmdlUm91bmQobV9ldmFsUm91bmQg
LSAxKSAvLyBtX2V2YWxSb3VuZCBhbmQgbV9jaGFuZ2VSb3VuZCBpbml0aWFsIHZhbHVlcyBtdXN0
IGJlIGRpZmZlcmVudAorICAgICwgbV9tYXRjaGVzKG1hdGNoZXMpCit7Cit9CisKK01lZGlhUXVl
cnlMaXN0Ojp+TWVkaWFRdWVyeUxpc3QoKQoreworfQorCitTdHJpbmcgTWVkaWFRdWVyeUxpc3Q6
Om1lZGlhKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9tZWRpYS0+bWVkaWFUZXh0KCk7Cit9CisK
K3ZvaWQgTWVkaWFRdWVyeUxpc3Q6OmFkZExpc3RlbmVyKFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxp
c3RMaXN0ZW5lcj4gbGlzdGVuZXIpCit7CisgICAgbV9tYXRjaGVyLT5hZGRMaXN0ZW5lcihsaXN0
ZW5lciwgdGhpcyk7Cit9CisKK3ZvaWQgTWVkaWFRdWVyeUxpc3Q6OnJlbW92ZUxpc3RlbmVyKFBh
c3NSZWZQdHI8TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4gbGlzdGVuZXIpCit7CisgICAgbV9tYXRj
aGVyLT5yZW1vdmVMaXN0ZW5lcihsaXN0ZW5lciwgdGhpcyk7Cit9CisKK3ZvaWQgTWVkaWFRdWVy
eUxpc3Q6OmV2YWx1YXRlKE1lZGlhUXVlcnlFdmFsdWF0b3IqIGV2YWx1YXRvciwgYm9vbCYgbm90
aWZpY2F0aW9uTmVlZGVkKQoreworICAgIGlmIChtX2V2YWxSb3VuZCAhPSBtX21hdGNoZXItPmV2
YWx1YXRpb25Sb3VuZCgpICYmIGV2YWx1YXRvcikKKyAgICAgICAgc2V0TWF0Y2hlcyhldmFsdWF0
b3ItPmV2YWwobV9tZWRpYS5nZXQoKSkpOworICAgIG5vdGlmaWNhdGlvbk5lZWRlZCA9IG1fY2hh
bmdlUm91bmQgPT0gbV9tYXRjaGVyLT5ldmFsdWF0aW9uUm91bmQoKTsKK30KKwordm9pZCBNZWRp
YVF1ZXJ5TGlzdDo6c2V0TWF0Y2hlcyhib29sIG5ld1ZhbHVlKQoreworICAgIG1fZXZhbFJvdW5k
ID0gbV9tYXRjaGVyLT5ldmFsdWF0aW9uUm91bmQoKTsKKworICAgIGlmIChuZXdWYWx1ZSA9PSBt
X21hdGNoZXMpCisgICAgICAgIHJldHVybjsKKworICAgIG1fbWF0Y2hlcyA9IG5ld1ZhbHVlOwor
ICAgIG1fY2hhbmdlUm91bmQgPSBtX2V2YWxSb3VuZDsKK30KKworYm9vbCBNZWRpYVF1ZXJ5TGlz
dDo6bWF0Y2hlcygpCit7CisgICAgaWYgKG1fZXZhbFJvdW5kICE9IG1fbWF0Y2hlci0+ZXZhbHVh
dGlvblJvdW5kKCkpCisgICAgICAgIHNldE1hdGNoZXMobV9tYXRjaGVyLT5ldmFsdWF0ZShtX21l
ZGlhLmdldCgpKSk7CisgICAgcmV0dXJuIG1fbWF0Y2hlczsKK30KKworfQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3QuaCBiL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGE3ZDJiMgotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0LmgKQEAgLTAsMCArMSw3MyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1
YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE1lZGlhUXVlcnlMaXN0X2gKKyNkZWZpbmUg
TWVkaWFRdWVyeUxpc3RfaAorCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBNZWRp
YUxpc3Q7CitjbGFzcyBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOworY2xhc3MgTWVkaWFRdWVyeUV2
YWx1YXRvcjsKK2NsYXNzIE1lZGlhUXVlcnlNYXRjaGVyOworCisvKgorICBNZWRpYVF1ZXJ5TGlz
dCBpbnRlcmZhY2UgaXMgc3BlY2lmaWVkIGF0IGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzc29t
LXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2UKKyAgVGhlIG9iamVjdHMgb2YgdGhp
cyBjbGFzcyBhcmUgcmV0dXJuZWQgYnkgd2luZG93Lm1hdGNoTWVkaWEuIFRoZXkgbWF5IGJlIHVz
ZWQgdG8KKyAgcmV0cmlldmUgdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIGdpdmVuIG1lZGlhIHF1
ZXJ5IGFuZCB0byBhZGQvcmVtb3ZlIGxpc3RlbmVycyB0aGF0CisgIHdpbGwgYmUgY2FsbGVkIHdo
ZW5ldmVyIHRoZSB2YWx1ZSBvZiB0aGUgcXVlcnkgY2hhbmdlcy4KKyovCitjbGFzcyBNZWRpYVF1
ZXJ5TGlzdCA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhUXVlcnlMaXN0PiB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3Q+IGNyZWF0ZShQYXNzUmVmUHRyPE1l
ZGlhUXVlcnlNYXRjaGVyPiwgUGFzc1JlZlB0cjxNZWRpYUxpc3Q+LCBib29sKTsKKyAgICB+TWVk
aWFRdWVyeUxpc3QoKTsKKworICAgIFN0cmluZyBtZWRpYSgpIGNvbnN0OworICAgIGJvb2wgbWF0
Y2hlcygpOworCisgICAgdm9pZCBhZGRMaXN0ZW5lcihQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0
TGlzdGVuZXI+KTsKKyAgICB2b2lkIHJlbW92ZUxpc3RlbmVyKFBhc3NSZWZQdHI8TWVkaWFRdWVy
eUxpc3RMaXN0ZW5lcj4pOworCisgICAgdm9pZCBldmFsdWF0ZShNZWRpYVF1ZXJ5RXZhbHVhdG9y
KiwgYm9vbCYgbm90aWZpY2F0aW9uTmVlZGVkKTsKKworcHJpdmF0ZToKKyAgICBNZWRpYVF1ZXJ5
TGlzdChQYXNzUmVmUHRyPE1lZGlhUXVlcnlNYXRjaGVyPiwgUGFzc1JlZlB0cjxNZWRpYUxpc3Q+
LCBib29sIG1hdGNoZXMpOworICAgIHZvaWQgc2V0TWF0Y2hlcyhib29sKTsKKworICAgIFJlZlB0
cjxNZWRpYVF1ZXJ5TWF0Y2hlcj4gbV9tYXRjaGVyOworICAgIFJlZlB0cjxNZWRpYUxpc3Q+IG1f
bWVkaWE7CisgICAgaW50IG1fZXZhbFJvdW5kOyAvLyBpbmRpY2F0ZXMgaWYgdGhlIHF1ZXJ5IGhh
cyBiZWVuIGV2YWx1YXRlZCBhZnRlciB0aGUgbGFzdCBzdHlsZSBzZWxlY3RvciBjaGFuZ2UuCisg
ICAgaW50IG1fY2hhbmdlUm91bmQ7IC8vIHVzZWQgdG8ga25vdyBpZiB0aGUgcXVlcnkgaGFzIGNo
YW5nZWQgaW4gdGhlIGxhc3Qgc3R5bGUgc2VsZWN0b3IgY2hhbmdlLgorICAgIGJvb2wgbV9tYXRj
aGVzOworfTsKKworfQorCisjZW5kaWYgLy8gTWVkaWFRdWVyeUxpc3RfaApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3QuaWRsIGIvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxp
c3QuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0MjRhNzkKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdC5pZGwKQEAgLTAsMCArMSwz
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3Ig
aXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgdmlldyB7CisgICAgaW50ZXJmYWNl
IE1lZGlhUXVlcnlMaXN0IHsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBt
ZWRpYTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gbWF0Y2hlczsKKyAgICAg
ICAgdm9pZCBhZGRMaXN0ZW5lcihpbiBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIGxpc3RlbmVyKTsK
KyAgICAgICAgdm9pZCByZW1vdmVMaXN0ZW5lcihpbiBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIGxp
c3RlbmVyKTsKKyAgICB9OworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxp
c3RMaXN0ZW5lci5oIGIvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZlOTdlYTQKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgKQEAgLTAsMCArMSw2MSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1
YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJfaAor
I2RlZmluZSBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyX2gKKworI2luY2x1ZGUgIlBsYXRmb3JtU3Ry
aW5nLmgiCisjaW5jbHVkZSAiU2NyaXB0U3RhdGUuaCIKKworI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTWVkaWFRdWVyeUxpc3Q7CisK
Ky8qCisgIFNlZSBodHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9jc3NvbS12aWV3LyN0aGUtbWVkaWFx
dWVyeWxpc3QtaW50ZXJmYWNlCisqLworY2xhc3MgTWVkaWFRdWVyeUxpc3RMaXN0ZW5lciA6IHB1
YmxpYyBSZWZDb3VudGVkPE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+IHsKK3B1YmxpYzoKKyAgICBl
bnVtIFR5cGUgeworICAgICAgICBTY3JpcHRNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyVHlwZQorICAg
IH07CisKKyAgICBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKFR5cGUgdHlwZSkgOiBtX3R5cGUodHlw
ZSkge30KKyAgICB2aXJ0dWFsIH5NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKCkge30KKworICAgIHZp
cnR1YWwgdm9pZCBxdWVyeUNoYW5nZWQoU2NyaXB0U3RhdGUqLCBNZWRpYVF1ZXJ5TGlzdCopID0g
MDsKKworICAgIHZpcnR1YWwgYm9vbCBpc0VxdWFsVG8oU2NyaXB0U3RhdGUqLCBjb25zdCBNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyKikgPSAwOworICAgIGludCB0eXBlKCkgY29uc3QgeyByZXR1cm4g
bV90eXBlOyB9CisKK3ByaXZhdGU6CisgICAgVHlwZSBtX3R5cGU7Cit9OworCit9CisKKyNlbmRp
ZiAvLyBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL01l
ZGlhUXVlcnlMaXN0TGlzdGVuZXIuaWRsIGIvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3RMaXN0
ZW5lci5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjBkZjVhMwotLS0g
L2Rldi9udWxsCisrKyBiL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaWRsCkBA
IC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIHZpZXcgeworICAg
IGludGVyZmFjZSBbCisgICAgICAgIE5vU3RhdGljVGFibGVzLAorICAgICAgICBPYmpDUHJvdG9j
b2wsCisgICAgICAgIFB1cmVJbnRlcmZhY2UsCisgICAgICAgIE9taXRDb25zdHJ1Y3RvcgorICAg
IF0gTWVkaWFRdWVyeUxpc3RMaXN0ZW5lciB7CisgICAgICAgIHZvaWQgcXVlcnlDaGFuZ2VkKGlu
IE1lZGlhUXVlcnlMaXN0IG1xbCk7CisgICAgfTsKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3Nz
L01lZGlhUXVlcnlNYXRjaGVyLmNwcCBiL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlNYXRjaGVyLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYmIxMDY0Ci0tLSAvZGV2L251
bGwKKysrIGIvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeU1hdGNoZXIuY3BwCkBAIC0wLDAgKzEsMTc4
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJNZWRpYVF1ZXJ5TWF0Y2hlci5oIgorCisjaW5jbHVkZSAiQ1NTU3R5bGVTZWxlY3Rvci5oIgor
I2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUgIkZy
YW1lVmlldy5oIgorI2luY2x1ZGUgIk1lZGlhTGlzdC5oIgorI2luY2x1ZGUgIk1lZGlhUXVlcnlF
dmFsdWF0b3IuaCIKKyNpbmNsdWRlICJNZWRpYVF1ZXJ5TGlzdC5oIgorI2luY2x1ZGUgIk1lZGlh
UXVlcnlMaXN0TGlzdGVuZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitNZWRpYVF1ZXJ5
TWF0Y2hlcjo6TGlzdGVuZXI6Okxpc3RlbmVyKFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lcj4gbGlzdGVuZXIsIFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3Q+IHF1ZXJ5KQorICAgIDog
bV9saXN0ZW5lcihsaXN0ZW5lcikKKyAgICAsIG1fcXVlcnkocXVlcnkpCit7Cit9CisKK01lZGlh
UXVlcnlNYXRjaGVyOjpMaXN0ZW5lcjo6fkxpc3RlbmVyKCkKK3sKK30KKwordm9pZCBNZWRpYVF1
ZXJ5TWF0Y2hlcjo6TGlzdGVuZXI6OmV2YWx1YXRlKFNjcmlwdFN0YXRlKiBzdGF0ZSwgTWVkaWFR
dWVyeUV2YWx1YXRvciogZXZhbHVhdG9yKQoreworICAgIGJvb2wgbm90aWZ5OworICAgIG1fcXVl
cnktPmV2YWx1YXRlKGV2YWx1YXRvciwgbm90aWZ5KTsKKyAgICBpZiAobm90aWZ5KQorICAgICAg
ICBtX2xpc3RlbmVyLT5xdWVyeUNoYW5nZWQoc3RhdGUsIG1fcXVlcnkuZ2V0KCkpOworfQorCitN
ZWRpYVF1ZXJ5TWF0Y2hlcjo6TWVkaWFRdWVyeU1hdGNoZXIoRG9jdW1lbnQqIGRvY3VtZW50KQor
ICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKKyAgICAsIG1fZXZhbHVhdGlvblJvdW5kKDApCisg
ICAgLCBtX3Rlcm1pbmF0ZWQoZmFsc2UpCit7Cit9CisKK01lZGlhUXVlcnlNYXRjaGVyOjp+TWVk
aWFRdWVyeU1hdGNoZXIoKQoreworICAgIGRlbGV0ZUFsbFZhbHVlcyhtX2xpc3RlbmVycyk7Cit9
CisKK3ZvaWQgTWVkaWFRdWVyeU1hdGNoZXI6OnRlcm1pbmF0ZSgpCit7CisgICAgbV90ZXJtaW5h
dGVkID0gdHJ1ZTsKKyAgICBkZWxldGVBbGxWYWx1ZXMobV9saXN0ZW5lcnMpOworICAgIG1fbGlz
dGVuZXJzLmNsZWFyKCk7CisgICAgbV9kb2N1bWVudCA9IDA7Cit9CisKK1N0cmluZyBNZWRpYVF1
ZXJ5TWF0Y2hlcjo6bWVkaWFUeXBlKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fZG9jdW1lbnQgfHwg
IW1fZG9jdW1lbnQtPmZyYW1lKCkgfHwgIW1fZG9jdW1lbnQtPmZyYW1lKCktPnZpZXcoKSkKKyAg
ICAgICAgcmV0dXJuIFN0cmluZygpOworCisgICAgcmV0dXJuIG1fZG9jdW1lbnQtPmZyYW1lKCkt
PnZpZXcoKS0+bWVkaWFUeXBlKCk7Cit9CisKK1Bhc3NPd25QdHI8TWVkaWFRdWVyeUV2YWx1YXRv
cj4gTWVkaWFRdWVyeU1hdGNoZXI6OnByZXBhcmVFdmFsdWF0b3IoKSBjb25zdAoreworICAgIGlm
ICghbV9kb2N1bWVudCB8fCAhbV9kb2N1bWVudC0+ZnJhbWUoKSkKKyAgICAgICAgcmV0dXJuIDA7
CisKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBtX2RvY3VtZW50LT5mcmFtZSgpLT5kb2N1bWVu
dCgpOworICAgIGlmICghZG9jdW1lbnQpCisgICAgICAgIHJldHVybiAwOworCisgICAgRWxlbWVu
dCogZG9jdW1lbnRFbGVtZW50ID0gZG9jdW1lbnQtPmRvY3VtZW50RWxlbWVudCgpOworICAgIGlm
ICghZG9jdW1lbnRFbGVtZW50KQorICAgICAgICByZXR1cm4gMDsKKworICAgIENTU1N0eWxlU2Vs
ZWN0b3IqIHN0eWxlU2VsZWN0b3IgPSBkb2N1bWVudC0+c3R5bGVTZWxlY3RvcigpOworICAgIGlm
ICghc3R5bGVTZWxlY3RvcikKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBSZWZQdHI8UmVuZGVy
U3R5bGU+IHJvb3RTdHlsZSA9IHN0eWxlU2VsZWN0b3ItPnN0eWxlRm9yRWxlbWVudChkb2N1bWVu
dEVsZW1lbnQsIDAgLypkZWZhdWx0UGFyZW50Ki8sIGZhbHNlIC8qYWxsb3dTaGFyaW5nKi8sIHRy
dWUgLypyZXNvbHZlRm9yUm9vdERlZmF1bHQqLyk7CisKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3
IE1lZGlhUXVlcnlFdmFsdWF0b3IobWVkaWFUeXBlKCksIG1fZG9jdW1lbnQtPmZyYW1lKCksIHJv
b3RTdHlsZS5nZXQoKSkpOworfQorCitib29sIE1lZGlhUXVlcnlNYXRjaGVyOjpldmFsdWF0ZShN
ZWRpYUxpc3QqIG1lZGlhKQoreworICAgIGlmICghbWVkaWEpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIE93blB0cjxNZWRpYVF1ZXJ5RXZhbHVhdG9yPiBldmFsdWF0b3IocHJlcGFyZUV2
YWx1YXRvcigpKTsKKyAgICByZXR1cm4gZXZhbHVhdG9yICYmIGV2YWx1YXRvci0+ZXZhbChtZWRp
YSk7Cit9CisKK1Bhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3Q+IE1lZGlhUXVlcnlNYXRjaGVyOjpt
YXRjaE1lZGlhKGNvbnN0IFN0cmluZyYgcXVlcnkpCit7CisgICAgaWYgKG1fdGVybWluYXRlZCkK
KyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBSZWZQdHI8TWVkaWFMaXN0PiBtZWRpYSA9IE1lZGlh
TGlzdDo6Y3JlYXRlKHF1ZXJ5LCBmYWxzZSk7CisgICAgcmV0dXJuIE1lZGlhUXVlcnlMaXN0Ojpj
cmVhdGUodGhpcywgbWVkaWEsIGV2YWx1YXRlKG1lZGlhLmdldCgpKSk7Cit9CisKK3ZvaWQgTWVk
aWFRdWVyeU1hdGNoZXI6OmFkZExpc3RlbmVyKFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lcj4gbGlzdGVuZXIsIFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3Q+IHF1ZXJ5KQoreworICAg
IGlmIChtX3Rlcm1pbmF0ZWQgfHwgIW1fZG9jdW1lbnQgfHwgIW1fZG9jdW1lbnQtPmZyYW1lKCkp
CisgICAgICAgIHJldHVybjsKKworICAgIFNjcmlwdFN0YXRlKiBleGVjID0gbWFpbldvcmxkU2Ny
aXB0U3RhdGUobV9kb2N1bWVudC0+ZnJhbWUoKSk7CisgICAgaWYgKCFleGVjKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fbGlzdGVuZXJzLnNpemUoKTsg
KytpKSB7CisgICAgICAgIGlmIChtX2xpc3RlbmVyc1tpXS0+bGlzdGVuZXIoKS0+aXNFcXVhbFRv
KGV4ZWMsIGxpc3RlbmVyLmdldCgpKSAmJiBtX2xpc3RlbmVyc1tpXS0+cXVlcnkoKSA9PSBxdWVy
eS5nZXQoKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX2xpc3RlbmVycy5h
cHBlbmQobmV3IExpc3RlbmVyKGxpc3RlbmVyLCBxdWVyeSkpOworfQorCit2b2lkIE1lZGlhUXVl
cnlNYXRjaGVyOjpyZW1vdmVMaXN0ZW5lcihQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXI+IGxpc3RlbmVyLCBQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0PiBxdWVyeSkKK3sKKyAgICBp
ZiAobV90ZXJtaW5hdGVkIHx8ICFtX2RvY3VtZW50IHx8ICFtX2RvY3VtZW50LT5mcmFtZSgpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBTY3JpcHRTdGF0ZSogZXhlYyA9IG1haW5Xb3JsZFNjcmlw
dFN0YXRlKG1fZG9jdW1lbnQtPmZyYW1lKCkpOworICAgIGlmICghZXhlYykKKyAgICAgICAgcmV0
dXJuOworCisgICAgZm9yIChpbnQgaSA9IG1fbGlzdGVuZXJzLnNpemUoKSAtIDE7IGkgPj0gMDsg
LS1pKSB7CisgICAgICAgIGlmIChtX2xpc3RlbmVyc1tpXS0+bGlzdGVuZXIoKS0+aXNFcXVhbFRv
KGV4ZWMsIGxpc3RlbmVyLmdldCgpKSAmJiBtX2xpc3RlbmVyc1tpXS0+cXVlcnkoKSA9PSBxdWVy
eS5nZXQoKSkgeworICAgICAgICAgICAgZGVsZXRlIG1fbGlzdGVuZXJzW2ldOworICAgICAgICAg
ICAgbV9saXN0ZW5lcnMucmVtb3ZlKGkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisgICAgfQorfQorCit2b2lkIE1lZGlhUXVlcnlNYXRjaGVyOjpldmFsdWF0ZSgpCit7CisgICAg
QVNTRVJUKCFtX3Rlcm1pbmF0ZWQpOworCisgICAgU2NyaXB0U3RhdGUqIGV4ZWMgPSBtYWluV29y
bGRTY3JpcHRTdGF0ZShtX2RvY3VtZW50LT5mcmFtZSgpKTsKKyAgICBpZiAoIWV4ZWMpCisgICAg
ICAgIHJldHVybjsKKworICAgICsrbV9ldmFsdWF0aW9uUm91bmQ7CisgICAgT3duUHRyPE1lZGlh
UXVlcnlFdmFsdWF0b3I+IGV2YWx1YXRvciA9IHByZXBhcmVFdmFsdWF0b3IoKTsKKyAgICBpZiAo
IWV2YWx1YXRvcikKKyAgICAgICAgcmV0dXJuOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBtX2xpc3RlbmVycy5zaXplKCk7ICsraSkKKyAgICAgICAgbV9saXN0ZW5lcnNbaV0tPmV2YWx1
YXRlKGV4ZWMsIGV2YWx1YXRvci5nZXQoKSk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
Y3NzL01lZGlhUXVlcnlNYXRjaGVyLmggYi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TWF0Y2hlci5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM5YmI1ZTIKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TWF0Y2hlci5oCkBAIC0wLDAgKzEsMTQ2IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMg
c3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTWVkaWFRdWVyeU1hdGNoZXJfaAorI2Rl
ZmluZSBNZWRpYVF1ZXJ5TWF0Y2hlcl9oCisKKyNpbmNsdWRlICJTY3JpcHRTdGF0ZS5oIgorCisj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgor
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEb2N1bWVudDsKK2NsYXNzIE1lZGlhTGlz
dDsKK2NsYXNzIE1lZGlhUXVlcnlMaXN0OworY2xhc3MgTWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjsK
K2NsYXNzIE1lZGlhUXVlcnlFdmFsdWF0b3I7CisKKy8qCisgIE1lZGlhUXVlcnlNYXRjaGVyIGNs
YXNzIGlzIHJlc3BvbnNpYmxlIGZvciBrZWVwaW5nIGEgdmVjdG9yIG9mIHBhaXJzCisgIE1lZGlh
UXVlcnlMaXN0IHggTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci4gSXQgaXMgcmVzcG9uc2libGUgZm9y
IGV2YWx1YXRpbmcgdGhlIHF1ZXJpZXMKKyAgd2hlbmV2ZXIgaXQgaXMgbmVlZGVkIGFuZCB0byBj
YWxsIHRoZSBsaXN0ZW5lcnMgaWYgdGhlIGNvcnJlc3BvbmRpbmcgcXVlcnkgaGFzIGNoYW5nZWQu
CisgIFRoZSBsaXN0ZW5lcnMgbXVzdCBiZSBjYWxsZWQgaW4gdGhlIHZlcnkgc2FtZSBvcmRlciBp
biB3aGljaCB0aGV5IGhhdmUgYmVlbiBhZGRlZC4KKworICBPYmplY3QgZGlhZ3JhbToKKworCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8CisgICAgIERvY3VtZW50IC0tLS0tLS0tPiAgTWVkaWFRdWVyeU1hdGNoZXIgLS0tLS0t
LS0tLS0tLS0tLS0tPiAgTGlzdGVuZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IF4gICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgICAgfAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICstLS0tLS0gIE1lZGlh
UXVlcnlMaXN0ICA8LS0tLS0tLS0tKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBKU01lZGlhUXVl
cnlMaXN0CisKKyAgKiBBbGwgYXJyb3dzIGluIHRoaXMgZGlhZ3JhbSwgZXhjZXB0IHRoZSBvbmUg
YmV0d2VlbiBNZWRpYVF1ZXJ5TWF0Y2hlciBhbmQgTGlzdGVuZXIsCisgICAgYXJlIFJlZlB0cjw+
LgorCisgIE9iamVjdHMgbGlmZWN5Y2xlOgorCisgIE5vIHJlZmVyZW5jZSB0byBNZWRpYVF1ZXJ5
TGlzdCBpbnN0YW5jZXMgaXMga2VwdCBieSBjbGFzcyBNZWRpYVF1ZXJ5TWF0Y2hlciBpdHNlbGYu
IFRoZSByZWFzb24KKyAgaXMgdGhhdCBpZiBNZWRpYVF1ZXJ5TGlzdDo6YWRkTGlzdGVuZXIgaXMg
bm90IGNhbGxlZCB0aGUgb25seSByZWZlcmVuY2UgdG8gdGhlIE1lZGlhUXVlcnlMaXN0CisgIG9i
amVjdCB3aWxsIGJlIGluIEphdmFzY3JpcHQgYW5kIGl0IHdpbGwgYmUgZGVzdHJveWVkIGFzIHNv
b24gYXMgdGhlIEpTIG9iamVjdCBpcyBnYXJiYWdlCisgIGNvbGxlY3RlZC4KKworICBDbGFzcyBN
ZWRpYVF1ZXJ5TGlzdCBkb2VzIG5vdCBrZWVwIGEgbGlzdCBvZiBNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyLiBJdCBjYWxscworICBNZWRpYVF1ZXJ5TWF0Y2hlcjo6YWRkTGlzdGVuZXIgZXZlcnkgdGlt
ZSBpdHMgYWRkTGlzdGVuZXIgbWV0aG9kIGlzIGNhbGxlZCwgcGFzc2luZyB0aGUKKyAgcmVjZWl2
ZWQgTWVkaWFRdWVyeUxpc3RMaXN0ZW5lciBvYmplY3QgYW5kIGl0c2VsZi4gTWVkaWFRdWVyeU1h
dGNoZXI6OmFkZExpc3RlbmVyIHdpbGwKKyAgdGhlbiBhcHBlbmQgYSBuZXcgTWVkaWFRdWVyeU1h
dGNoZXI6Okxpc3RlbmVyIHRvIGl0cyBpbnRlcm5hbCB2ZWN0b3IsIGlmIHRoZSBwYWlyCisgIE1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXIgeCBNZWRpYVF1ZXJ5TGlzdCBpcyBub3QgZHVwbGljYXRlZC4K
KworICBUaGlzIG5ldyBMaXN0ZW5lciBvYmplY3QgaGFzIGEgcmVmZXJlbmNlIHRvIHRoZSBNZWRp
YVF1ZXJ5TGlzdCBvYmplY3QsIHRoYXQgd2lsbCBrZWVwCisgIGl0IGFsaXZlIHRvIGJlIHBhc3Nl
ZCB0byB0aGUgY2FsbGJhY2suIElmIGFsbCBsaXN0ZW5lcnMgYXJlIHJlbW92ZWQgZnJvbSB0aGF0
CisgIE1lZGlhUXVlcnlMaXN0IG9iamVjdCwgYWxsIExpc3RlbmVyIGluc3RhbmNlcyBwb2ludGlu
ZyB0byB0aGF0IE1lZGlhUXVlcnlMaXN0IG9iamVjdCB3aWxsIGJlCisgIGRlc3Ryb3llZCBhbmQg
YWdhaW4gdGhlIG9ubHkgcmVmZXJlbmNlIHRvIHRoZSBxdWVyeSB3aWxsIGJlIGluIEpTLgorCisg
IEl0IG1heSBiZSB0aGF0IGEgTWVkaWFRdWVyeU1hdGNoZXIgaW5zdGFuY2UgaGFzIG9uZSBvciBt
b3JlIExpc3RlbmVyIGluc3RhbmNlcyBwb2ludGluZyB0byBhCisgIE1lZGlhUXVlcnlMaXN0IGFu
ZCB0aGlzIE1lZGlhUXVlcnlMaXN0IGhhcyBhIHJlZmVyZW5jZSB0byB0aGF0IHNhbWUgTWVkaWFR
dWVyeU1hdGNoZXIgaW5zdGFuY2UsCisgIHByZXZlbnRpbmcgdGhlbSBmcm9tIGJlZW4gZGVzdHJv
eWVkICh0aGUgY3ljbGUgaW4gdGhlIGRpYWdyYW0pLiBUaGF0IGlzIHdoeSB0aGUKKyAgTWVkaWFR
dWVyeU1hdGNoZXIgb2JqZWN0IGNhbm5vdCBiZSBvd25lZCBieSB0aGUgRG9jdW1lbnQgaW5zdGFu
Y2UgYW5kIGFuIHNwZWNpYWwgdGVybWluYXRpb24KKyAgaGFuZGxpbmcgaXMgcmVxdWlyZWQuCisK
KyAgTWV0aG9kIE1lZGlhUXVlcnlNYXRjaGVyOjp0ZXJtaW5hdGUsIGNhbGxlZCBieSBEb2N1bWVu
dCBqdXN0IGJlZm9yZSByZWxlYXNpbmcgdGhlCisgIE1lZGlhUXVlcnlNYXRjaGVyIHJlZmVyZW5j
ZSwgd2lsbCByZW1vdmUgYWxsIHJlZmVyZW5jZXMgdG8gTWVkaWFRdWVyeUxpc3Qgb2JqZWN0cyBp
bgorICBNZWRpYVF1ZXJ5TWF0Y2hlciBhbmQgd2lsbCBndWFyYW50ZWUgdGhhdCBubyBuZXcgb25l
IHdpbGwgYmUgY3JlYXRlZC4gVGhlIG9ubHkgcmVmZXJlbmNlcyB0bworICBNZWRpYVF1ZXJ5TGlz
dCBvYmplY3RzIHdpbGwgYmUgYWdhaW4gaW4gSlMuIEFsbCBNZWRpYVF1ZXJ5TGlzdCBvYmplY3Rz
IHdpbGwgYmUgZGVzdHJveWVkIGFzIHNvb24KKyAgYXMgdGhlaXIgY29ycmVzcG9uZGluZyBKUyBv
YmplY3RzIGdldCBnYXJiYWdlIGNvbGxlY3RlZCBhbmQgTWVkaWFRdWVyeU1hdGNoZXIgd2lsbCBk
aWUgYXMgc29vbgorICBhcyB0aGUgbGFzdCBNZWRpYVF1ZXJ5TGlzdCBvYmplY3QgZGllcy4KKyov
CitjbGFzcyBNZWRpYVF1ZXJ5TWF0Y2hlciA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhUXVlcnlN
YXRjaGVyPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFRdWVyeU1hdGNo
ZXI+IGNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZWRp
YVF1ZXJ5TWF0Y2hlcihkb2N1bWVudCkpOyB9CisgICAgfk1lZGlhUXVlcnlNYXRjaGVyKCk7Cisg
ICAgdm9pZCB0ZXJtaW5hdGUoKTsKKworICAgIHZvaWQgYWRkTGlzdGVuZXIoUGFzc1JlZlB0cjxN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyPiwgUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdD4pOworICAg
IHZvaWQgcmVtb3ZlTGlzdGVuZXIoUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyPiwg
UGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdD4pOworCisgICAgUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5
TGlzdD4gbWF0Y2hNZWRpYShjb25zdCBTdHJpbmcmKTsKKworICAgIGludCBldmFsdWF0aW9uUm91
bmQoKSBjb25zdCB7IHJldHVybiBtX2V2YWx1YXRpb25Sb3VuZDsgfQorICAgIHZvaWQgZXZhbHVh
dGUoKTsKKyAgICBib29sIGV2YWx1YXRlKE1lZGlhTGlzdCopOworCitwcml2YXRlOgorICAgIGNs
YXNzIExpc3RlbmVyIHsKKyAgICBwdWJsaWM6CisgICAgICAgIExpc3RlbmVyKFBhc3NSZWZQdHI8
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4sIFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3Q+KTsKKyAg
ICAgICAgfkxpc3RlbmVyKCk7CisKKyAgICAgICAgdm9pZCBldmFsdWF0ZShTY3JpcHRTdGF0ZSos
IE1lZGlhUXVlcnlFdmFsdWF0b3IqKTsKKworICAgICAgICBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
KiBsaXN0ZW5lcigpIHsgcmV0dXJuIG1fbGlzdGVuZXIuZ2V0KCk7IH0KKyAgICAgICAgTWVkaWFR
dWVyeUxpc3QqIHF1ZXJ5KCkgeyByZXR1cm4gbV9xdWVyeS5nZXQoKTsgfQorCisgICAgcHJpdmF0
ZToKKyAgICAgICAgUmVmUHRyPE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+IG1fbGlzdGVuZXI7Cisg
ICAgICAgIFJlZlB0cjxNZWRpYVF1ZXJ5TGlzdD4gbV9xdWVyeTsKKyAgICB9OworCisgICAgTWVk
aWFRdWVyeU1hdGNoZXIoRG9jdW1lbnQqKTsKKyAgICBQYXNzT3duUHRyPE1lZGlhUXVlcnlFdmFs
dWF0b3I+IHByZXBhcmVFdmFsdWF0b3IoKSBjb25zdDsKKyAgICBTdHJpbmcgbWVkaWFUeXBlKCkg
Y29uc3Q7CisKKyAgICBEb2N1bWVudCogbV9kb2N1bWVudDsKKyAgICBWZWN0b3I8TGlzdGVuZXIq
PiBtX2xpc3RlbmVyczsKKyAgICBpbnQgbV9ldmFsdWF0aW9uUm91bmQ7IC8vIHRoaXMgdmFsdWUg
aXMgaW5jcmVtZW50ZWQgYXQgc3R5bGUgc2VsZWN0b3IgY2hhbmdlcy4KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIGl0IGlzIHVzZWQgdG8gYXZvaWQgZXZhbHVhdGluZyBxdWVyaWVzIG1v
cmUgdGhlbiBvbmNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbmQgdG8gYXZvaWQg
bm90aWZpbmcgYSBjaGFuZ2UgbW9yZSB0aGVuIG9uY2UuCisgICAgYm9vbCBtX3Rlcm1pbmF0ZWQ7
Cit9OworCit9CisKKyNlbmRpZiAvLyBNZWRpYVF1ZXJ5TWF0Y2hlcl9oCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXgg
MTk0ZDRlMS4uOTA0OGM1NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisr
KyBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNiw2ICs2LDcgQEAKICAqIENvcHlyaWdo
dCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDkgVG9yY2ggTW9iaWxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLykK
ICAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMg
c3Vic2lkaWFyeSgtaWVzKQogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC05MSw2ICs5Miw4IEBACiAj
aW5jbHVkZSAiSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oIgogI2luY2x1ZGUgIktleWJvYXJkRXZl
bnQuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTWVkaWFRdWVyeUxpc3QuaCIK
KyNpbmNsdWRlICJNZWRpYVF1ZXJ5TWF0Y2hlci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VFdmVudC5o
IgogI2luY2x1ZGUgIk1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJNb3VzZUV2ZW50V2l0aEhpdFRl
c3RSZXN1bHRzLmgiCkBAIC01NjUsNiArNTY4LDE2IEBAIERvY3VtZW50Ojp+RG9jdW1lbnQoKQog
ICAgICAgICBtX3N0eWxlU2hlZXRzLT5kb2N1bWVudERlc3Ryb3llZCgpOwogCiAgICAgbV93ZWFr
UmVmZXJlbmNlLT5jbGVhcigpOworCisgICAgaWYgKG1fbWVkaWFRdWVyeU1hdGNoZXIpCisgICAg
ICAgIG1fbWVkaWFRdWVyeU1hdGNoZXItPnRlcm1pbmF0ZSgpOworfQorCitQYXNzUmVmUHRyPE1l
ZGlhUXVlcnlMaXN0PiBEb2N1bWVudDo6bWF0Y2hNZWRpYShjb25zdCBTdHJpbmcmIG1lZGlhKQor
eworICAgIGlmICghbV9tZWRpYVF1ZXJ5TWF0Y2hlcikKKyAgICAgICAgbV9tZWRpYVF1ZXJ5TWF0
Y2hlciA9IE1lZGlhUXVlcnlNYXRjaGVyOjpjcmVhdGUodGhpcyk7CisgICAgcmV0dXJuIG1fbWVk
aWFRdWVyeU1hdGNoZXItPm1hdGNoTWVkaWEobWVkaWEpOwogfQogCiAjaWYgVVNFKEpTQykKQEAg
LTI4MjcsNiArMjg0MCw5IEBAIHZvaWQgRG9jdW1lbnQ6OnN0eWxlU2VsZWN0b3JDaGFuZ2VkKFN0
eWxlU2VsZWN0b3JVcGRhdGVGbGFnIHVwZGF0ZUZsYWcpCiAgICAgICAgIGlmICh2aWV3KCkpCiAg
ICAgICAgICAgICB2aWV3KCktPnNjaGVkdWxlUmVsYXlvdXQoKTsKICAgICB9CisKKyAgICBpZiAo
bV9tZWRpYVF1ZXJ5TWF0Y2hlcikKKyAgICAgICAgbV9tZWRpYVF1ZXJ5TWF0Y2hlci0+ZXZhbHVh
dGUoKTsKIH0KIAogdm9pZCBEb2N1bWVudDo6YWRkU3R5bGVTaGVldENhbmRpZGF0ZU5vZGUoTm9k
ZSogbm9kZSwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA0MmQyNzA2Li5iZGM2OTY3
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmgKQEAgLTUsNiArNSw3IEBACiAgKiAgICAgICAgICAgKEMpIDIwMDYgQWxleGV5IFBy
b3NrdXJ5YWtvdiAoYXBAd2Via2l0Lm9yZykKICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwg
MjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDkgVG9yY2ggTW9iaWxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLykKKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykK
ICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtOTIsNiArOTMsOCBAQCBjbGFzcyBJbnRQb2ludDsKIGNs
YXNzIERPTVdyYXBwZXJXb3JsZDsKIGNsYXNzIEpTTm9kZTsKIGNsYXNzIE1lZGlhQ2FuU3RhcnRM
aXN0ZW5lcjsKK2NsYXNzIE1lZGlhUXVlcnlMaXN0OworY2xhc3MgTWVkaWFRdWVyeU1hdGNoZXI7
CiBjbGFzcyBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzOwogY2xhc3MgTm9kZUZpbHRlcjsK
IGNsYXNzIE5vZGVJdGVyYXRvcjsKQEAgLTE5Niw2ICsxOTksOCBAQCBwdWJsaWM6CiAgICAgfQog
ICAgIHZpcnR1YWwgfkRvY3VtZW50KCk7CiAKKyAgICBQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0
PiBtYXRjaE1lZGlhKGNvbnN0IFN0cmluZyYpOworCiAgICAgdXNpbmcgQ29udGFpbmVyTm9kZTo6
cmVmOwogICAgIHVzaW5nIENvbnRhaW5lck5vZGU6OmRlcmVmOwogCkBAIC0xMzEyLDYgKzEzMTcs
OCBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBpbnQgbV9sb2FkRXZlbnREZWxheUNvdW50Owor
CisgICAgUmVmUHRyPE1lZGlhUXVlcnlNYXRjaGVyPiBtX21lZGlhUXVlcnlNYXRjaGVyOwogfTsK
IAogaW5saW5lIGJvb2wgRG9jdW1lbnQ6Omhhc0VsZW1lbnRXaXRoSWQoQXRvbWljU3RyaW5nSW1w
bCogaWQpIGNvbnN0CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IGY1YmEyNWMuLjNlNjVhOTEgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywg
MjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTY0LDcgKzY1LDcgQEAKICNpbmNsdWRlICJJbnNw
ZWN0b3JUaW1lbGluZUFnZW50LmgiCiAjaW5jbHVkZSAiS1VSTC5oIgogI2luY2x1ZGUgIkxvY2F0
aW9uLmgiCi0jaW5jbHVkZSAiU3R5bGVNZWRpYS5oIgorI2luY2x1ZGUgIk1lZGlhUXVlcnlMaXN0
LmgiCiAjaW5jbHVkZSAiTWVzc2FnZUV2ZW50LmgiCiAjaW5jbHVkZSAiTmF2aWdhdG9yLmgiCiAj
aW5jbHVkZSAiTm90aWZpY2F0aW9uQ2VudGVyLmgiCkBAIC04MCw2ICs4MSw3IEBACiAjaW5jbHVk
ZSAiU3RvcmFnZS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VBcmVhLmgiCiAjaW5jbHVkZSAiU3RvcmFn
ZU5hbWVzcGFjZS5oIgorI2luY2x1ZGUgIlN0eWxlTWVkaWEuaCIKICNpbmNsdWRlICJTdWRkZW5U
ZXJtaW5hdGlvbi5oIgogI2luY2x1ZGUgIldlYktpdFBvaW50LmgiCiAjaW5jbHVkZSA8YWxnb3Jp
dGhtPgpAQCAtNDA3LDYgKzQwOSwxMSBAQCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBET01XaW5k
b3c6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdAogICAgIHJldHVybiBkb2N1bWVudCgp
OwogfQogCitQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0PiBET01XaW5kb3c6Om1hdGNoTWVkaWEo
Y29uc3QgU3RyaW5nJiBtZWRpYSkKK3sKKyAgICByZXR1cm4gZG9jdW1lbnQoKSA/IGRvY3VtZW50
KCktPm1hdGNoTWVkaWEobWVkaWEpIDogMDsKK30KKwogdm9pZCBET01XaW5kb3c6OmRpc2Nvbm5l
Y3RGcmFtZSgpCiB7CiAgICAgbV9mcmFtZSA9IDA7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmggYi9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKaW5kZXggMTQ3MDYyOC4uNmM1
NDFjZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCisrKyBiL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDYsIDIwMDcsIDIwMDkgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWll
cykKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjAsMTAgKzYxLDExIEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBJbnNwZWN0b3JUaW1lbGluZUFnZW50OwogICAg
IGNsYXNzIExvY2FsRmlsZVN5c3RlbTsKICAgICBjbGFzcyBMb2NhdGlvbjsKLSAgICBjbGFzcyBT
dHlsZU1lZGlhOworICAgIGNsYXNzIE1lZGlhUXVlcnlMaXN0OwogICAgIGNsYXNzIE5hdmlnYXRv
cjsKICAgICBjbGFzcyBOb2RlOwogICAgIGNsYXNzIE5vdGlmaWNhdGlvbkNlbnRlcjsKKyAgICBj
bGFzcyBTdHlsZU1lZGlhOwogCiAjaWYgRU5BQkxFKFdFQl9USU1JTkcpCiAgICAgY2xhc3MgUGVy
Zm9ybWFuY2U7CkBAIC05OSw2ICsxMDEsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAg
ICAgdm9pZCBjbGVhcigpOwogCisgICAgICAgIFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3Q+IG1h
dGNoTWVkaWEoY29uc3QgU3RyaW5nJik7CisKICNpZiBFTkFCTEUoT1JJRU5UQVRJT05fRVZFTlRT
KQogICAgICAgICAvLyBUaGlzIGlzIHRoZSBpbnRlcmZhY2Ugb3JpZW50YXRpb24gaW4gZGVncmVl
cy4gU29tZSBleGFtcGxlcyBhcmU6CiAgICAgICAgIC8vICAwIGlzIHN0cmFpZ2h0IHVwOyAtOTAg
aXMgd2hlbiB0aGUgZGV2aWNlIGlzIHJvdGF0ZWQgOTAgY2xvY2t3aXNlOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwgYi9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbApp
bmRleCA3MmNhMzZhLi42MTYyMDA1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93
LmlkbAorKysgYi9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbApAQCAtMTQxLDcgKzE0MSw4IEBA
IG1vZHVsZSB3aW5kb3cgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRG9jdW1lbnQgZG9j
dW1lbnQ7CiAKICAgICAgICAgLy8gQ1NTT00gVmlldyBNb2R1bGUKLSAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIFN0eWxlTWVkaWEgc3R5bGVNZWRpYTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIFN0eWxlTWVkaWEgc3R5bGVNZWRpYTsgLy8gZGVwcmVjYXRlZAorICAgICAgICBNZWRpYVF1
ZXJ5TGlzdCBtYXRjaE1lZGlhKGluIERPTVN0cmluZyBxdWVyeSk7CiAKICAgICAgICAgLy8gRE9N
IExldmVsIDIgU3R5bGUgSW50ZXJmYWNlCiAgICAgICAgIENTU1N0eWxlRGVjbGFyYXRpb24gZ2V0
Q29tcHV0ZWRTdHlsZShpbiBFbGVtZW50IGVsZW1lbnQsCi0tIAoxLjcuMi4yCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69310</attachid>
            <date>2010-09-29 21:52:46 -0700</date>
            <delta_ts>2010-10-19 15:59:47 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-Implement-CSSOM-View-matchMedia-interface.patch</filename>
            <type>text/plain</type>
            <size>89144</size>
            <attacher name="Luiz Agostini">luiz</attacher>
            
              <data encoding="base64">RnJvbSAyOWI0YTE3OTE1YWZhOWVjODU4ZTdmMTAxYzhkYTZlOTczNDVmODlmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWl6IEFnb3N0aW5pIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IFRodSwgMzAgU2VwIDIwMTAgMDE6MzQ6MjAgLTAzMDAKU3ViamVjdDogW1BB
VENIXSBJbXBsZW1lbnQgQ1NTT00gVmlldyBtYXRjaE1lZGlhIGludGVyZmFjZQogaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3MjA1CgpSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KCldlYkNvcmU6CgpOZXcgaW50ZXJmYWNlcyBtYXkgYmUgdXNlZCB0byBldmFsdWF0
ZSBtZWRpYSBxdWVyaWVzIGFuZCB0byBhc3NvY2lhdGUgbGlzdGVuZXJzCnRvIG1lZGlhIHF1ZXJp
ZXMuIFRob3NlIGxpc3RlbmVycyBhcmUgY2FsbGVkIHdoZW5ldmVyIHRoZSBhc3NvY2lhdGVkIHF1
ZXJ5IGNoYW5nZXMuClNwZWNpZmljYXRpb24gbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9kZXYudzMu
b3JnL2Nzc3dnL2Nzc29tLXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2UKCk5ldyBp
bnRlcmZhY2VzOgoKKiBjc3MvTWVkaWFRdWVyeUxpc3QuaWRsOiBBZGRlZC4KKiBjc3MvTWVkaWFR
dWVyeUxpc3RMaXN0ZW5lci5pZGw6IEFkZGVkLgoKKiBjc3MvTWVkaWFRdWVyeUxpc3QuY3BwOiBB
ZGRlZC4KKFdlYkNvcmU6Ok1lZGlhUXVlcnlMaXN0OjpjcmVhdGUpOgooV2ViQ29yZTo6TWVkaWFR
dWVyeUxpc3Q6Ok1lZGlhUXVlcnlMaXN0KToKKFdlYkNvcmU6Ok1lZGlhUXVlcnlMaXN0Ojp+TWVk
aWFRdWVyeUxpc3QpOgooV2ViQ29yZTo6TWVkaWFRdWVyeUxpc3Q6Om1lZGlhKToKKFdlYkNvcmU6
Ok1lZGlhUXVlcnlMaXN0OjphZGRMaXN0ZW5lcik6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdDo6
cmVtb3ZlTGlzdGVuZXIpOgooV2ViQ29yZTo6TWVkaWFRdWVyeUxpc3Q6OmV2YWx1YXRlKToKKFdl
YkNvcmU6Ok1lZGlhUXVlcnlMaXN0OjpzZXRNYXRjaGVzKToKKFdlYkNvcmU6Ok1lZGlhUXVlcnlM
aXN0OjptYXRjaGVzKToKKiBjc3MvTWVkaWFRdWVyeUxpc3QuaDogQWRkZWQuCgoqIGNzcy9NZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyLmNwcDogQWRkZWQuCihXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyOjpxdWVyeUNoYW5nZWQpOgooV2ViQ29yZTo6TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6
aXNFcXVhbFRvKToKKiBjc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oOiBBZGRlZC4KKFdlYkNv
cmU6Ok1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OmNyZWF0ZSk6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyOjpNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKToKClRvIGF2b2lkIGFkZGluZyBj
b2RlIHRvIGNsYXNzZXMgRE9NV2luZG93IGFuZCBEb2N1bWVudCBhIG5ldyBjbGFzcyBNZWRpYVF1
ZXJ5TWF0Y2hlciB3YXMKY3JlYXRlZC4KCiogY3NzL01lZGlhUXVlcnlNYXRjaGVyLmNwcDogQWRk
ZWQuCihXZWJDb3JlOjpNZWRpYVF1ZXJ5TWF0Y2hlcjo6TGlzdGVuZXI6Okxpc3RlbmVyKToKKFdl
YkNvcmU6Ok1lZGlhUXVlcnlNYXRjaGVyOjpMaXN0ZW5lcjo6fkxpc3RlbmVyKToKKFdlYkNvcmU6
Ok1lZGlhUXVlcnlNYXRjaGVyOjpMaXN0ZW5lcjo6ZXZhbHVhdGUpOgooV2ViQ29yZTo6TWVkaWFR
dWVyeU1hdGNoZXI6Ok1lZGlhUXVlcnlNYXRjaGVyKToKKFdlYkNvcmU6Ok1lZGlhUXVlcnlNYXRj
aGVyOjp+TWVkaWFRdWVyeU1hdGNoZXIpOgooV2ViQ29yZTo6TWVkaWFRdWVyeU1hdGNoZXI6OnRl
cm1pbmF0ZSk6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5TWF0Y2hlcjo6bWVkaWFUeXBlKToKKFdlYkNv
cmU6Ok1lZGlhUXVlcnlNYXRjaGVyOjpwcmVwYXJlRXZhbHVhdG9yKToKKFdlYkNvcmU6Ok1lZGlh
UXVlcnlNYXRjaGVyOjpldmFsdWF0ZSk6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5TWF0Y2hlcjo6bWF0
Y2hNZWRpYSk6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5TWF0Y2hlcjo6YWRkTGlzdGVuZXIpOgooV2Vi
Q29yZTo6TWVkaWFRdWVyeU1hdGNoZXI6OnJlbW92ZUxpc3RlbmVyKToKKiBjc3MvTWVkaWFRdWVy
eU1hdGNoZXIuaDogQWRkZWQuCihXZWJDb3JlOjpNZWRpYVF1ZXJ5TWF0Y2hlcjo6Y3JlYXRlKToK
KFdlYkNvcmU6Ok1lZGlhUXVlcnlNYXRjaGVyOjpldmFsdWF0aW9uUm91bmQpOgooV2ViQ29yZTo6
TWVkaWFRdWVyeU1hdGNoZXI6Okxpc3RlbmVyOjpsaXN0ZW5lcik6CihXZWJDb3JlOjpNZWRpYVF1
ZXJ5TWF0Y2hlcjo6TGlzdGVuZXI6OnF1ZXJ5KToKCkRvY3VtZW50IGFuZCBET01XaW5kb3cgaGF2
ZSBjaGFuZ2VkIHRvIHN1cHBvcnQgbmV3IGZlYXR1cmVzLiBET01XaW5kb3cgaXMgdGhlIGNsYXNz
IHRoYXQKcHVibGlzaGVzIG1ldGhvZHMgbWF0Y2hNZWRpYSBidXQgZm9yIHBhZ2UgY2FjaGUgdG8g
d29yayBwcm9wZXJseSAgdGhlIHJlZmVyZW5jZSB0byB0aGUKCiogZG9tL0RvY3VtZW50LmNwcDoK
KFdlYkNvcmU6OkRvY3VtZW50Ojp+RG9jdW1lbnQpOgooV2ViQ29yZTo6RG9jdW1lbnQ6Om1hdGNo
TWVkaWEpOgooV2ViQ29yZTo6RG9jdW1lbnQ6OnN0eWxlU2VsZWN0b3JDaGFuZ2VkKToKKiBkb20v
RG9jdW1lbnQuaDoKKiBwYWdlL0RPTVdpbmRvdy5jcHA6CihXZWJDb3JlOjpET01XaW5kb3c6Om1h
dGNoTWVkaWEpOgoqIHBhZ2UvRE9NV2luZG93Lmg6CiogcGFnZS9ET01XaW5kb3cuaWRsOgoKU29t
ZSBhZGp1c3RtZW50cyB0byBjb2RlIGdlbmVyYXRvcnM6CgoqIGJpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckdPYmplY3QucG06CiogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG06CiogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06CgpidWlsZCBzeXN0ZW06
CgoqIERlcml2ZWRTb3VyY2VzLm1ha2U6CiogR05VbWFrZWZpbGUuYW06CiogV2ViQ29yZS5neXBp
OgoqIFdlYkNvcmUucHJpOgoqIFdlYkNvcmUucHJvOgoqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qOgoqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKiBiaW5kaW5ncy9n
b2JqZWN0L0dOVW1ha2VmaWxlLmFtOgoKVGVzdHM6IGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlz
dC0wMS5odG1sCiAgICAgICBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDIuaHRtbAogICAg
ICAgZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAzLmh0bWwKICAgICAgIGZhc3QvbWVkaWEv
bWVkaWEtcXVlcnktbGlzdC0wNC5odG1sCgpMYXlvdXRUZXN0czoKCk5ldyBwcm9wZXJ0eSBtYXRj
aE1lZGlhIHdhcyBhZGRlZCB0byB3aW5kb3cuCgoqIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJv
cGVydGllcy1leHBlY3RlZC50eHQ6CiogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1k
ZXNjcmlwdG9ycy1leHBlY3RlZC50eHQ6Cgp3aW5kb3cubWF0Y2hNZWRpYSBhbmQgTWVkaWFRdWVy
eUxpc3QgdGVzdHMuCgoqIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMS1leHBlY3RlZC50
eHQ6IEFkZGVkLgoqIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMS5odG1sOiBBZGRlZC4K
ClRoZSBmb2xsb3dpbmcgdGVzdHMgZGVwZW5kIG9uIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRW
aWV3TW9kZU1lZGlhRmVhdHVyZSgpIHRvIHdvcmsuCkFzIGl0IGlzIG9ubHkgaW1wbGVtZW50ZWQg
YnkgUXQgYW5kIEd0ayB0aGUgdGVzdHMgbmVlZGVkIHRvIGJlIHNraXBwZWQgaW4gYWxsIG90aGVy
IHBsYXRmb3Jtcy4KCiogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAyLWV4cGVjdGVkLnR4
dDogQWRkZWQuCiogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAyLmh0bWw6IEFkZGVkLgoq
IGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMy1leHBlY3RlZC50eHQ6IEFkZGVkLgoqIGZh
c3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMy5odG1sOiBBZGRlZC4KKiBmYXN0L21lZGlhL21l
ZGlhLXF1ZXJ5LWxpc3QtMDQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKiBmYXN0L21lZGlhL21lZGlh
LXF1ZXJ5LWxpc3QtMDQuaHRtbDogQWRkZWQuCiogcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBl
Y3RhdGlvbnMudHh0OgoqIHBsYXRmb3JtL21hYy9Ta2lwcGVkOgoqIHBsYXRmb3JtL3dpbi9Ta2lw
cGVkOgotLS0KIExheW91dFRlc3RzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgICAzMCArKysrCiAuLi4vZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4
cGVjdGVkLnR4dCB8ICAgIDEgKwogLi4uL3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy1leHBl
Y3RlZC50eHQgICAgICAgfCAgICAxICsKIC4uLi9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3Qt
MDEtZXhwZWN0ZWQudHh0ICAgIHwgICAxNSArKwogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRp
YS1xdWVyeS1saXN0LTAxLmh0bWwgICAgfCAgIDUyICsrKysrKwogLi4uL2Zhc3QvbWVkaWEvbWVk
aWEtcXVlcnktbGlzdC0wMi1leHBlY3RlZC50eHQgICAgfCAgIDI1ICsrKwogTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAyLmh0bWwgICAgfCAgIDYxICsrKysrKysKIC4u
Li9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMtZXhwZWN0ZWQudHh0ICAgIHwgICA0MSAr
KysrKwogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAzLmh0bWwgICAg
fCAgIDcwICsrKysrKysrCiAuLi4vZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA0LWV4cGVj
dGVkLnR4dCAgICB8ICAgMjUgKysrCiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5
LWxpc3QtMDQuaHRtbCAgICB8ICAgNzUgKysrKysrKysKIC4uLi9wbGF0Zm9ybS9jaHJvbWl1bS90
ZXN0X2V4cGVjdGF0aW9ucy50eHQgICAgICAgIHwgICAgNSArLQogTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL1NraXBwZWQgICAgICAgICAgICAgICAgICAgfCAgICA1ICstCiBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vU2tpcHBlZCAgICAgICAgICAgICAgICAgICB8ICAgIDUgKy0KIFdlYkNvcmUv
Q2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA5MiArKysrKysr
KysrCiBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgICAgICAgICAgICAgICAgICAgICAgICB8
ICAgIDQgKy0KIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgICAxMCArLQogV2ViQ29yZS9XZWJDb3JlLmd5cGkgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgICA5ICstCiBXZWJDb3JlL1dlYkNvcmUucHJpICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgIDEgKwogV2ViQ29yZS9XZWJDb3JlLnBybyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAgICA4ICstCiBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qICAgICAgICAgICAgICB8ICAgODAgKysrKysrKysrCiBXZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiAgICAgICAgICB8ICAgMzYgKysrKwogV2ViQ29yZS9i
aW5kaW5ncy9nb2JqZWN0L0dOVW1ha2VmaWxlLmFtICAgICAgICAgICAgfCAgICAzICsKIFdlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbSAgIHwgICAxOSArKy0K
IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gICAgICAgIHwgICAx
MSArKwogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbSAgICAgICAg
fCAgIDExICstCiBXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdC5jcHAgICAgICAgICAgICAgICAg
ICAgICB8ICAgOTQgKysrKysrKysrKwogV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3QuaCAgICAg
ICAgICAgICAgICAgICAgICAgfCAgIDczICsrKysrKysrCiBXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5
TGlzdC5pZGwgICAgICAgICAgICAgICAgICAgICB8ICAgMzMgKysrKwogV2ViQ29yZS9jc3MvTWVk
aWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgICAgICAgICAgICAgfCAgIDU1ICsrKysrKwogV2ViQ29y
ZS9jc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oICAgICAgICAgICAgICAgfCAgIDU5ICsrKysr
KysKIFdlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaWRsICAgICAgICAgICAgIHwg
ICAzNSArKysrCiBXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TWF0Y2hlci5jcHAgICAgICAgICAgICAg
ICAgICB8ICAxNzggKysrKysrKysrKysrKysrKysrKysKIFdlYkNvcmUvY3NzL01lZGlhUXVlcnlN
YXRjaGVyLmggICAgICAgICAgICAgICAgICAgIHwgIDE0NiArKysrKysrKysrKysrKysrCiBXZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTYgKysK
IFdlYkNvcmUvZG9tL0RvY3VtZW50LmggICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg
NyArCiBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAgIDkgKy0KIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuaCAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgICAgNiArLQogV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgICAzICstCiAzOSBmaWxlcyBjaGFuZ2VkLCAxMzk0IGluc2VydGlvbnMoKyks
IDE1IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvbWVk
aWEvbWVkaWEtcXVlcnktbGlzdC0wMS1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBM
YXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDEuaHRtbAogY3JlYXRlIG1v
ZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMi1leHBl
Y3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlh
LXF1ZXJ5LWxpc3QtMDIuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3Qv
bWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMy1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0
NCBMYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMuaHRtbAogY3JlYXRl
IG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNC1l
eHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L21lZGlhL21l
ZGlhLXF1ZXJ5LWxpc3QtMDQuaHRtbAogbW9kZSBjaGFuZ2UgMTAwNjQ0ID0+IDEwMDc1NSBXZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2Vi
Q29yZS9jc3MvTWVkaWFRdWVyeUxpc3QuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9j
c3MvTWVkaWFRdWVyeUxpc3QuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvY3NzL01lZGlh
UXVlcnlMaXN0LmlkbAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvY3NzL01lZGlhUXVlcnlM
aXN0TGlzdGVuZXIuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9jc3MvTWVkaWFRdWVy
eUxpc3RMaXN0ZW5lci5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9jc3MvTWVkaWFRdWVy
eUxpc3RMaXN0ZW5lci5pZGwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL2Nzcy9NZWRpYVF1
ZXJ5TWF0Y2hlci5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5
TWF0Y2hlci5oCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IDFhNzc1MjYuLmNmNzU0NWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBA
QAorMjAxMC0wOS0yOSAgTHVpeiBBZ29zdGluaSAgPGx1aXouYWdvc3RpbmlAb3BlbmJvc3NhLm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBs
ZW1lbnQgQ1NTT00gVmlldyBtYXRjaE1lZGlhIGludGVyZmFjZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzcyMDUKKworICAgICAgICBOZXcgcHJvcGVy
dHkgbWF0Y2hNZWRpYSB3YXMgYWRkZWQgdG8gd2luZG93LgorCisgICAgICAgICogZmFzdC9kb20v
V2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Rv
bS9XaW5kb3cvd2luZG93LXByb3BlcnR5LWRlc2NyaXB0b3JzLWV4cGVjdGVkLnR4dDoKKworICAg
ICAgICB3aW5kb3cubWF0Y2hNZWRpYSBhbmQgTWVkaWFRdWVyeUxpc3QgdGVzdHMuCisKKyAgICAg
ICAgKiBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDEtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDEuaHRtbDogQWRkZWQuCisK
KyAgICAgICAgVGhlIGZvbGxvd2luZyB0ZXN0cyBkZXBlbmQgb24gTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCkgdG8gd29yay4KKyAgICAgICAgQXMgaXQgaXMg
b25seSBpbXBsZW1lbnRlZCBieSBRdCBhbmQgR3RrIHRoZSB0ZXN0cyBuZWVkZWQgdG8gYmUgc2tp
cHBlZCBpbiBhbGwgb3RoZXIgcGxhdGZvcm1zLgorCisgICAgICAgICogZmFzdC9tZWRpYS9tZWRp
YS1xdWVyeS1saXN0LTAyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRp
YS9tZWRpYS1xdWVyeS1saXN0LTAyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWEv
bWVkaWEtcXVlcnktbGlzdC0wMy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
bWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21l
ZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDQuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0OgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9Ta2lwcGVkOgorCiAyMDEwLTA5
LTI5ICBNT1JJVEEgSGFqaW1lIDxtb3JyaXRhQGdvb2dsZS5jb20+CiAKICAgICAgICAgVW5yZXZp
ZXdlZCwgdXBkYXRlZCB0ZXN0X2V4cGVjdGF0aW9ucy50eHQKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0Cmlu
ZGV4IGNjMWQwYmUuLjYzNzExNGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dp
bmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dApAQCAtMjI0NSw2ICsy
MjQ1LDcgQEAgd2luZG93LmxvY2F0aW9uYmFyLnZpc2libGUgW2Jvb2xlYW5dCiB3aW5kb3cubG9n
IFtmdW5jdGlvbl0KIHdpbmRvdy5sb2dQcm9wZXJ0aWVzIFtmdW5jdGlvbl0KIHdpbmRvdy5sb2dW
YWx1ZSBbZnVuY3Rpb25dCit3aW5kb3cubWF0Y2hNZWRpYSBbZnVuY3Rpb25dCiB3aW5kb3cubWVu
dWJhciBbb2JqZWN0IEJhckluZm9dCiB3aW5kb3cubWVudWJhci52aXNpYmxlIFtib29sZWFuXQog
d2luZG93Lm1vdmVCeSBbZnVuY3Rpb25dCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9XaW5kb3cvd2luZG93LXByb3BlcnR5LWRlc2NyaXB0b3JzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMtZXhwZWN0
ZWQudHh0CmluZGV4IGY1ZTc2M2YuLmVjNjY4NmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRv
cnMtZXhwZWN0ZWQudHh0CkBAIC01MDYsNiArNTA2LDcgQEAgUEFTUyBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ2dldE1hdGNoZWRDU1NSdWxlcycpIGlzIHVuZGVmaW5l
ZC4KIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdnZXRTZWxl
Y3Rpb24nKSBpcyB1bmRlZmluZWQuCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3Iod2luZG93LCAnaGFzT3duUHJvcGVydHknKSBpcyB1bmRlZmluZWQuCiBQQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnaXNQcm90b3R5cGVPZicpIGlzIHVuZGVm
aW5lZC4KK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdtYXRj
aE1lZGlhJykgaXMgdW5kZWZpbmVkLgogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKHdpbmRvdywgJ21vdmVCeScpIGlzIHVuZGVmaW5lZC4KIFBBU1MgT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdtb3ZlVG8nKSBpcyB1bmRlZmluZWQuCiBQQVNTIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnb3BlbicpIGlzIHVuZGVmaW5l
ZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0w
MS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3Qt
MDEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRlYmEz
ZjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5
LWxpc3QtMDEtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKK1Rlc3QgdGhlIE1lZGlhUXVl
cnlMaXN0IGludGVyZmFjZTogaHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3Nzb20tdmlldy8jdGhl
LW1lZGlhcXVlcnlsaXN0LWludGVyZmFjZS4KKworInNjcmVlbiIgZXZhbHVhdGVzIHRvIHRydWU6
IFBBU1MKKyJwcm9qZWN0aW9uIiBldmFsdWF0ZXMgdG8gZmFsc2U6IFBBU1MKKyJhbGwgYW5kIChj
b2xvcikiIGV2YWx1YXRlcyB0byB0cnVlOiBQQVNTCisibm90IHByb2plY3Rpb24gYW5kIChjb2xv
cikiIGV2YWx1YXRlcyB0byB0cnVlOiBQQVNTCisiKGNvbG9yKSIgZXZhbHVhdGVzIHRvIHRydWU6
IFBBU1MKKyIoY29sb3IiIGV2YWx1YXRlcyB0byBmYWxzZTogUEFTUworImNvbG9yIiBldmFsdWF0
ZXMgdG8gZmFsc2U6IFBBU1MKKyJnYXJiYWdlIiBldmFsdWF0ZXMgdG8gZmFsc2U6IFBBU1MKKyIo
bWluLWRldmljZS13aWR0aDogMTAwcHgpIiBldmFsdWF0ZXMgdG8gdHJ1ZTogUEFTUworIihtaW4t
ZGV2aWNlLXdpZHRoOiA1MDAwMHB4KSIgZXZhbHVhdGVzIHRvIGZhbHNlOiBQQVNTCisiKC13ZWJr
aXQtYW5pbWF0aW9uOiAxKSIgZXZhbHVhdGVzIHRvIHRydWU6IFBBU1MKKyIoLXdlYmtpdC10cmFu
c2Zvcm0tMmQpIiBldmFsdWF0ZXMgdG8gdHJ1ZTogUEFTUworCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDEuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjMzZGNjNjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDEuaHRtbApAQCAtMCwwICsxLDUyIEBACis8aHRtbD4K
KzxoZWFkPgorPHRpdGxlPlRlc3QgQ1NTT00gVmlldyBtb2R1bGU6IE1lZGlhUXVlcnlMaXN0IGlu
dGVyZmFjZTwvdGl0bGU+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorCis8L3N0eWxlPgorPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5k
dW1wQXNUZXh0KCk7CisKKyAgICBmdW5jdGlvbiBsb2cobSkKKyAgICB7CisgICAgICAgIHZhciBy
ZXN1bHRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdHMnKTsKKyAgICAgICAgcmVz
dWx0cy5pbm5lckhUTUwgKz0gbSArICc8YnI+JzsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0
UXVlcnkocXVlcnksIGV4cGVjdGVkKQorICAgIHsKKyAgICAgICAgdmFyIGlzVHJ1ZSA9IHdpbmRv
dy5tYXRjaE1lZGlhKHF1ZXJ5KS5tYXRjaGVzOworICAgICAgICB2YXIgbWVzc2FnZSA9ICdcIicg
KyBxdWVyeSArICdcIiBldmFsdWF0ZXMgdG8gJyArIChpc1RydWUgPyAndHJ1ZScgOiAnZmFsc2Un
KTsKKyAgICAgICAgbWVzc2FnZSArPSAoaXNUcnVlID09IGV4cGVjdGVkKSA/ICc6IFBBU1MnIDog
JzogRkFJTCc7CisgICAgICAgIGxvZyhtZXNzYWdlKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBy
dW5UZXN0cygpCisgICAgeworICAgICAgICB0ZXN0UXVlcnkoJ3NjcmVlbicsIHRydWUpOworICAg
ICAgICB0ZXN0UXVlcnkoJ3Byb2plY3Rpb24nLCBmYWxzZSk7CisKKyAgICAgICAgdGVzdFF1ZXJ5
KCdhbGwgYW5kIChjb2xvciknLCB0cnVlKTsKKyAgICAgICAgdGVzdFF1ZXJ5KCdub3QgcHJvamVj
dGlvbiBhbmQgKGNvbG9yKScsIHRydWUpOworICAgICAgICB0ZXN0UXVlcnkoJyhjb2xvciknLCB0
cnVlKTsKKyAgICAgICAgdGVzdFF1ZXJ5KCcoY29sb3InLCBmYWxzZSk7CisgICAgICAgIHRlc3RR
dWVyeSgnY29sb3InLCBmYWxzZSk7CisKKyAgICAgICAgdGVzdFF1ZXJ5KCdnYXJiYWdlJywgZmFs
c2UpOworCisgICAgICAgIHRlc3RRdWVyeSgnKG1pbi1kZXZpY2Utd2lkdGg6IDEwMHB4KScsIHRy
dWUpOworICAgICAgICB0ZXN0UXVlcnkoJyhtaW4tZGV2aWNlLXdpZHRoOiA1MDAwMHB4KScsIGZh
bHNlKTsKKworICAgICAgICB0ZXN0UXVlcnkoJygtd2Via2l0LWFuaW1hdGlvbjogMSknLCB0cnVl
KTsKKyAgICAgICAgdGVzdFF1ZXJ5KCcoLXdlYmtpdC10cmFuc2Zvcm0tMmQpJywgdHJ1ZSk7Cisg
ICAgfQorCis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdHMoKSI+Cisg
ICAgPHA+VGVzdCB0aGUgTWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlOiA8YSBocmVmPSJodHRwOi8v
ZGV2LnczLm9yZy9jc3N3Zy9jc3NvbS12aWV3LyN0aGUtbWVkaWFxdWVyeWxpc3QtaW50ZXJmYWNl
IiB0aXRsZT0iQ1NTT00gVmlldyBNb2R1bGUiPmh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzc29t
LXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2U8L2E+LjwvcD4KKyAgICA8ZGl2IGlk
PSJyZXN1bHRzIj4KKyAgICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMi1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDItZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYzNjQzZDgKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDItZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMjUgQEAKK1Rlc3QgdGhlIE1lZGlhUXVlcnlMaXN0IGludGVyZmFjZTog
aHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3Nzb20tdmlldy8jdGhlLW1lZGlhcXVlcnlsaXN0LWlu
dGVyZmFjZS4KKworVGVzdGluZyBhZGRMaXN0ZW5lciBpbiBkaWZmZXJlbnQgTWVkaWFRdWVyeUxp
c3Qgb2JqZWN0cyBhbmQgdGhlIGNhbGxiYWNrIGNhbGwgc2VxdWVuY2UKKworLS0tLS0tLS0tLS0t
LSBtaW5pbWl6ZWQgLS0tLS0tLS0tLS0tLQorWzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2Rl
OiB3aW5kb3dlZCkgY2hhbmdlZCB0byBmYWxzZQorWzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1t
b2RlOiBtaW5pbWl6ZWQpIGNoYW5nZWQgdG8gdHJ1ZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmll
dy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0byBmYWxzZQorWzJdIC0gcXVlcnkgKC13ZWJraXQt
dmlldy1tb2RlOiBtaW5pbWl6ZWQpIGNoYW5nZWQgdG8gdHJ1ZQorLS0tLS0tLS0tLS0tLSBtYXhp
bWl6ZWQgLS0tLS0tLS0tLS0tLQorWzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtaW5p
bWl6ZWQpIGNoYW5nZWQgdG8gZmFsc2UKK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTog
bWF4aW1pemVkKSBjaGFuZ2VkIHRvIHRydWUKK1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9k
ZTogbWluaW1pemVkKSBjaGFuZ2VkIHRvIGZhbHNlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3
LW1vZGU6IG1heGltaXplZCkgY2hhbmdlZCB0byB0cnVlCistLS0tLS0tLS0tLS0tIHdpbmRvd2Vk
IC0tLS0tLS0tLS0tLS0KK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQp
IGNoYW5nZWQgdG8gdHJ1ZQorWzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtYXhpbWl6
ZWQpIGNoYW5nZWQgdG8gZmFsc2UKK1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2lu
ZG93ZWQpIGNoYW5nZWQgdG8gdHJ1ZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBt
YXhpbWl6ZWQpIGNoYW5nZWQgdG8gZmFsc2UKKy0tLS0tLS0tLS0tLS0gZmxvYXRpbmcgLS0tLS0t
LS0tLS0tLQorWzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdl
ZCB0byBmYWxzZQorWzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBmbG9hdGluZykgY2hh
bmdlZCB0byB0cnVlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBj
aGFuZ2VkIHRvIGZhbHNlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IGZsb2F0aW5n
KSBjaGFuZ2VkIHRvIHRydWUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9t
ZWRpYS1xdWVyeS1saXN0LTAyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1
ZXJ5LWxpc3QtMDIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZGVj
ZTQzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVy
eS1saXN0LTAyLmh0bWwKQEAgLTAsMCArMSw2MSBAQAorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5U
ZXN0IENTU09NIFZpZXcgbW9kdWxlOiBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U8L3RpdGxlPgor
PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKworPC9zdHlsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisg
ICAgZnVuY3Rpb24gbG9nKG0pIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jl
c3VsdHMnKS5pbm5lckhUTUwgKz0gbSArICc8YnI+JzsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBj
YWxsYmFjazEocXVlcnkpIHsKKyAgICAgICAgbG9nKCJbMV0gLSBxdWVyeSAiICsgcXVlcnkubWVk
aWEgKyAiIGNoYW5nZWQgdG8gIiArIChxdWVyeS5tYXRjaGVzID8gInRydWUiIDogImZhbHNlIikp
OworICAgIH0KKworICAgIGZ1bmN0aW9uIGNhbGxiYWNrMihxdWVyeSkgeworICAgICAgICBsb2co
IlsyXSAtIHF1ZXJ5ICIgKyBxdWVyeS5tZWRpYSArICIgY2hhbmdlZCB0byAiICsgKHF1ZXJ5Lm1h
dGNoZXMgPyAidHJ1ZSIgOiAiZmFsc2UiKSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVz
dHMoKQorICAgIHsKKyAgICAgICAgaWYgKCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisg
ICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgd2luZG93ZWRRdWVyeSA9IHdpbmRvdy5tYXRj
aE1lZGlhKCIoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSIpOworICAgICAgICBmbG9hdGlu
Z1F1ZXJ5ID0gd2luZG93Lm1hdGNoTWVkaWEoIigtd2Via2l0LXZpZXctbW9kZTogZmxvYXRpbmcp
Iik7CisgICAgICAgIG1pbmltaXplZFF1ZXJ5ID0gd2luZG93Lm1hdGNoTWVkaWEoIigtd2Via2l0
LXZpZXctbW9kZTogbWluaW1pemVkKSIpOworICAgICAgICBtYXhpbWl6ZWRRdWVyeSA9IHdpbmRv
dy5tYXRjaE1lZGlhKCIoLXdlYmtpdC12aWV3LW1vZGU6IG1heGltaXplZCkiKTsKKworICAgICAg
ICB3aW5kb3dlZFF1ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNrMSk7CisgICAgICAgIGZsb2F0aW5n
UXVlcnkuYWRkTGlzdGVuZXIoY2FsbGJhY2sxKTsKKyAgICAgICAgbWluaW1pemVkUXVlcnkuYWRk
TGlzdGVuZXIoY2FsbGJhY2sxKTsKKyAgICAgICAgbWF4aW1pemVkUXVlcnkuYWRkTGlzdGVuZXIo
Y2FsbGJhY2sxKTsKKworICAgICAgICB3aW5kb3dlZFF1ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNr
Mik7CisgICAgICAgIGZsb2F0aW5nUXVlcnkuYWRkTGlzdGVuZXIoY2FsbGJhY2syKTsKKyAgICAg
ICAgbWluaW1pemVkUXVlcnkuYWRkTGlzdGVuZXIoY2FsbGJhY2syKTsKKyAgICAgICAgbWF4aW1p
emVkUXVlcnkuYWRkTGlzdGVuZXIoY2FsbGJhY2syKTsKKworICAgICAgICBsb2coIi0tLS0tLS0t
LS0tLS0gbWluaW1pemVkIC0tLS0tLS0tLS0tLS0iKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoIm1pbmltaXplZCIpOworICAgICAgICBsb2co
Ii0tLS0tLS0tLS0tLS0gbWF4aW1pemVkIC0tLS0tLS0tLS0tLS0iKTsKKyAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoIm1heGltaXplZCIpOworICAg
ICAgICBsb2coIi0tLS0tLS0tLS0tLS0gd2luZG93ZWQgLS0tLS0tLS0tLS0tLSIpOworICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSgid2luZG93ZWQi
KTsKKyAgICAgICAgbG9nKCItLS0tLS0tLS0tLS0tIGZsb2F0aW5nIC0tLS0tLS0tLS0tLS0iKTsK
KyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoImZs
b2F0aW5nIik7CisgICAgfQorCis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVu
VGVzdHMoKSI+CisgICAgPHA+VGVzdCB0aGUgTWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlOiA8YSBo
cmVmPSJodHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9jc3NvbS12aWV3LyN0aGUtbWVkaWFxdWVyeWxp
c3QtaW50ZXJmYWNlIiB0aXRsZT0iQ1NTT00gVmlldyBNb2R1bGUiPmh0dHA6Ly9kZXYudzMub3Jn
L2Nzc3dnL2Nzc29tLXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2U8L2E+LjwvcD4K
KyAgICA8cD5UZXN0aW5nIGFkZExpc3RlbmVyIGluIGRpZmZlcmVudCBNZWRpYVF1ZXJ5TGlzdCBv
YmplY3RzIGFuZCB0aGUgY2FsbGJhY2sgY2FsbCBzZXF1ZW5jZTwvcD4KKyAgICA8ZGl2IGlkPSJy
ZXN1bHRzIj4KKyAgICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyNGUyMDYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNDEgQEAKK1Rlc3QgdGhlIE1lZGlhUXVlcnlMaXN0IGludGVyZmFjZTogaHR0
cDovL2Rldi53My5vcmcvY3Nzd2cvY3Nzb20tdmlldy8jdGhlLW1lZGlhcXVlcnlsaXN0LWludGVy
ZmFjZS4KKworVGVzdGluZyByZW1vdmVMaXN0ZW5lciBpbiBkaWZmZXJlbnQgTWVkaWFRdWVyeUxp
c3Qgb2JqZWN0cyBhbmQgdGhlIGNhbGxiYWNrIGNhbGwgc2VxdWVuY2UKKworYWRkaW5nIHdpbmRv
d2VkWzFdLCBtaW5pbWl6ZWRbMV0sIHdpbmRvd2VkWzJdIGFuZCBtaW5pbWl6ZWRbMl0KKworLS0t
LS0tLS0tLS0tLSBtaW5pbWl6ZWQgLS0tLS0tLS0tLS0tLQorWzFdIC0gcXVlcnkgKC13ZWJraXQt
dmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0byBmYWxzZQorWzFdIC0gcXVlcnkgKC13ZWJr
aXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQpIGNoYW5nZWQgdG8gdHJ1ZQorWzJdIC0gcXVlcnkgKC13
ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0byBmYWxzZQorWzJdIC0gcXVlcnkg
KC13ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQpIGNoYW5nZWQgdG8gdHJ1ZQorLS0tLS0tLS0t
LS0tLSB3aW5kb3dlZCAtLS0tLS0tLS0tLS0tCitbMV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1v
ZGU6IHdpbmRvd2VkKSBjaGFuZ2VkIHRvIHRydWUKK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXct
bW9kZTogbWluaW1pemVkKSBjaGFuZ2VkIHRvIGZhbHNlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12
aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFuZ2VkIHRvIHRydWUKK1syXSAtIHF1ZXJ5ICgtd2Via2l0
LXZpZXctbW9kZTogbWluaW1pemVkKSBjaGFuZ2VkIHRvIGZhbHNlCisKKworcmVtb3Zpbmcgd2lu
ZG93ZWRbMV0gYW5kIG1pbmltaXplZFsyXQorCistLS0tLS0tLS0tLS0tIG1pbmltaXplZCAtLS0t
LS0tLS0tLS0tCitbMV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCkgY2hh
bmdlZCB0byB0cnVlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBj
aGFuZ2VkIHRvIGZhbHNlCistLS0tLS0tLS0tLS0tIHdpbmRvd2VkIC0tLS0tLS0tLS0tLS0KK1sx
XSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSBjaGFuZ2VkIHRvIGZhbHNl
CitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFuZ2VkIHRvIHRy
dWUKKworCithZGRpbmcgd2luZG93ZWRbMV0gYW5kIG1pbmltaXplZFsyXQorCistLS0tLS0tLS0t
LS0tIG1pbmltaXplZCAtLS0tLS0tLS0tLS0tCitbMV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1v
ZGU6IG1pbmltaXplZCkgY2hhbmdlZCB0byB0cnVlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3
LW1vZGU6IHdpbmRvd2VkKSBjaGFuZ2VkIHRvIGZhbHNlCitbMV0gLSBxdWVyeSAoLXdlYmtpdC12
aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFuZ2VkIHRvIGZhbHNlCitbMl0gLSBxdWVyeSAoLXdlYmtp
dC12aWV3LW1vZGU6IG1pbmltaXplZCkgY2hhbmdlZCB0byB0cnVlCistLS0tLS0tLS0tLS0tIHdp
bmRvd2VkIC0tLS0tLS0tLS0tLS0KK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWlu
aW1pemVkKSBjaGFuZ2VkIHRvIGZhbHNlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6
IHdpbmRvd2VkKSBjaGFuZ2VkIHRvIHRydWUKK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9k
ZTogd2luZG93ZWQpIGNoYW5nZWQgdG8gdHJ1ZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1t
b2RlOiBtaW5pbWl6ZWQpIGNoYW5nZWQgdG8gZmFsc2UKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5iMmQ0MDhkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAzLmh0bWwKQEAgLTAsMCArMSw3MCBAQAorPGh0bWw+Cis8
aGVhZD4KKzx0aXRsZT5UZXN0IENTU09NIFZpZXcgbW9kdWxlOiBNZWRpYVF1ZXJ5TGlzdCBpbnRl
cmZhY2U8L3RpdGxlPgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKworPC9zdHlsZT4KKzxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CisgICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOworCisgICAgZnVuY3Rpb24gbG9nKG0pIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3Jlc3VsdHMnKS5pbm5lckhUTUwgKz0gbSArICc8YnI+JzsKKyAgICB9CisK
KyAgICBmdW5jdGlvbiBjYWxsYmFjazEocXVlcnkpIHsKKyAgICAgICAgbG9nKCJbMV0gLSBxdWVy
eSAiICsgcXVlcnkubWVkaWEgKyAiIGNoYW5nZWQgdG8gIiArIChxdWVyeS5tYXRjaGVzID8gInRy
dWUiIDogImZhbHNlIikpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNhbGxiYWNrMihxdWVyeSkg
eworICAgICAgICBsb2coIlsyXSAtIHF1ZXJ5ICIgKyBxdWVyeS5tZWRpYSArICIgY2hhbmdlZCB0
byAiICsgKHF1ZXJ5Lm1hdGNoZXMgPyAidHJ1ZSIgOiAiZmFsc2UiKSk7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gcnVuVGVzdHMoKQorICAgIHsKKyAgICAgICAgaWYgKCF3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgd2luZG93ZWRRdWVy
eSA9IHdpbmRvdy5tYXRjaE1lZGlhKCIoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSIpOwor
ICAgICAgICBtaW5pbWl6ZWRRdWVyeSA9IHdpbmRvdy5tYXRjaE1lZGlhKCIoLXdlYmtpdC12aWV3
LW1vZGU6IG1pbmltaXplZCkiKTsKKworICAgICAgICBsb2coImFkZGluZyB3aW5kb3dlZFsxXSwg
bWluaW1pemVkWzFdLCB3aW5kb3dlZFsyXSBhbmQgbWluaW1pemVkWzJdPGJyPiIpOworICAgICAg
ICB3aW5kb3dlZFF1ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNrMSk7CisgICAgICAgIG1pbmltaXpl
ZFF1ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNrMSk7CisgICAgICAgIHdpbmRvd2VkUXVlcnkuYWRk
TGlzdGVuZXIoY2FsbGJhY2syKTsKKyAgICAgICAgbWluaW1pemVkUXVlcnkuYWRkTGlzdGVuZXIo
Y2FsbGJhY2syKTsKKworICAgICAgICBsb2coIi0tLS0tLS0tLS0tLS0gbWluaW1pemVkIC0tLS0t
LS0tLS0tLS0iKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Vmlld01vZGVNZWRp
YUZlYXR1cmUoIm1pbmltaXplZCIpOworICAgICAgICBsb2coIi0tLS0tLS0tLS0tLS0gd2luZG93
ZWQgLS0tLS0tLS0tLS0tLSIpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3
TW9kZU1lZGlhRmVhdHVyZSgid2luZG93ZWQiKTsKKworICAgICAgICBsb2coIjxicj48YnI+cmVt
b3Zpbmcgd2luZG93ZWRbMV0gYW5kIG1pbmltaXplZFsyXTxicj4iKTsKKyAgICAgICAgd2luZG93
ZWRRdWVyeS5yZW1vdmVMaXN0ZW5lcihjYWxsYmFjazEpOworICAgICAgICBtaW5pbWl6ZWRRdWVy
eS5yZW1vdmVMaXN0ZW5lcihjYWxsYmFjazIpOworCisgICAgICAgIGxvZygiLS0tLS0tLS0tLS0t
LSBtaW5pbWl6ZWQgLS0tLS0tLS0tLS0tLSIpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSgibWluaW1pemVkIik7CisgICAgICAgIGxvZygiLS0t
LS0tLS0tLS0tLSB3aW5kb3dlZCAtLS0tLS0tLS0tLS0tIik7CisgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCJ3aW5kb3dlZCIpOworCisgICAgICAg
IGxvZygiPGJyPjxicj5hZGRpbmcgd2luZG93ZWRbMV0gYW5kIG1pbmltaXplZFsyXTxicj4iKTsK
KyAgICAgICAgd2luZG93ZWRRdWVyeS5hZGRMaXN0ZW5lcihjYWxsYmFjazEpOworICAgICAgICBt
aW5pbWl6ZWRRdWVyeS5hZGRMaXN0ZW5lcihjYWxsYmFjazIpOworCisgICAgICAgIGxvZygiLS0t
LS0tLS0tLS0tLSBtaW5pbWl6ZWQgLS0tLS0tLS0tLS0tLSIpOworICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSgibWluaW1pemVkIik7CisgICAgICAg
IGxvZygiLS0tLS0tLS0tLS0tLSB3aW5kb3dlZCAtLS0tLS0tLS0tLS0tIik7CisgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCJ3aW5kb3dlZCIpOwor
CisgICAgfQorCis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdHMoKSI+
CisgICAgPHA+VGVzdCB0aGUgTWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlOiA8YSBocmVmPSJodHRw
Oi8vZGV2LnczLm9yZy9jc3N3Zy9jc3NvbS12aWV3LyN0aGUtbWVkaWFxdWVyeWxpc3QtaW50ZXJm
YWNlIiB0aXRsZT0iQ1NTT00gVmlldyBNb2R1bGUiPmh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nz
c29tLXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2U8L2E+LjwvcD4KKyAgICA8cD5U
ZXN0aW5nIHJlbW92ZUxpc3RlbmVyIGluIGRpZmZlcmVudCBNZWRpYVF1ZXJ5TGlzdCBvYmplY3Rz
IGFuZCB0aGUgY2FsbGJhY2sgY2FsbCBzZXF1ZW5jZTwvcD4KKyAgICA8ZGl2IGlkPSJyZXN1bHRz
Ij4KKyAgICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNhNmQwZGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDQtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMjUgQEAKK1Rlc3QgdGhlIE1lZGlhUXVlcnlMaXN0IGludGVyZmFjZTogaHR0cDovL2Rl
di53My5vcmcvY3Nzd2cvY3Nzb20tdmlldy8jdGhlLW1lZGlhcXVlcnlsaXN0LWludGVyZmFjZS4K
KworVGVzdGluZyBwYWdlIGNhY2hlCisKKy0tLS0tLS0tLS0tLS0gbWluaW1pemVkIC0tLS0tLS0t
LS0tLS0KK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQg
dG8gZmFsc2UKK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSBjaGFu
Z2VkIHRvIHRydWUKK1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNo
YW5nZWQgdG8gZmFsc2UKK1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVk
KSBjaGFuZ2VkIHRvIHRydWUKKy0tLS0tLS0tLS0tLS0gbWF4aW1pemVkIC0tLS0tLS0tLS0tLS0K
K1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSBjaGFuZ2VkIHRvIGZh
bHNlCitbMV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1heGltaXplZCkgY2hhbmdlZCB0
byB0cnVlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCkgY2hhbmdl
ZCB0byBmYWxzZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtYXhpbWl6ZWQpIGNo
YW5nZWQgdG8gdHJ1ZQorLS0tLS0tLS0tLS0tLSB3aW5kb3dlZCAtLS0tLS0tLS0tLS0tCitbMV0g
LSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFuZ2VkIHRvIHRydWUKK1sx
XSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWF4aW1pemVkKSBjaGFuZ2VkIHRvIGZhbHNl
CitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFuZ2VkIHRvIHRy
dWUKK1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWF4aW1pemVkKSBjaGFuZ2VkIHRv
IGZhbHNlCistLS0tLS0tLS0tLS0tIGZsb2F0aW5nIC0tLS0tLS0tLS0tLS0KK1sxXSAtIHF1ZXJ5
ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQgdG8gZmFsc2UKK1sxXSAtIHF1
ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogZmxvYXRpbmcpIGNoYW5nZWQgdG8gdHJ1ZQorWzJdIC0g
cXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0byBmYWxzZQorWzJd
IC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBmbG9hdGluZykgY2hhbmdlZCB0byB0cnVlCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA0Lmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTI3NjE4NAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNC5odG1sCkBAIC0w
LDAgKzEsNzUgQEAKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+VGVzdCBDU1NPTSBWaWV3IG1vZHVs
ZTogTWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CisKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKSB7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsK
KyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdFVzZXNQYWdlQ2Fj
aGVQcmVmZXJlbmNlS2V5IiwgMSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gbG9nKG0pIHsKKyAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdHMnKS5pbm5lckhUTUwgKz0gbSAr
ICc8YnI+JzsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjYWxsYmFjazEocXVlcnkpIHsKKyAgICAg
ICAgbG9nKCJbMV0gLSBxdWVyeSAiICsgcXVlcnkubWVkaWEgKyAiIGNoYW5nZWQgdG8gIiArIChx
dWVyeS5tYXRjaGVzID8gInRydWUiIDogImZhbHNlIikpOworICAgIH0KKworICAgIGZ1bmN0aW9u
IGNhbGxiYWNrMihxdWVyeSkgeworICAgICAgICBsb2coIlsyXSAtIHF1ZXJ5ICIgKyBxdWVyeS5t
ZWRpYSArICIgY2hhbmdlZCB0byAiICsgKHF1ZXJ5Lm1hdGNoZXMgPyAidHJ1ZSIgOiAiZmFsc2Ui
KSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcGFnZXNob3coZXZ0KQorICAgIHsKKyAgICAgICAg
aWYgKCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgaWYgKCFldnQucGVyc2lzdGVkKSB7CisgICAgICAgICAgICAvLyB0aGlzIHdpbGwg
cnVuIG9ubHkgd2hlbiB0aGUgcGFnZSBpcyBsb2FkZWQgZm9yIHRoZSBmaXJzdCB0aW1lLgorCisg
ICAgICAgICAgICB3aW5kb3dlZFF1ZXJ5ID0gd2luZG93Lm1hdGNoTWVkaWEoIigtd2Via2l0LXZp
ZXctbW9kZTogd2luZG93ZWQpIik7CisgICAgICAgICAgICBmbG9hdGluZ1F1ZXJ5ID0gd2luZG93
Lm1hdGNoTWVkaWEoIigtd2Via2l0LXZpZXctbW9kZTogZmxvYXRpbmcpIik7CisgICAgICAgICAg
ICBtaW5pbWl6ZWRRdWVyeSA9IHdpbmRvdy5tYXRjaE1lZGlhKCIoLXdlYmtpdC12aWV3LW1vZGU6
IG1pbmltaXplZCkiKTsKKyAgICAgICAgICAgIG1heGltaXplZFF1ZXJ5ID0gd2luZG93Lm1hdGNo
TWVkaWEoIigtd2Via2l0LXZpZXctbW9kZTogbWF4aW1pemVkKSIpOworCisgICAgICAgICAgICB3
aW5kb3dlZFF1ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNrMSk7CisgICAgICAgICAgICBmbG9hdGlu
Z1F1ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNrMSk7CisgICAgICAgICAgICBtaW5pbWl6ZWRRdWVy
eS5hZGRMaXN0ZW5lcihjYWxsYmFjazEpOworICAgICAgICAgICAgbWF4aW1pemVkUXVlcnkuYWRk
TGlzdGVuZXIoY2FsbGJhY2sxKTsKKworICAgICAgICAgICAgd2luZG93ZWRRdWVyeS5hZGRMaXN0
ZW5lcihjYWxsYmFjazIpOworICAgICAgICAgICAgZmxvYXRpbmdRdWVyeS5hZGRMaXN0ZW5lcihj
YWxsYmFjazIpOworICAgICAgICAgICAgbWluaW1pemVkUXVlcnkuYWRkTGlzdGVuZXIoY2FsbGJh
Y2syKTsKKyAgICAgICAgICAgIG1heGltaXplZFF1ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNrMik7
CisKKyAgICAgICAgICAgIHNldFRpbWVvdXQoJ3dpbmRvdy5sb2NhdGlvbiA9ICJkYXRhOnRleHQv
aHRtbCw8c2NyaXB0Pmhpc3RvcnkuYmFjaygpPCIgKyAiL3NjcmlwdD4iJywgMCk7CisKKyAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIGlmIHRoaXMgcG9pbnQgaXMgcmVhY2hlZCB0aGUg
cGFnZSBpcyBjb21taW5nIGZyb20gdGhlIHBhZ2UgY2FjaGUuCisKKyAgICAgICAgICAgIGxvZygi
LS0tLS0tLS0tLS0tLSBtaW5pbWl6ZWQgLS0tLS0tLS0tLS0tLSIpOworICAgICAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoIm1pbmltaXplZCIpOwor
ICAgICAgICAgICAgbG9nKCItLS0tLS0tLS0tLS0tIG1heGltaXplZCAtLS0tLS0tLS0tLS0tIik7
CisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVy
ZSgibWF4aW1pemVkIik7CisgICAgICAgICAgICBsb2coIi0tLS0tLS0tLS0tLS0gd2luZG93ZWQg
LS0tLS0tLS0tLS0tLSIpOworICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Vmll
d01vZGVNZWRpYUZlYXR1cmUoIndpbmRvd2VkIik7CisgICAgICAgICAgICBsb2coIi0tLS0tLS0t
LS0tLS0gZmxvYXRpbmcgLS0tLS0tLS0tLS0tLSIpOworICAgICAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoImZsb2F0aW5nIik7CisKKyAgICAgICAg
ICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsgfSwgMCk7CisKKyAgICAgICAg
fQorICAgIH0KKworICAgIHdpbmRvdy5vbnBhZ2VzaG93ID0gcGFnZXNob3c7CisKKzwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+CisgICAgPHA+VGVzdCB0aGUgTWVkaWFRdWVyeUxpc3QgaW50ZXJm
YWNlOiA8YSBocmVmPSJodHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9jc3NvbS12aWV3LyN0aGUtbWVk
aWFxdWVyeWxpc3QtaW50ZXJmYWNlIiB0aXRsZT0iQ1NTT00gVmlldyBNb2R1bGUiPmh0dHA6Ly9k
ZXYudzMub3JnL2Nzc3dnL2Nzc29tLXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2U8
L2E+LjwvcD4KKyAgICA8cD5UZXN0aW5nIHBhZ2UgY2FjaGU8L3A+CisgICAgPGRpdiBpZD0icmVz
dWx0cyI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKaW5kZXggNGQyYjdhOS4uOWM4NzQ3
MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3Rh
dGlvbnMudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0
YXRpb25zLnR4dApAQCAtMjM5NCw4ICsyMzk0LDExIEBAIEJVRzM4NTc4IDogcGx1Z2lucy9vdmVy
cmlkZS1ub2RlLW1ldGhvZC5odG1sID0gVEVYVAogQlVHMzg2NTMgTUFDIDogZWRpdGluZy9zZWxl
Y3Rpb24vZmluZC15ZW5zaWduLWFuZC1iYWNrc2xhc2guaHRtbCA9IFRFWFQKIEJVRzM4NjU2IDog
ZmFzdC9tZWRpYS9wcmludC1yZXN0b3Jlcy1wcmV2aW91cy1tZWRpYXR5cGUuaHRtbCA9IFRFWFQK
IAotLy8gTmVlZHMgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUo
KSAoaW1wbGVtZW50ZWQgb24gUXQgb25seSkKKy8vIE5lZWRzIGxheW91dFRlc3RDb250cm9sbGVy
LnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCkKIEJVRzQwNjgwIFNLSVAgOiBmYXN0L21lZGlhL3Zp
ZXctbW9kZS1tZWRpYS1mZWF0dXJlLmh0bWwgPSBGQUlMCitCVUc0MDY4MCBTS0lQIDogZmFzdC9t
ZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAyLmh0bWwgPSBGQUlMCitCVUc0MDY4MCBTS0lQIDogZmFz
dC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAzLmh0bWwgPSBGQUlMCitCVUc0MDY4MCBTS0lQIDog
ZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA0Lmh0bWwgPSBGQUlMCiAKIC8vIFVua25vd24g
Zmxha2luZXNzLgogQlVHMzg3MDYgOiBzdmcvY3VzdG9tL2RlZXAtZHluYW1pYy11cGRhdGVzLnN2
ZyA9IElNQUdFK1RFWFQgSU1BR0UgUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAppbmRleCA5
YmFkYTVlLi5mMmRkODVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tp
cHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZApAQCAtMTQwLDggKzE0
MCwxMSBAQCBodHRwL3Rlc3RzL3BsdWdpbnMvcGx1Z2luLWRvY3VtZW50LWhhcy1mb2N1cy5odG1s
CiAjIE1pc3NlcyBzZXRNZWRpYVR5cGUoKSBhbmQgaW1wbGVtZW50YXRpb24KIGZhc3QvbWVkaWEv
cHJpbnQtcmVzdG9yZXMtcHJldmlvdXMtbWVkaWF0eXBlLmh0bWwKIAotIyB2aWV3IG1vZGUgbWVk
aWEgZmVhdHVyZQorIyBOZWVkcyBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9kZU1lZGlh
RmVhdHVyZSgpCiBmYXN0L21lZGlhL3ZpZXctbW9kZS1tZWRpYS1mZWF0dXJlLmh0bWwKK2Zhc3Qv
bWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMi5odG1sCitmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxp
c3QtMDMuaHRtbAorZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA0Lmh0bWwKIAogIyBUZXN0
IGlzIGZsYWt5IGFuZCB0aHVzIG5vdCB1c2VmdWwgdW50aWwgZml4ZWQuCiAjIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNjY0MgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBl
ZAppbmRleCBmNjFjMWFlLi4zZTBmZjAzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93aW4vU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApAQCAt
ODQzLDggKzg0MywxMSBAQCBmYXN0L2RvbS9IVE1MTWV0ZXJFbGVtZW50L21ldGVyLXBlcmNlbnQt
c2l6ZS5odG1sCiBmYXN0L2RvbS9IVE1MTWV0ZXJFbGVtZW50L21ldGVyLXN0eWxlcy5odG1sCiBm
YXN0L2RvbS9IVE1MTWV0ZXJFbGVtZW50L21ldGVyLXN0eWxlcy1jaGFuZ2luZy1wc2V1ZG8uaHRt
bAogCi0jIHZpZXcgbW9kZSBtZWRpYSBmZWF0dXJlCisjIE5lZWRzIGxheW91dFRlc3RDb250cm9s
bGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCkKIGZhc3QvbWVkaWEvdmlldy1tb2RlLW1lZGlh
LWZlYXR1cmUuaHRtbAorZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAyLmh0bWwKK2Zhc3Qv
bWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMy5odG1sCitmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxp
c3QtMDQuaHRtbAogCiAjIE5lZWQgZXhwZWN0YXRpb25zLiBTZWUgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTM2NDYxCiBmYXN0L3JlcGFpbnQvb3ZlcmZsb3ctc2Nyb2xs
LWJvZHktYXBwZWFyLmh0bWwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggYmU0ZDNiYS4uOTU3YzdiMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5NSBAQAorMjAxMC0w
OS0yOSAgTHVpeiBBZ29zdGluaSAgPGx1aXouYWdvc3RpbmlAb3BlbmJvc3NhLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgQ1NT
T00gVmlldyBtYXRjaE1lZGlhIGludGVyZmFjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzcyMDUKKworICAgICAgICBOZXcgaW50ZXJmYWNlcyBtYXkg
YmUgdXNlZCB0byBldmFsdWF0ZSBtZWRpYSBxdWVyaWVzIGFuZCB0byBhc3NvY2lhdGUgbGlzdGVu
ZXJzCisgICAgICAgIHRvIG1lZGlhIHF1ZXJpZXMuIFRob3NlIGxpc3RlbmVycyBhcmUgY2FsbGVk
IHdoZW5ldmVyIHRoZSBhc3NvY2lhdGVkIHF1ZXJ5IGNoYW5nZXMuCisgICAgICAgIFNwZWNpZmlj
YXRpb24gbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzc29tLXZpZXcv
I3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2UKKworICAgICAgICBOZXcgaW50ZXJmYWNlczoK
KworICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5TGlzdC5pZGw6IEFkZGVkLgorICAgICAgICAqIGNz
cy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmlkbDogQWRkZWQuCisKKyAgICAgICAgKiBjc3MvTWVk
aWFRdWVyeUxpc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlMaXN0
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeUxpc3Q6Ok1lZGlhUXVlcnlM
aXN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlMaXN0Ojp+TWVkaWFRdWVyeUxpc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeUxpc3Q6Om1lZGlhKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUXVlcnlMaXN0OjphZGRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVF1ZXJ5TGlzdDo6cmVtb3ZlTGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFR
dWVyeUxpc3Q6OmV2YWx1YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlMaXN0Ojpz
ZXRNYXRjaGVzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlMaXN0OjptYXRjaGVzKToK
KyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUxpc3QuaDogQWRkZWQuCisKKyAgICAgICAgKiBjc3Mv
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lcjo6cXVlcnlDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXI6OmlzRXF1YWxUbyk6CisgICAgICAgICogY3NzL01lZGlhUXVl
cnlMaXN0TGlzdGVuZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lcjo6TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcik6CisKKyAgICAgICAgVG8gYXZvaWQgYWRkaW5n
IGNvZGUgdG8gY2xhc3NlcyBET01XaW5kb3cgYW5kIERvY3VtZW50IGEgbmV3IGNsYXNzIE1lZGlh
UXVlcnlNYXRjaGVyIHdhcworICAgICAgICBjcmVhdGVkLgorCisgICAgICAgICogY3NzL01lZGlh
UXVlcnlNYXRjaGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5TWF0
Y2hlcjo6TGlzdGVuZXI6Okxpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlN
YXRjaGVyOjpMaXN0ZW5lcjo6fkxpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVl
cnlNYXRjaGVyOjpMaXN0ZW5lcjo6ZXZhbHVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFR
dWVyeU1hdGNoZXI6Ok1lZGlhUXVlcnlNYXRjaGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UXVlcnlNYXRjaGVyOjp+TWVkaWFRdWVyeU1hdGNoZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFRdWVyeU1hdGNoZXI6OnRlcm1pbmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5
TWF0Y2hlcjo6bWVkaWFUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlNYXRjaGVy
OjpwcmVwYXJlRXZhbHVhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlNYXRjaGVy
OjpldmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5TWF0Y2hlcjo6bWF0Y2hN
ZWRpYSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5TWF0Y2hlcjo6YWRkTGlzdGVuZXIp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeU1hdGNoZXI6OnJlbW92ZUxpc3RlbmVyKToK
KyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeU1hdGNoZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVF1ZXJ5TWF0Y2hlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UXVlcnlNYXRjaGVyOjpldmFsdWF0aW9uUm91bmQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFR
dWVyeU1hdGNoZXI6Okxpc3RlbmVyOjpsaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVF1ZXJ5TWF0Y2hlcjo6TGlzdGVuZXI6OnF1ZXJ5KToKKworICAgICAgICBEb2N1bWVudCBhbmQg
RE9NV2luZG93IGhhdmUgY2hhbmdlZCB0byBzdXBwb3J0IG5ldyBmZWF0dXJlcy4gRE9NV2luZG93
IGlzIHRoZSBjbGFzcyB0aGF0CisgICAgICAgIHB1Ymxpc2hlcyBtZXRob2RzIG1hdGNoTWVkaWEg
YnV0IGZvciBwYWdlIGNhY2hlIHRvIHdvcmsgcHJvcGVybHkgIHRoZSByZWZlcmVuY2UgdG8gdGhl
CisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnQ6On5Eb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6bWF0Y2hNZWRpYSk6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c3R5bGVTZWxlY3RvckNoYW5nZWQpOgorICAg
ICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6bWF0Y2hNZWRpYSk6CisgICAgICAgICogcGFnZS9E
T01XaW5kb3cuaDoKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5pZGw6CisKKyAgICAgICAgU29t
ZSBhZGp1c3RtZW50cyB0byBjb2RlIGdlbmVyYXRvcnM6CisKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvclY4LnBtOgorCisgICAgICAgIGJ1aWxkIHN5c3RlbToKKworICAgICAgICAqIERlcml2
ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2Vi
Q29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJpOgorICAgICAgICAqIFdlYkNvcmUucHJv
OgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9nb2Jq
ZWN0L0dOVW1ha2VmaWxlLmFtOgorCisgICAgICAgIFRlc3RzOiBmYXN0L21lZGlhL21lZGlhLXF1
ZXJ5LWxpc3QtMDEuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1s
aXN0LTAyLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0w
My5odG1sCisgICAgICAgICAgICAgICBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDQuaHRt
bAorCiAyMDEwLTA5LTI5ICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCmRpZmYgLS1naXQgYS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLm1ha2UgYi9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggMmZk
YTVlOS4uYmZiMTkzZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisr
KyBiL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMjYxLDYgKzI2MSw4IEBAIERPTV9D
TEFTU0VTID0gXAogICAgIExvY2F0aW9uIFwKICAgICBNZWRpYUVycm9yIFwKICAgICBNZWRpYUxp
c3QgXAorICAgIE1lZGlhUXVlcnlMaXN0IFwKKyAgICBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIFwK
ICAgICBNZW1vcnlJbmZvIFwKICAgICBNZXNzYWdlQ2hhbm5lbCBcCiAgICAgTWVzc2FnZUV2ZW50
IFwKQEAgLTQ5Nyw3ICs0OTksNyBAQCBET01fQ0xBU1NFUyA9IFwKIAogLlBIT05ZIDogYWxsCiAK
LUpTX0RPTV9IRUFERVJTPSQoZmlsdGVyLW91dCBKU0V2ZW50TGlzdGVuZXIuaCBKU0V2ZW50VGFy
Z2V0LmgsJChET01fQ0xBU1NFUzolPUpTJS5oKSkKK0pTX0RPTV9IRUFERVJTPSQoZmlsdGVyLW91
dCBKU01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCBKU0V2ZW50TGlzdGVuZXIuaCBKU0V2ZW50VGFy
Z2V0LmgsJChET01fQ0xBU1NFUzolPUpTJS5oKSkKIAogV0VCX0RPTV9IRUFERVJTIDo9CiBpZmVx
ICgkKGZpbmRzdHJpbmcgQlVJTERJTkdfV1gsJChGRUFUVVJFX0RFRklORVMpKSwgQlVJTERJTkdf
V1gpCmRpZmYgLS1naXQgYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5hbQppbmRleCBjODBlOGVkLi4zNzBhYmU0IDEwMDY0NAotLS0gYS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmFtCisrKyBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTQyMSw2ICs0MjEsOCBA
QCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNN
ZWRpYUVycm9yLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYUxpc3QuY3BwIFwK
IAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFMaXN0LmggXAorCURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNNZWRpYVF1ZXJ5TGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNNZWRpYVF1ZXJ5TGlzdC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVtb3J5SW5m
by5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZW1vcnlJbmZvLmggXAogCURlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZXNzYWdlQ2hhbm5lbC5jcHAgXApAQCAtOTkwLDExICs5OTIs
MTcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL2Nzcy9NZWRpYUxpc3QuY3BwIFwK
IAlXZWJDb3JlL2Nzcy9NZWRpYUxpc3QuaCBcCiAJV2ViQ29yZS9jc3MvTWVkaWFRdWVyeS5jcHAg
XAorCVdlYkNvcmUvY3NzL01lZGlhUXVlcnkuaCBcCiAJV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2
YWx1YXRvci5jcHAgXAogCVdlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuaCBcCiAJV2Vi
Q29yZS9jc3MvTWVkaWFRdWVyeUV4cC5jcHAgXAogCVdlYkNvcmUvY3NzL01lZGlhUXVlcnlFeHAu
aCBcCi0JV2ViQ29yZS9jc3MvTWVkaWFRdWVyeS5oIFwKKwlXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5
TGlzdC5jcHAgXAorCVdlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0LmggXAorCVdlYkNvcmUvY3Nz
L01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwIFwKKwlXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyLmggXAorCVdlYkNvcmUvY3NzL01lZGlhUXVlcnlNYXRjaGVyLmNwcCBcCisJV2Vi
Q29yZS9jc3MvTWVkaWFRdWVyeU1hdGNoZXIuaCBcCiAJV2ViQ29yZS9jc3MvUGFpci5oIFwKIAlX
ZWJDb3JlL2Nzcy9SZWN0LmggXAogCVdlYkNvcmUvY3NzL1JHQkNvbG9yLmNwcCBcCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDhl
NmFmNmIuLmJjMGYzYTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dl
YkNvcmUvV2ViQ29yZS5neXBpCkBAIC0xOSw2ICsxOSw3IEBACiAgICAgICAgICAgICAnY3NzL0NT
U1ZhcmlhYmxlc1J1bGUuaWRsJywKICAgICAgICAgICAgICdjc3MvQ291bnRlci5pZGwnLAogICAg
ICAgICAgICAgJ2Nzcy9NZWRpYUxpc3QuaWRsJywKKyAgICAgICAgICAgICdjc3MvTWVkaWFRdWVy
eUxpc3QuaWRsJywKICAgICAgICAgICAgICdjc3MvUmVjdC5pZGwnLAogICAgICAgICAgICAgJ2Nz
cy9SR0JDb2xvci5pZGwnLAogICAgICAgICAgICAgJ2Nzcy9TdHlsZU1lZGlhLmlkbCcsCkBAIC0x
MDYyLDExICsxMDYzLDE3IEBACiAgICAgICAgICAgICAnY3NzL01lZGlhTGlzdC5jcHAnLAogICAg
ICAgICAgICAgJ2Nzcy9NZWRpYUxpc3QuaCcsCiAgICAgICAgICAgICAnY3NzL01lZGlhUXVlcnku
Y3BwJywKKyAgICAgICAgICAgICdjc3MvTWVkaWFRdWVyeS5oJywKICAgICAgICAgICAgICdjc3Mv
TWVkaWFRdWVyeUV2YWx1YXRvci5jcHAnLAogICAgICAgICAgICAgJ2Nzcy9NZWRpYVF1ZXJ5RXZh
bHVhdG9yLmgnLAogICAgICAgICAgICAgJ2Nzcy9NZWRpYVF1ZXJ5RXhwLmNwcCcsCiAgICAgICAg
ICAgICAnY3NzL01lZGlhUXVlcnlFeHAuaCcsCi0gICAgICAgICAgICAnY3NzL01lZGlhUXVlcnku
aCcsCisgICAgICAgICAgICAnY3NzL01lZGlhUXVlcnlMaXN0LmNwcCcsCisgICAgICAgICAgICAn
Y3NzL01lZGlhUXVlcnlMaXN0LmgnLAorICAgICAgICAgICAgJ2Nzcy9NZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyLmNwcCcsCisgICAgICAgICAgICAnY3NzL01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCcs
CisgICAgICAgICAgICAnY3NzL01lZGlhUXVlcnlNYXRjaGVyLmNwcCcsCisgICAgICAgICAgICAn
Y3NzL01lZGlhUXVlcnlNYXRjaGVyLmgnLAogICAgICAgICAgICAgJ2Nzcy9QYWlyLmgnLAogICAg
ICAgICAgICAgJ2Nzcy9SZWN0LmgnLAogICAgICAgICAgICAgJ2Nzcy9SR0JDb2xvci5jcHAnLApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnByaSBiL1dlYkNvcmUvV2ViQ29yZS5wcmkKaW5k
ZXggMzMzMTYyNi4uNzcwY2FkYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnByaQorKysg
Yi9XZWJDb3JlL1dlYkNvcmUucHJpCkBAIC04Niw2ICs4Niw3IEBAIElETF9CSU5ESU5HUyArPSBc
CiAgICAgY3NzL0NTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uLmlkbCBcCiAgICAgY3NzL0NTU1Zhcmlh
Ymxlc1J1bGUuaWRsIFwKICAgICBjc3MvTWVkaWFMaXN0LmlkbCBcCisgICAgY3NzL01lZGlhUXVl
cnlMaXN0LmlkbCBcCiAgICAgY3NzL1JlY3QuaWRsIFwKICAgICBjc3MvUkdCQ29sb3IuaWRsIFwK
ICAgICBjc3MvU3R5bGVNZWRpYS5pZGwgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBy
byBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggZTU5NWYzYi4uZTk5MDFlNSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC02NTQs
NiArNjU0LDkgQEAgU09VUkNFUyArPSBcCiAgICAgY3NzL01lZGlhUXVlcnkuY3BwIFwKICAgICBj
c3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAgXAogICAgIGNzcy9NZWRpYVF1ZXJ5RXhwLmNwcCBc
CisgICAgY3NzL01lZGlhUXVlcnlMaXN0LmNwcCBcCisgICAgY3NzL01lZGlhUXVlcnlMaXN0TGlz
dGVuZXIuY3BwIFwKKyAgICBjc3MvTWVkaWFRdWVyeU1hdGNoZXIuY3BwIFwKICAgICBjc3MvUkdC
Q29sb3IuY3BwIFwKICAgICBjc3MvU2hhZG93VmFsdWUuY3BwIFwKICAgICBjc3MvU3R5bGVCYXNl
LmNwcCBcCkBAIC0xNTUxLDkgKzE1NTQsMTIgQEAgSEVBREVSUyArPSBcCiAgICAgY3NzL0ZvbnRW
YWx1ZS5oIFwKICAgICBjc3MvTWVkaWFGZWF0dXJlTmFtZXMuaCBcCiAgICAgY3NzL01lZGlhTGlz
dC5oIFwKKyAgICBjc3MvTWVkaWFRdWVyeS5oIFwKICAgICBjc3MvTWVkaWFRdWVyeUV2YWx1YXRv
ci5oIFwKICAgICBjc3MvTWVkaWFRdWVyeUV4cC5oIFwKLSAgICBjc3MvTWVkaWFRdWVyeS5oIFwK
KyAgICBjc3MvTWVkaWFRdWVyeUxpc3QuaCBcCisgICAgY3NzL01lZGlhUXVlcnlMaXN0TGlzdGVu
ZXIuaCBcCisgICAgY3NzL01lZGlhUXVlcnlNYXRjaGVyLmggXAogICAgIGNzcy9SR0JDb2xvci5o
IFwKICAgICBjc3MvU2hhZG93VmFsdWUuaCBcCiAgICAgY3NzL1N0eWxlQmFzZS5oIFwKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3
NTUKaW5kZXggZjgxYjc3YS4uYmI4NDg5MQotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
QEAgLTk5MjEsNiArOTkyMSw2MiBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJ
CQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERl
cml2ZWRTb3VyY2VzXEpTTWVkaWFRdWVyeUxpc3QuY3BwIg0KKwkJCQk+DQorCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxl
Q29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiINCisJCQkJCUV4Y2x1ZGVk
RnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJ
PEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z19JbnRlcm5hbHxXaW4zMiINCisJ
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb3xX
aW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRv
b2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJSZWxl
YXNlX0NhaXJvfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+
DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0K
KwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJ
CU5hbWU9IkRlYnVnX0FsbHxXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0K
KwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJ
CQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUN
CisJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUp
XERlcml2ZWRTb3VyY2VzXEpTTWVkaWFRdWVyeUxpc3QuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4N
CisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQ
cm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNNZW1vcnlJbmZvLmNwcCINCiAJCQkJPg0KIAkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24NCkBAIC0yOTk2OSw2ICszMDAyNSwzMCBAQAogCQkJCT4NCiAJ
CQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxjc3NcTWVkaWFRdWVy
eUxpc3QuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZl
UGF0aD0iLi5cY3NzXE1lZGlhUXVlcnlMaXN0LmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJ
PEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxjc3NcTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5j
cHAiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIu
Llxjc3NcTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJ
CTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cY3NzXE1lZGlhUXVlcnlNYXRjaGVyLmNwcCIN
CisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNz
c1xNZWRpYVF1ZXJ5TWF0Y2hlci5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQog
CQkJCVJlbGF0aXZlUGF0aD0iLi5cY3NzXFBhaXIuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGQxMDQ0NTUuLjk3
ODEzODIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01
MjA2LDggKzUyMDYsMTYgQEAKIAkJRDIzQ0E1NUQwQUIwRUFBRTAwNTEwOEE1IC8qIEpTUmFuZ2VF
eGNlcHRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEQyM0NBNTVDMEFCMEVBQUUwMDUxMDhBNSAvKiBKU1JhbmdlRXhjZXB0aW9uLmggKi87IH07CiAJ
CUQyM0NBNTVGMEFCMEVBQjYwMDUxMDhBNSAvKiBKU1JhbmdlRXhjZXB0aW9uLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQyM0NBNTVFMEFCMEVBQjYw
MDUxMDhBNSAvKiBKU1JhbmdlRXhjZXB0aW9uLmNwcCAqLzsgfTsKIAkJRDIzQ0E1NkMwQUIwRUI4
RDAwNTEwOEE1IC8qIFJhbmdlRXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBEMjNDQTU2QjBBQjBFQjhEMDA1MTA4QTUgLyogUmFuZ2VFeGNl
cHRpb24uaCAqLzsgfTsKKwkJRDM0MDYyOUIxMjUzQkM4QzAwOUU0MjU5IC8qIE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRDM0MDYyOUExMjUzQkM4QzAwOUU0MjU5IC8qIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIu
Y3BwICovOyB9OwogCQlEMzlEMDA2RDExRjhFMzA4MDA2MDQxRjIgLyogUG9wdXBNZW51TWFjLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMzlEMDA2QzEx
RjhFMzA4MDA2MDQxRjIgLyogUG9wdXBNZW51TWFjLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRDM5RDAwOUQxMUY5MDdFNjAwNjA0MUYyIC8qIFNl
YXJjaFBvcHVwTWVudU1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRDM5RDAwOUMxMUY5MDdFNjAwNjA0MUYyIC8qIFNlYXJjaFBvcHVwTWVudU1hYy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUQzQTk0
QTM4MTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0E5NEEzMTEyMkRBQkFDMDBBMzdCQkMg
LyogTWVkaWFRdWVyeUxpc3QuY3BwICovOyB9OworCQlEM0E5NEEzOTEyMkRBQkFDMDBBMzdCQkMg
LyogTWVkaWFRdWVyeUxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEQzQTk0QTMyMTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdC5oICov
OyB9OworCQlEM0E5NEEzQjEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeUxpc3RMaXN0ZW5l
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNBOTRB
MzQxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCAqLzsgfTsKKwkJ
RDNBOTRBNDYxMjJEQzQwRjAwQTM3QkJDIC8qIEpTTWVkaWFRdWVyeUxpc3QuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNBOTRBNDIxMjJEQzQwRjAw
QTM3QkJDIC8qIEpTTWVkaWFRdWVyeUxpc3QuY3BwICovOyB9OworCQlEM0E5NEE0NzEyMkRDNDBG
MDBBMzdCQkMgLyogSlNNZWRpYVF1ZXJ5TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRDNBOTRBNDMxMjJEQzQwRjAwQTM3QkJDIC8qIEpTTWVkaWFR
dWVyeUxpc3QuaCAqLzsgfTsKKwkJRDNBQTEwRjMxMjNBOThBQTAwOTIxNTJCIC8qIE1lZGlhUXVl
cnlNYXRjaGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEQzQUExMEYxMTIzQTk4QUEwMDkyMTUyQiAvKiBNZWRpYVF1ZXJ5TWF0Y2hlci5jcHAgKi87
IH07CisJCUQzQUExMEY0MTIzQTk4QUEwMDkyMTUyQiAvKiBNZWRpYVF1ZXJ5TWF0Y2hlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNBQTEwRjIxMjNB
OThBQTAwOTIxNTJCIC8qIE1lZGlhUXVlcnlNYXRjaGVyLmggKi87IH07CiAJCUQ4QjYxNTJGMTAz
MjQ5NTEwMEM4NTU0QSAvKiBDb29raWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEQ4QjYxNTJFMTAzMjQ5NTEwMEM4NTU0QSAvKiBDb29raWUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlEQjIzQzJDQjBB
NTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREIyM0MyQzkwQTUwOEQyOTAwMjQ4OUVC
IC8qIEluZGVudE91dGRlbnRDb21tYW5kLmNwcCAqLzsgfTsKIAkJREIyM0MyQ0MwQTUwOEQyOTAw
MjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQjIzQzJDQTBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50
T3V0ZGVudENvbW1hbmQuaCAqLzsgfTsKQEAgLTExMTI5LDggKzExMTM3LDE4IEBACiAJCUQyM0NB
NTVDMEFCMEVBQUUwMDUxMDhBNSAvKiBKU1JhbmdlRXhjZXB0aW9uLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU1JhbmdlRXhjZXB0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUQyM0NBNTVFMEFCMEVBQjYwMDUxMDhBNSAvKiBKU1JhbmdlRXhjZXB0aW9u
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1JhbmdlRXhjZXB0
aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDIzQ0E1NkIwQUIwRUI4RDAw
NTEwOEE1IC8qIFJhbmdlRXhjZXB0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSYW5nZUV4Y2VwdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMzQw
NjI5QTEyNTNCQzhDMDA5RTQyNTkgLyogTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDM5RDAwNkMxMUY4RTMwODAwNjA0MUYy
IC8qIFBvcHVwTWVudU1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQb3B1
cE1lbnVNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDM5RDAwOUMxMUY5MDdF
NjAwNjA0MUYyIC8qIFNlYXJjaFBvcHVwTWVudU1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTZWFyY2hQb3B1cE1lbnVNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRDNBOTRBMzExMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhUXVlcnlMaXN0LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDNBOTRBMzIxMjJEQUJBQzAwQTM3QkJDIC8qIE1l
ZGlhUXVlcnlMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUXVl
cnlMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQzQTk0QTMzMTIyREFCQUMw
MEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTWVk
aWFRdWVyeUxpc3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEM0E5NEEzNDEy
MkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUQzQTk0QTM1MTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDNBOTRBNDIxMjJEQzQw
RjAwQTM3QkJDIC8qIEpTTWVkaWFRdWVyeUxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNNZWRpYVF1ZXJ5TGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUQzQTk0QTQzMTIyREM0MEYwMEEzN0JCQyAvKiBKU01lZGlhUXVlcnlMaXN0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWVkaWFRdWVyeUxpc3QuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDNBQTEwRjExMjNBOThBQTAwOTIxNTJCIC8qIE1l
ZGlhUXVlcnlNYXRjaGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IE1lZGlhUXVlcnlNYXRjaGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDNB
QTEwRjIxMjNBOThBQTAwOTIxNTJCIC8qIE1lZGlhUXVlcnlNYXRjaGVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUXVlcnlNYXRjaGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUQ4QjYxNTJFMTAzMjQ5NTEwMEM4NTU0QSAvKiBDb29raWUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29va2llLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCURCMjNDMkM5MEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29t
bWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5kZW50T3V0
ZGVudENvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQjIzQzJDQTBB
NTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEluZGVudE91dGRlbnRDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xNTM0Niw2ICsxNTM2NCw4IEBACiAJCQkJQkM2ODZDN0EwRTBDMzMw
MTAwREU4QTA4IC8qIEpTQ1NTVmFyaWFibGVzUnVsZS5jcHAgKi8sCiAJCQkJQkM2ODZDN0IwRTBD
MzMwMTAwREU4QTA4IC8qIEpTQ1NTVmFyaWFibGVzUnVsZS5oICovLAogCQkJCUJDM0MzOUI0MEMw
RDNEOEQwMDVGNEQ3QSAvKiBKU01lZGlhTGlzdC5jcHAgKi8sCisJCQkJRDNBOTRBNDIxMjJEQzQw
RjAwQTM3QkJDIC8qIEpTTWVkaWFRdWVyeUxpc3QuY3BwICovLAorCQkJCUQzQTk0QTQzMTIyREM0
MEYwMEEzN0JCQyAvKiBKU01lZGlhUXVlcnlMaXN0LmggKi8sCiAJCQkJQkMzQzM5QjUwQzBEM0Q4
RDAwNUY0RDdBIC8qIEpTTWVkaWFMaXN0LmggKi8sCiAJCQkJQkNGRTJGMEYwQzFCNTgzNzAwMjAy
MzVGIC8qIEpTUmVjdC5jcHAgKi8sCiAJCQkJQkNGRTJGMTAwQzFCNTgzNzAwMjAyMzVGIC8qIEpT
UmVjdC5oICovLApAQCAtMTczMzQsNiArMTczNTQsMTQgQEAKIAkJCQk0RTE5NTkyNjBBMzlEQUND
MDAyMjBGRTUgLyogTWVkaWFRdWVyeUV2YWx1YXRvci5oICovLAogCQkJCTRFMTk1OTI3MEEzOURB
Q0MwMDIyMEZFNSAvKiBNZWRpYVF1ZXJ5RXhwLmNwcCAqLywKIAkJCQk0RTE5NTkyODBBMzlEQUND
MDAyMjBGRTUgLyogTWVkaWFRdWVyeUV4cC5oICovLAorCQkJCUQzQTk0QTMxMTIyREFCQUMwMEEz
N0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdC5jcHAgKi8sCisJCQkJRDNBOTRBMzIxMjJEQUJBQzAwQTM3
QkJDIC8qIE1lZGlhUXVlcnlMaXN0LmggKi8sCisJCQkJRDNBOTRBMzMxMjJEQUJBQzAwQTM3QkJD
IC8qIE1lZGlhUXVlcnlMaXN0LmlkbCAqLywKKwkJCQlEM0E5NEEzNDEyMkRBQkFDMDBBMzdCQkMg
LyogTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oICovLAorCQkJCUQzNDA2MjlBMTI1M0JDOEMwMDlF
NDI1OSAvKiBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcCAqLywKKwkJCQlEM0E5NEEzNTEyMkRB
QkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5pZGwgKi8sCisJCQkJRDNBQTEw
RjExMjNBOThBQTAwOTIxNTJCIC8qIE1lZGlhUXVlcnlNYXRjaGVyLmNwcCAqLywKKwkJCQlEM0FB
MTBGMjEyM0E5OEFBMDA5MjE1MkIgLyogTWVkaWFRdWVyeU1hdGNoZXIuaCAqLywKIAkJCQlBODBF
NkNEMTBBMTk4OUNBMDA3RkI4QzUgLyogUGFpci5oICovLAogCQkJCTkzQ0E0QzlGMDlERjkzRkEw
MERGODY3NyAvKiBxdWlya3MuY3NzICovLAogCQkJCUJDNDM2OEU3MEMyMjZFMzIwMDVFRkI1RiAv
KiBSZWN0LmggKi8sCkBAIC0yMDc5OCw2ICsyMDgyNiwxMCBAQAogCQkJCTkzRjE5OUVEMDgyNDVF
NTkwMDFFOUFCQyAvKiBYU0xUUHJvY2Vzc29yLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUJFNTEy
RTBDRjZDNTEyMDAyRUE5NTkgLyogWFNMVFVuaWNvZGVTb3J0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5N0RENEQ4NzBGREY0RDZFMDBFQ0Y5QTQgLyogWFNTQXVkaXRvci5oIGluIEhlYWRlcnMgKi8s
CisJCQkJRDNBOTRBMzkxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0LmggaW4gSGVh
ZGVycyAqLywKKwkJCQlEM0E5NEEzQjEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeUxpc3RM
aXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRDNBOTRBNDcxMjJEQzQwRjAwQTM3QkJDIC8q
IEpTTWVkaWFRdWVyeUxpc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCUQzQUExMEY0MTIzQTk4QUEw
MDkyMTUyQiAvKiBNZWRpYVF1ZXJ5TWF0Y2hlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJ
cnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yMzMxMSw2
ICsyMzM0MywxMCBAQAogCQkJCTkzRjE5QjA1MDgyNDVFNTkwMDFFOUFCQyAvKiBYU0xUUHJvY2Vz
c29yTGlieHNsdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMUJFNTEyRDBDRjZDNTEyMDAyRUE5
NTkgLyogWFNMVFVuaWNvZGVTb3J0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3REQ0RDg2MEZE
RjRENkUwMEVDRjlBNCAvKiBYU1NBdWRpdG9yLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUQzQTk0
QTM4MTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdC5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQlEM0E5NEE0NjEyMkRDNDBGMDBBMzdCQkMgLyogSlNNZWRpYVF1ZXJ5TGlzdC5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlEM0FBMTBGMzEyM0E5OEFBMDA5MjE1MkIgLyogTWVkaWFRdWVyeU1h
dGNoZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRDM0MDYyOUIxMjUzQkM4QzAwOUU0MjU5IC8q
IE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVu
T25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvR05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL2JpbmRpbmdz
L2dvYmplY3QvR05VbWFrZWZpbGUuYW0KaW5kZXggZDgwOGUxOC4uMWM2YjhmOCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dOVW1ha2VmaWxlLmFtCisrKyBiL1dlYkNvcmUv
YmluZGluZ3MvZ29iamVjdC9HTlVtYWtlZmlsZS5hbQpAQCAtMTk0LDYgKzE5NCw4IEBAIHdlYmtp
dGd0a19nZG9tX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJL
aXRET01NZWRpYUVycm9yUHJpdmF0ZS5oIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0
RE9NTWVkaWFMaXN0LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTU1lZGlh
TGlzdFByaXZhdGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTU1lZGlhUXVl
cnlMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTU1lZGlhUXVlcnlM
aXN0UHJpdmF0ZS5oIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NTWVtb3J5SW5m
by5jcHAgXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01NZW1vcnlJbmZvUHJpdmF0
ZS5oIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NTWVzc2FnZVBvcnQuY3BwIFwK
QEAgLTI1Miw2ICsyNTQsNyBAQCB3ZWJraXRndGtfYnVpbHRfaF9hcGkgKz0gXAogCURlcml2ZWRT
b3VyY2VzL3dlYmtpdC9XZWJLaXRET01DU1NTdHlsZVNoZWV0LmggXAogCURlcml2ZWRTb3VyY2Vz
L3dlYmtpdC9XZWJLaXRET01DU1NWYWx1ZS5oIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2Vi
S2l0RE9NTWVkaWFMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01NZWRp
YVF1ZXJ5TGlzdC5oIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NU3R5bGVNZWRp
YS5oIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NU3R5bGVTaGVldC5oIFwKIAlE
ZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NU3R5bGVTaGVldExpc3QuaCBcCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0gYi9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0KaW5kZXggNmEx
ZDExNS4uZDg2YTBjNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JHT2JqZWN0LnBtCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yR09iamVjdC5wbQpAQCAtMjEwLDggKzIxMCwxMSBAQCBzdWIgU2tpcEZ1bmN0aW9uIHsK
IAogICAgICMgU2tpcCBmdW5jdGlvbnMgdGhhdCBoYXZlIFsiQ2FsbGJhY2siXSBwYXJhbWV0ZXJz
LCBiZWNhdXNlIHRoaXMKICAgICAjIGNvZGUgZ2VuZXJhdG9yIGRvZXNuJ3Qga25vdyBob3cgdG8g
YXV0by1nZW5lcmF0ZSBjYWxsYmFja3MuCisgICAgIyBTa2lwIGZ1bmN0aW9ucyB0aGF0IGhhdmUg
Ik1lZGlhUXVlcnlMaXN0TGlzdGVuZXIiIHBhcmFtZXRlcnMsIGJlY2F1c2UgdGhpcworICAgICMg
Y29kZSBnZW5lcmF0b3IgZG9lc24ndCBrbm93IGhvdyB0byBhdXRvLWdlbmVyYXRlIE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXIuCiAgICAgZm9yZWFjaCBteSAkcGFyYW0gKEB7JGZ1bmN0aW9uLT5wYXJh
bWV0ZXJzfSkgewotICAgICAgICBpZiAoJHBhcmFtLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2Fs
bGJhY2sifSkgeworICAgICAgICBpZiAoJHBhcmFtLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2Fs
bGJhY2sifSB8fAorICAgICAgICAgICAgJHBhcmFtLT50eXBlIGVxICJNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyIikgewogICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgIH0KICAgICB9CkBAIC02
MDAsNyArNjAzLDggQEAgRU9GCiAgICAgcHVzaChAdHh0U2V0UHJvcHMsICR0eHRTZXRQcm9wcyk7
CiAKICAgICBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEByZWFkYWJsZVByb3BlcnRpZXMpIHsKLSAg
ICAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSBuZSAiRXZlbnRMaXN0ZW5lciIp
IHsKKyAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSBuZSAiRXZlbnRMaXN0
ZW5lciIgJiYKKyAgICAgICAgICAgICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSBuZSAiTWVk
aWFRdWVyeUxpc3RMaXN0ZW5lciIpIHsKICAgICAgICAgICAgIEdlbmVyYXRlUHJvcGVydHkoJGF0
dHJpYnV0ZSwgJGludGVyZmFjZU5hbWUsIFxAd3JpdGVhYmxlUHJvcGVydGllcyk7CiAgICAgICAg
IH0KICAgICB9CkBAIC03NjcsNiArNzcxLDcgQEAgc3ViIGdldEluY2x1ZGVIZWFkZXIgewogICAg
IHJldHVybiAiIiBpZiAkdHlwZSBlcSAidW5zaWduZWQgc2hvcnQiOwogICAgIHJldHVybiAiIiBp
ZiAkdHlwZSBlcSAiRE9NVGltZVN0YW1wIjsKICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgIkV2
ZW50TGlzdGVuZXIiOworICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAiTWVkaWFRdWVyeUxpc3RM
aXN0ZW5lciI7CiAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBjaGFyIjsKICAg
ICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgIkRPTVN0cmluZyI7CiAgICAgcmV0dXJuICIiIGlmICR0
eXBlIGVxICJmbG9hdCI7CkBAIC04MDYsNiArODExLDEwIEBAIHN1YiBHZW5lcmF0ZUZ1bmN0aW9u
IHsKIAogICAgIG15ICRkZWNhbWVsaXplID0gRml4VXBEZWNhbWVsaXplZE5hbWUoZGVjYW1lbGl6
ZSgkaW50ZXJmYWNlTmFtZSkpOwogCisgICAgaWYgKCRvYmplY3QgZXEgIk1lZGlhUXVlcnlMaXN0
TGlzdGVuZXIiKSB7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBpZiAoU2tpcEZ1bmN0
aW9uKCRmdW5jdGlvbiwgJGRlY2FtZWxpemUsICRwcmVmaXgpKSB7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CkBAIC04MjcsNyArODM2LDcgQEAgc3ViIEdlbmVyYXRlRnVuY3Rpb24gewogCiAgICAg
Zm9yZWFjaCBteSAkcGFyYW0gKEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSkgewogICAgICAgICBt
eSAkcGFyYW1JRExUeXBlID0gJHBhcmFtLT50eXBlOwotICAgICAgICBpZiAoJHBhcmFtSURMVHlw
ZSBlcSAiRXZlbnRMaXN0ZW5lciIpIHsKKyAgICAgICAgaWYgKCRwYXJhbUlETFR5cGUgZXEgIkV2
ZW50TGlzdGVuZXIiIHx8ICRwYXJhbUlETFR5cGUgZXEgIk1lZGlhUXVlcnlMaXN0TGlzdGVuZXIi
KSB7CiAgICAgICAgICAgICBwdXNoKEBoQm9keSwgIlxuLyogVE9ETzogZXZlbnQgZnVuY3Rpb24g
JHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOwogICAgICAgICAgICAgcHVzaChAY0JvZHksICJcbi8q
IFRPRE86IGV2ZW50IGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKICAgICAgICAg
ICAgIHJldHVybjsKQEAgLTEwODAsNyArMTA4OSw5IEBAIHN1YiBHZW5lcmF0ZUZ1bmN0aW9ucyB7
CiAKICAgICBUT1A6CiAgICAgZm9yZWFjaCBteSAkYXR0cmlidXRlIChAeyRkYXRhTm9kZS0+YXR0
cmlidXRlc30pIHsKLSAgICAgICAgaWYgKFNraXBBdHRyaWJ1dGUoJGF0dHJpYnV0ZSkgfHwgJGF0
dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlIGVxICJFdmVudExpc3RlbmVyIikgeworICAgICAgICBp
ZiAoU2tpcEF0dHJpYnV0ZSgkYXR0cmlidXRlKSB8fAorICAgICAgICAgICAgJGF0dHJpYnV0ZS0+
c2lnbmF0dXJlLT50eXBlIGVxICJFdmVudExpc3RlbmVyIiB8fAorICAgICAgICAgICAgJGF0dHJp
YnV0ZS0+c2lnbmF0dXJlLT50eXBlIGVxICJNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIikgewogICAg
ICAgICAgICAgbmV4dCBUT1A7CiAgICAgICAgIH0KICAgICAgICAgCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCA4MDM1NDJlLi4xZDNhZDA5IDEwMDY0
NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBi
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTYsNiArNiw3
IEBACiAjIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjIENvcHlyaWdodCAoQykgMjAwOSBDYW1lcm9uIE1j
Q29ybWFjayA8Y2FtQG1jYy5pZC5hdT4KICMgQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rp
b24gTGltaXRlZCAyMDEwLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIw
MTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAjCiAjIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKICMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKQEAgLTI4Miw2ICsyODMsMTAgQEAgc3ViIEFkZEluY2x1ZGVzRm9yVHlwZQogICAg
IGlmICgkdHlwZSBlcSAiRG9jdW1lbnQiKSB7CiAgICAgICAgICRpbXBsSW5jbHVkZXN7Ik5vZGVG
aWx0ZXIuaCJ9ID0gMTsKICAgICB9CisKKyAgICBpZiAoJHR5cGUgZXEgIk1lZGlhUXVlcnlMaXN0
TGlzdGVuZXIiKSB7CisgICAgICAgICRpbXBsSW5jbHVkZXN7Ik1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXIuaCJ9ID0gMTsKKyAgICB9CiB9CiAKIHN1YiBBZGRJbmNsdWRlc0ZvclNWR0FuaW1hdGVkVHlw
ZQpAQCAtMjM1OSw2ICsyMzY0LDcgQEAgbXkgJW5hdGl2ZVR5cGUgPSAoCiAgICAgInVuc2lnbmVk
IHNob3J0IiA9PiAidW5zaWduZWQgc2hvcnQiLAogICAgICJsb25nIGxvbmciID0+ICJsb25nIGxv
bmciLAogICAgICJ1bnNpZ25lZCBsb25nIGxvbmciID0+ICJ1bnNpZ25lZCBsb25nIGxvbmciLAor
ICAgICJNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIiA9PiAiUmVmUHRyPE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXI+IgogKTsKIAogc3ViIEdldE5hdGl2ZVR5cGUKQEAgLTI0MDUsNiArMjQxMSwxMSBAQCBz
dWIgSlNWYWx1ZVRvTmF0aXZlCiAgICAgICAgIHJldHVybiAiJHZhbHVlIjsKICAgICB9CiAKKyAg
ICBpZiAoJHR5cGUgZXEgIk1lZGlhUXVlcnlMaXN0TGlzdGVuZXIiKSB7CisgICAgICAgICRpbXBs
SW5jbHVkZXN7Ik1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCJ9ID0gMTsKKyAgICAgICAgcmV0dXJu
ICJNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjpjcmVhdGUoIiAuICR2YWx1ZSAuIikiOworICAgIH0K
KwogICAgIGlmICgkdHlwZSBlcSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlIiBvciAkdHlwZSBlcSAi
YW55IikgewogICAgICAgICAkaW1wbEluY2x1ZGVzeyJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCJ9
ID0gMTsKICAgICAgICAgcmV0dXJuICJTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShleGVj
LCAkdmFsdWUpIjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yVjgucG0gYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBt
CmluZGV4IDMzNTNmMGYuLmFmNDA2ZTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JWOC5wbQpAQCAtNiw2ICs2LDcgQEAKICMgQ29weXJpZ2h0IChDKSAyMDA2IEFw
cGxlIENvbXB1dGVyLCBJbmMuCiAjIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAwOSBHb29n
bGUgSW5jLgogIyBDb3B5cmlnaHQgKEMpIDIwMDkgQ2FtZXJvbiBNY0Nvcm1hY2sgPGNhbUBtY2Mu
aWQuYXU+CisjIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRz
IHN1YnNpZGlhcnkoLWllcykKICMKICMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjg2NSw2ICsyODY2LDggQEAg
c3ViIEdldE5hdGl2ZVR5cGUKIAogICAgIHJldHVybiAiUmVmUHRyPCR7dHlwZX0+IiBpZiBJc1Jl
ZlB0clR5cGUoJHR5cGUpIGFuZCBub3QgJGlzUGFyYW1ldGVyOwogCisgICAgcmV0dXJuICJSZWZQ
dHI8TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4iIGlmICR0eXBlIGVxICJNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyIjsKKwogICAgICMgRGVmYXVsdCwgYXNzdW1lIG5hdGl2ZSB0eXBlIGlzIGEgcG9pbnRl
ciB3aXRoIHNhbWUgdHlwZSBuYW1lIGFzIGlkbCB0eXBlCiAgICAgcmV0dXJuICIke3R5cGV9KiI7
CiB9CkBAIC0yOTYxLDYgKzI5NjQsMTEgQEAgc3ViIEpTVmFsdWVUb05hdGl2ZQogICAgICAgICAk
aW1wbEluY2x1ZGVzeyJGbG9hdFJlY3QuaCJ9ID0gMTsKICAgICB9CiAKKyAgICBpZiAoJHR5cGUg
ZXEgIk1lZGlhUXVlcnlMaXN0TGlzdGVuZXIiKSB7CisgICAgICAgICRpbXBsSW5jbHVkZXN7Ik1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCJ9ID0gMTsKKyAgICAgICAgcmV0dXJuICJNZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyOjpjcmVhdGUoIiAuICR2YWx1ZSAuICIpIjsKKyAgICB9CisKICAgICBpZiAo
JHR5cGUgZXEgIlNWR1BvaW50IikgewogICAgICAgICAkaW1wbEluY2x1ZGVzeyJGbG9hdFBvaW50
LmgifSA9IDE7CiAgICAgfQpAQCAtMzEwOSw3ICszMTE3LDggQEAgbXkgJW5vbl93cmFwcGVyX3R5
cGVzID0gKAogICAgICdOb2RlRmlsdGVyJyA9PiAxLAogICAgICdFdmVudExpc3RlbmVyJyA9PiAx
LAogICAgICdJREJLZXknID0+IDEsCi0gICAgJ0RhdGUnID0+IDEKKyAgICAnRGF0ZScgPT4gMSwK
KyAgICAnTWVkaWFRdWVyeUxpc3RMaXN0ZW5lcicgPT4gMQogKTsKIAogCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdC5jcHAgYi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlz
dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2E1OTNkYQotLS0gL2Rl
di9udWxsCisrKyBiL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0LmNwcApAQCAtMCwwICsxLDk0
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJNZWRpYVF1ZXJ5TGlzdC5oIgorCisjaW5jbHVkZSAiTWVkaWFMaXN0LmgiCisjaW5jbHVkZSAi
TWVkaWFRdWVyeUV2YWx1YXRvci5oIgorI2luY2x1ZGUgIk1lZGlhUXVlcnlMaXN0TGlzdGVuZXIu
aCIKKyNpbmNsdWRlICJNZWRpYVF1ZXJ5TWF0Y2hlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK1Bhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3Q+IE1lZGlhUXVlcnlMaXN0OjpjcmVhdGUoUGFz
c1JlZlB0cjxNZWRpYVF1ZXJ5TWF0Y2hlcj4gdmVjdG9yLCBQYXNzUmVmUHRyPE1lZGlhTGlzdD4g
bWVkaWEsIGJvb2wgbWF0Y2hlcykKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1lZGlhUXVl
cnlMaXN0KHZlY3RvciwgbWVkaWEsIG1hdGNoZXMpKTsKK30KKworTWVkaWFRdWVyeUxpc3Q6Ok1l
ZGlhUXVlcnlMaXN0KFBhc3NSZWZQdHI8TWVkaWFRdWVyeU1hdGNoZXI+IHZlY3RvciwgUGFzc1Jl
ZlB0cjxNZWRpYUxpc3Q+IG1lZGlhLCBib29sIG1hdGNoZXMpCisgICAgOiBtX21hdGNoZXIodmVj
dG9yKQorICAgICwgbV9tZWRpYShtZWRpYSkKKyAgICAsIG1fZXZhbFJvdW5kKG1fbWF0Y2hlci0+
ZXZhbHVhdGlvblJvdW5kKCkpCisgICAgLCBtX2NoYW5nZVJvdW5kKG1fZXZhbFJvdW5kIC0gMSkg
Ly8gbV9ldmFsUm91bmQgYW5kIG1fY2hhbmdlUm91bmQgaW5pdGlhbCB2YWx1ZXMgbXVzdCBiZSBk
aWZmZXJlbnQuCisgICAgLCBtX21hdGNoZXMobWF0Y2hlcykKK3sKK30KKworTWVkaWFRdWVyeUxp
c3Q6On5NZWRpYVF1ZXJ5TGlzdCgpCit7Cit9CisKK1N0cmluZyBNZWRpYVF1ZXJ5TGlzdDo6bWVk
aWEoKSBjb25zdAoreworICAgIHJldHVybiBtX21lZGlhLT5tZWRpYVRleHQoKTsKK30KKwordm9p
ZCBNZWRpYVF1ZXJ5TGlzdDo6YWRkTGlzdGVuZXIoUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyPiBsaXN0ZW5lcikKK3sKKyAgICBtX21hdGNoZXItPmFkZExpc3RlbmVyKGxpc3RlbmVy
LCB0aGlzKTsKK30KKwordm9pZCBNZWRpYVF1ZXJ5TGlzdDo6cmVtb3ZlTGlzdGVuZXIoUGFzc1Jl
ZlB0cjxNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyPiBsaXN0ZW5lcikKK3sKKyAgICBtX21hdGNoZXIt
PnJlbW92ZUxpc3RlbmVyKGxpc3RlbmVyLCB0aGlzKTsKK30KKwordm9pZCBNZWRpYVF1ZXJ5TGlz
dDo6ZXZhbHVhdGUoTWVkaWFRdWVyeUV2YWx1YXRvciogZXZhbHVhdG9yLCBib29sJiBub3RpZmlj
YXRpb25OZWVkZWQpCit7CisgICAgaWYgKG1fZXZhbFJvdW5kICE9IG1fbWF0Y2hlci0+ZXZhbHVh
dGlvblJvdW5kKCkgJiYgZXZhbHVhdG9yKQorICAgICAgICBzZXRNYXRjaGVzKGV2YWx1YXRvci0+
ZXZhbChtX21lZGlhLmdldCgpKSk7CisgICAgbm90aWZpY2F0aW9uTmVlZGVkID0gbV9jaGFuZ2VS
b3VuZCA9PSBtX21hdGNoZXItPmV2YWx1YXRpb25Sb3VuZCgpOworfQorCit2b2lkIE1lZGlhUXVl
cnlMaXN0OjpzZXRNYXRjaGVzKGJvb2wgbmV3VmFsdWUpCit7CisgICAgbV9ldmFsUm91bmQgPSBt
X21hdGNoZXItPmV2YWx1YXRpb25Sb3VuZCgpOworCisgICAgaWYgKG5ld1ZhbHVlID09IG1fbWF0
Y2hlcykKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9tYXRjaGVzID0gbmV3VmFsdWU7CisgICAg
bV9jaGFuZ2VSb3VuZCA9IG1fZXZhbFJvdW5kOworfQorCitib29sIE1lZGlhUXVlcnlMaXN0Ojpt
YXRjaGVzKCkKK3sKKyAgICBpZiAobV9ldmFsUm91bmQgIT0gbV9tYXRjaGVyLT5ldmFsdWF0aW9u
Um91bmQoKSkKKyAgICAgICAgc2V0TWF0Y2hlcyhtX21hdGNoZXItPmV2YWx1YXRlKG1fbWVkaWEu
Z2V0KCkpKTsKKyAgICByZXR1cm4gbV9tYXRjaGVzOworfQorCit9CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdC5oIGIvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3QuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZDJmYjdhCi0tLSAvZGV2L251bGwK
KysrIGIvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3QuaApAQCAtMCwwICsxLDczIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lk
aWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTWVkaWFRdWVyeUxpc3RfaAorI2RlZmluZSBNZWRp
YVF1ZXJ5TGlzdF9oCisKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE1lZGlhTGlz
dDsKK2NsYXNzIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI7CitjbGFzcyBNZWRpYVF1ZXJ5RXZhbHVh
dG9yOworY2xhc3MgTWVkaWFRdWVyeU1hdGNoZXI7CisKKy8qCisgIE1lZGlhUXVlcnlMaXN0IGlu
dGVyZmFjZSBpcyBzcGVjaWZpZWQgYXQgaHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3Nzb20tdmll
dy8jdGhlLW1lZGlhcXVlcnlsaXN0LWludGVyZmFjZQorICBUaGUgb2JqZWN0cyBvZiB0aGlzIGNs
YXNzIGFyZSByZXR1cm5lZCBieSB3aW5kb3cubWF0Y2hNZWRpYS4gVGhleSBtYXkgYmUgdXNlZCB0
bworICByZXRyaWV2ZSB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgZ2l2ZW4gbWVkaWEgcXVlcnkg
YW5kIHRvIGFkZC9yZW1vdmUgbGlzdGVuZXJzIHRoYXQKKyAgd2lsbCBiZSBjYWxsZWQgd2hlbmV2
ZXIgdGhlIHZhbHVlIG9mIHRoZSBxdWVyeSBjaGFuZ2VzLgorKi8KK2NsYXNzIE1lZGlhUXVlcnlM
aXN0IDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFRdWVyeUxpc3Q+IHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdD4gY3JlYXRlKFBhc3NSZWZQdHI8TWVkaWFR
dWVyeU1hdGNoZXI+LCBQYXNzUmVmUHRyPE1lZGlhTGlzdD4sIGJvb2wpOworICAgIH5NZWRpYVF1
ZXJ5TGlzdCgpOworCisgICAgU3RyaW5nIG1lZGlhKCkgY29uc3Q7CisgICAgYm9vbCBtYXRjaGVz
KCk7CisKKyAgICB2b2lkIGFkZExpc3RlbmVyKFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lcj4pOworICAgIHZvaWQgcmVtb3ZlTGlzdGVuZXIoUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyPik7CisKKyAgICB2b2lkIGV2YWx1YXRlKE1lZGlhUXVlcnlFdmFsdWF0b3IqLCBi
b29sJiBub3RpZmljYXRpb25OZWVkZWQpOworCitwcml2YXRlOgorICAgIE1lZGlhUXVlcnlMaXN0
KFBhc3NSZWZQdHI8TWVkaWFRdWVyeU1hdGNoZXI+LCBQYXNzUmVmUHRyPE1lZGlhTGlzdD4sIGJv
b2wgbWF0Y2hlcyk7CisgICAgdm9pZCBzZXRNYXRjaGVzKGJvb2wpOworCisgICAgUmVmUHRyPE1l
ZGlhUXVlcnlNYXRjaGVyPiBtX21hdGNoZXI7CisgICAgUmVmUHRyPE1lZGlhTGlzdD4gbV9tZWRp
YTsKKyAgICBpbnQgbV9ldmFsUm91bmQ7IC8vIEluZGljYXRlcyBpZiB0aGUgcXVlcnkgaGFzIGJl
ZW4gZXZhbHVhdGVkIGFmdGVyIHRoZSBsYXN0IHN0eWxlIHNlbGVjdG9yIGNoYW5nZS4KKyAgICBp
bnQgbV9jaGFuZ2VSb3VuZDsgLy8gVXNlZCB0byBrbm93IGlmIHRoZSBxdWVyeSBoYXMgY2hhbmdl
ZCBpbiB0aGUgbGFzdCBzdHlsZSBzZWxlY3RvciBjaGFuZ2UuCisgICAgYm9vbCBtX21hdGNoZXM7
Cit9OworCit9CisKKyNlbmRpZiAvLyBNZWRpYVF1ZXJ5TGlzdF9oCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdC5pZGwgYi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdC5p
ZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTQyNGE3OQotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0LmlkbApAQCAtMCwwICsxLDMzIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMg
c3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSB2aWV3IHsKKyAgICBpbnRlcmZhY2UgTWVk
aWFRdWVyeUxpc3QgeworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG1lZGlh
OworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBtYXRjaGVzOworICAgICAgICB2
b2lkIGFkZExpc3RlbmVyKGluIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIgbGlzdGVuZXIpOworICAg
ICAgICB2b2lkIHJlbW92ZUxpc3RlbmVyKGluIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIgbGlzdGVu
ZXIpOworICAgIH07Cit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyLmNwcCBiL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZkMzQ4MjQKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcApAQCAtMCwwICsxLDU1IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMg
c3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgiCisKKyNpZiBVU0UoSlNDKQorI2luY2x1ZGUgIkpTTWVk
aWFRdWVyeUxpc3QuaCIKKyNlbHNlCisjaW5jbHVkZSAiVjhNZWRpYVF1ZXJ5TGlzdC5oIgorI2Vu
ZGlmCisjaW5jbHVkZSAiTWVkaWFRdWVyeUxpc3QuaCIKKyNpbmNsdWRlICJTY3JpcHRGdW5jdGlv
bkNhbGwuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXI6OnF1ZXJ5Q2hhbmdlZChTY3JpcHRTdGF0ZSogc3RhdGUsIE1lZGlhUXVlcnlMaXN0KiBx
dWVyeSkKK3sKKyAgICBTY3JpcHRDYWxsYmFjayBjYWxsYmFjayhzdGF0ZSwgbV92YWx1ZSk7Cisj
aWYgVVNFKEpTQykKKyAgICBjYWxsYmFjay5hcHBlbmRBcmd1bWVudCh0b0pTKHN0YXRlLCBxdWVy
eSkpOworI2Vsc2UKKyAgICBjYWxsYmFjay5hcHBlbmRBcmd1bWVudCh0b1Y4KHF1ZXJ5KSk7Cisj
ZW5kaWYKKyAgICBjYWxsYmFjay5jYWxsKCk7Cit9CisKK2Jvb2wgTWVkaWFRdWVyeUxpc3RMaXN0
ZW5lcjo6aXNFcXVhbFRvKFNjcmlwdFN0YXRlKiBzdGF0ZSwgY29uc3QgTWVkaWFRdWVyeUxpc3RM
aXN0ZW5lciogb3RoZXIpCit7CisgICAgcmV0dXJuIG90aGVyICYmIG90aGVyLT5tX3ZhbHVlLmlz
RXF1YWwoc3RhdGUsIG1fdmFsdWUpOworfQorCit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9N
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggYi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjVlYzg4YQotLS0gL2Rl
di9udWxsCisrKyBiL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaApAQCAtMCww
ICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTWVkaWFRdWVyeUxpc3RM
aXN0ZW5lcl9oCisjZGVmaW5lIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJfaAorCisjaW5jbHVkZSAi
UGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJTY3JpcHRTdGF0ZS5oIgorI2luY2x1ZGUgIlNj
cmlwdFZhbHVlLmgiCisKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIE1lZGlhUXVlcnlMaXN0OworCisvKgorICBTZWUgaHR0cDovL2Rl
di53My5vcmcvY3Nzd2cvY3Nzb20tdmlldy8jdGhlLW1lZGlhcXVlcnlsaXN0LWludGVyZmFjZQor
Ki8KK2NsYXNzIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lcj4gY3JlYXRlKFNjcmlwdFZhbHVlIHZhbHVlKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKHZhbHVlKSk7
CisgICAgfQorICAgIHZvaWQgcXVlcnlDaGFuZ2VkKFNjcmlwdFN0YXRlKiwgTWVkaWFRdWVyeUxp
c3QqKTsKKyAgICBib29sIGlzRXF1YWxUbyhTY3JpcHRTdGF0ZSosIGNvbnN0IE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXIqKTsKKworcHJpdmF0ZToKKyAgICBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKFNj
cmlwdFZhbHVlIHZhbHVlKSA6IG1fdmFsdWUodmFsdWUpIHt9CisKKyAgICBTY3JpcHRWYWx1ZSBt
X3ZhbHVlOworfTsKKworfQorCisjZW5kaWYgLy8gTWVkaWFRdWVyeUxpc3RMaXN0ZW5lcl9oCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmlkbCBiL1dlYkNv
cmUvY3NzL01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmYwZGY1YTMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2Nzcy9NZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyLmlkbApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVU
RVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRF
UiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKK21vZHVsZSB2aWV3IHsKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBOb1N0YXRpY1Rh
YmxlcywKKyAgICAgICAgT2JqQ1Byb3RvY29sLAorICAgICAgICBQdXJlSW50ZXJmYWNlLAorICAg
ICAgICBPbWl0Q29uc3RydWN0b3IKKyAgICBdIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIgeworICAg
ICAgICB2b2lkIHF1ZXJ5Q2hhbmdlZChpbiBNZWRpYVF1ZXJ5TGlzdCBtcWwpOworICAgIH07Cit9
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TWF0Y2hlci5jcHAgYi9XZWJDb3Jl
L2Nzcy9NZWRpYVF1ZXJ5TWF0Y2hlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uYWJiMTA2NAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlN
YXRjaGVyLmNwcApAQCAtMCwwICsxLDE3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFRdWVyeU1hdGNoZXIuaCIKKworI2luY2x1
ZGUgIkNTU1N0eWxlU2VsZWN0b3IuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUg
IkVsZW1lbnQuaCIKKyNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyNpbmNsdWRlICJNZWRpYUxpc3Qu
aCIKKyNpbmNsdWRlICJNZWRpYVF1ZXJ5RXZhbHVhdG9yLmgiCisjaW5jbHVkZSAiTWVkaWFRdWVy
eUxpc3QuaCIKKyNpbmNsdWRlICJNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworTWVkaWFRdWVyeU1hdGNoZXI6Okxpc3RlbmVyOjpMaXN0ZW5lcihQYXNz
UmVmUHRyPE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+IGxpc3RlbmVyLCBQYXNzUmVmUHRyPE1lZGlh
UXVlcnlMaXN0PiBxdWVyeSkKKyAgICA6IG1fbGlzdGVuZXIobGlzdGVuZXIpCisgICAgLCBtX3F1
ZXJ5KHF1ZXJ5KQoreworfQorCitNZWRpYVF1ZXJ5TWF0Y2hlcjo6TGlzdGVuZXI6On5MaXN0ZW5l
cigpCit7Cit9CisKK3ZvaWQgTWVkaWFRdWVyeU1hdGNoZXI6Okxpc3RlbmVyOjpldmFsdWF0ZShT
Y3JpcHRTdGF0ZSogc3RhdGUsIE1lZGlhUXVlcnlFdmFsdWF0b3IqIGV2YWx1YXRvcikKK3sKKyAg
ICBib29sIG5vdGlmeTsKKyAgICBtX3F1ZXJ5LT5ldmFsdWF0ZShldmFsdWF0b3IsIG5vdGlmeSk7
CisgICAgaWYgKG5vdGlmeSkKKyAgICAgICAgbV9saXN0ZW5lci0+cXVlcnlDaGFuZ2VkKHN0YXRl
LCBtX3F1ZXJ5LmdldCgpKTsKK30KKworTWVkaWFRdWVyeU1hdGNoZXI6Ok1lZGlhUXVlcnlNYXRj
aGVyKERvY3VtZW50KiBkb2N1bWVudCkKKyAgICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCisgICAg
LCBtX2V2YWx1YXRpb25Sb3VuZCgwKQorICAgICwgbV90ZXJtaW5hdGVkKGZhbHNlKQoreworfQor
CitNZWRpYVF1ZXJ5TWF0Y2hlcjo6fk1lZGlhUXVlcnlNYXRjaGVyKCkKK3sKKyAgICBkZWxldGVB
bGxWYWx1ZXMobV9saXN0ZW5lcnMpOworfQorCit2b2lkIE1lZGlhUXVlcnlNYXRjaGVyOjp0ZXJt
aW5hdGUoKQoreworICAgIG1fdGVybWluYXRlZCA9IHRydWU7CisgICAgZGVsZXRlQWxsVmFsdWVz
KG1fbGlzdGVuZXJzKTsKKyAgICBtX2xpc3RlbmVycy5jbGVhcigpOworICAgIG1fZG9jdW1lbnQg
PSAwOworfQorCitTdHJpbmcgTWVkaWFRdWVyeU1hdGNoZXI6Om1lZGlhVHlwZSgpIGNvbnN0Cit7
CisgICAgaWYgKCFtX2RvY3VtZW50IHx8ICFtX2RvY3VtZW50LT5mcmFtZSgpIHx8ICFtX2RvY3Vt
ZW50LT5mcmFtZSgpLT52aWV3KCkpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKworICAgIHJl
dHVybiBtX2RvY3VtZW50LT5mcmFtZSgpLT52aWV3KCktPm1lZGlhVHlwZSgpOworfQorCitQYXNz
T3duUHRyPE1lZGlhUXVlcnlFdmFsdWF0b3I+IE1lZGlhUXVlcnlNYXRjaGVyOjpwcmVwYXJlRXZh
bHVhdG9yKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fZG9jdW1lbnQgfHwgIW1fZG9jdW1lbnQtPmZy
YW1lKCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gbV9k
b2N1bWVudC0+ZnJhbWUoKS0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50KQorICAgICAg
ICByZXR1cm4gMDsKKworICAgIEVsZW1lbnQqIGRvY3VtZW50RWxlbWVudCA9IGRvY3VtZW50LT5k
b2N1bWVudEVsZW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50RWxlbWVudCkKKyAgICAgICAgcmV0
dXJuIDA7CisKKyAgICBDU1NTdHlsZVNlbGVjdG9yKiBzdHlsZVNlbGVjdG9yID0gZG9jdW1lbnQt
PnN0eWxlU2VsZWN0b3IoKTsKKyAgICBpZiAoIXN0eWxlU2VsZWN0b3IpCisgICAgICAgIHJldHVy
biAwOworCisgICAgUmVmUHRyPFJlbmRlclN0eWxlPiByb290U3R5bGUgPSBzdHlsZVNlbGVjdG9y
LT5zdHlsZUZvckVsZW1lbnQoZG9jdW1lbnRFbGVtZW50LCAwIC8qZGVmYXVsdFBhcmVudCovLCBm
YWxzZSAvKmFsbG93U2hhcmluZyovLCB0cnVlIC8qcmVzb2x2ZUZvclJvb3REZWZhdWx0Ki8pOwor
CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBNZWRpYVF1ZXJ5RXZhbHVhdG9yKG1lZGlhVHlwZSgp
LCBtX2RvY3VtZW50LT5mcmFtZSgpLCByb290U3R5bGUuZ2V0KCkpKTsKK30KKworYm9vbCBNZWRp
YVF1ZXJ5TWF0Y2hlcjo6ZXZhbHVhdGUoTWVkaWFMaXN0KiBtZWRpYSkKK3sKKyAgICBpZiAoIW1l
ZGlhKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBPd25QdHI8TWVkaWFRdWVyeUV2YWx1
YXRvcj4gZXZhbHVhdG9yKHByZXBhcmVFdmFsdWF0b3IoKSk7CisgICAgcmV0dXJuIGV2YWx1YXRv
ciAmJiBldmFsdWF0b3ItPmV2YWwobWVkaWEpOworfQorCitQYXNzUmVmUHRyPE1lZGlhUXVlcnlM
aXN0PiBNZWRpYVF1ZXJ5TWF0Y2hlcjo6bWF0Y2hNZWRpYShjb25zdCBTdHJpbmcmIHF1ZXJ5KQor
eworICAgIGlmIChtX3Rlcm1pbmF0ZWQpCisgICAgICAgIHJldHVybiAwOworCisgICAgUmVmUHRy
PE1lZGlhTGlzdD4gbWVkaWEgPSBNZWRpYUxpc3Q6OmNyZWF0ZShxdWVyeSwgZmFsc2UpOworICAg
IHJldHVybiBNZWRpYVF1ZXJ5TGlzdDo6Y3JlYXRlKHRoaXMsIG1lZGlhLCBldmFsdWF0ZShtZWRp
YS5nZXQoKSkpOworfQorCit2b2lkIE1lZGlhUXVlcnlNYXRjaGVyOjphZGRMaXN0ZW5lcihQYXNz
UmVmUHRyPE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+IGxpc3RlbmVyLCBQYXNzUmVmUHRyPE1lZGlh
UXVlcnlMaXN0PiBxdWVyeSkKK3sKKyAgICBpZiAobV90ZXJtaW5hdGVkIHx8ICFtX2RvY3VtZW50
IHx8ICFtX2RvY3VtZW50LT5mcmFtZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBTY3JpcHRT
dGF0ZSogZXhlYyA9IG1haW5Xb3JsZFNjcmlwdFN0YXRlKG1fZG9jdW1lbnQtPmZyYW1lKCkpOwor
ICAgIGlmICghZXhlYykKKyAgICAgICAgcmV0dXJuOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBtX2xpc3RlbmVycy5zaXplKCk7ICsraSkgeworICAgICAgICBpZiAobV9saXN0ZW5lcnNb
aV0tPmxpc3RlbmVyKCktPmlzRXF1YWxUbyhleGVjLCBsaXN0ZW5lci5nZXQoKSkgJiYgbV9saXN0
ZW5lcnNbaV0tPnF1ZXJ5KCkgPT0gcXVlcnkuZ2V0KCkpCisgICAgICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgbV9saXN0ZW5lcnMuYXBwZW5kKG5ldyBMaXN0ZW5lcihsaXN0ZW5lciwgcXVl
cnkpKTsKK30KKwordm9pZCBNZWRpYVF1ZXJ5TWF0Y2hlcjo6cmVtb3ZlTGlzdGVuZXIoUGFzc1Jl
ZlB0cjxNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyPiBsaXN0ZW5lciwgUGFzc1JlZlB0cjxNZWRpYVF1
ZXJ5TGlzdD4gcXVlcnkpCit7CisgICAgaWYgKG1fdGVybWluYXRlZCB8fCAhbV9kb2N1bWVudCB8
fCAhbV9kb2N1bWVudC0+ZnJhbWUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgU2NyaXB0U3Rh
dGUqIGV4ZWMgPSBtYWluV29ybGRTY3JpcHRTdGF0ZShtX2RvY3VtZW50LT5mcmFtZSgpKTsKKyAg
ICBpZiAoIWV4ZWMpCisgICAgICAgIHJldHVybjsKKworICAgIGZvciAoaW50IGkgPSBtX2xpc3Rl
bmVycy5zaXplKCkgLSAxOyBpID49IDA7IC0taSkgeworICAgICAgICBpZiAobV9saXN0ZW5lcnNb
aV0tPmxpc3RlbmVyKCktPmlzRXF1YWxUbyhleGVjLCBsaXN0ZW5lci5nZXQoKSkgJiYgbV9saXN0
ZW5lcnNbaV0tPnF1ZXJ5KCkgPT0gcXVlcnkuZ2V0KCkpIHsKKyAgICAgICAgICAgIGRlbGV0ZSBt
X2xpc3RlbmVyc1tpXTsKKyAgICAgICAgICAgIG1fbGlzdGVuZXJzLnJlbW92ZShpKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCBNZWRpYVF1ZXJ5TWF0
Y2hlcjo6ZXZhbHVhdGUoKQoreworICAgIEFTU0VSVCghbV90ZXJtaW5hdGVkKTsKKworICAgIFNj
cmlwdFN0YXRlKiBleGVjID0gbWFpbldvcmxkU2NyaXB0U3RhdGUobV9kb2N1bWVudC0+ZnJhbWUo
KSk7CisgICAgaWYgKCFleGVjKQorICAgICAgICByZXR1cm47CisKKyAgICArK21fZXZhbHVhdGlv
blJvdW5kOworICAgIE93blB0cjxNZWRpYVF1ZXJ5RXZhbHVhdG9yPiBldmFsdWF0b3IgPSBwcmVw
YXJlRXZhbHVhdG9yKCk7CisgICAgaWYgKCFldmFsdWF0b3IpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9saXN0ZW5lcnMuc2l6ZSgpOyArK2kpCisgICAg
ICAgIG1fbGlzdGVuZXJzW2ldLT5ldmFsdWF0ZShleGVjLCBldmFsdWF0b3IuZ2V0KCkpOworfQor
Cit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TWF0Y2hlci5oIGIvV2ViQ29y
ZS9jc3MvTWVkaWFRdWVyeU1hdGNoZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi42YjlmOTFkCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeU1h
dGNoZXIuaApAQCAtMCwwICsxLDE0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tp
YSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IE1lZGlhUXVlcnlNYXRjaGVyX2gKKyNkZWZpbmUgTWVkaWFRdWVyeU1hdGNoZXJfaAorCisjaW5j
bHVkZSAiU2NyaXB0U3RhdGUuaCIKKworI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5j
bHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
RG9jdW1lbnQ7CitjbGFzcyBNZWRpYUxpc3Q7CitjbGFzcyBNZWRpYVF1ZXJ5TGlzdDsKK2NsYXNz
IE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI7CitjbGFzcyBNZWRpYVF1ZXJ5RXZhbHVhdG9yOworCisv
KgorICBNZWRpYVF1ZXJ5TWF0Y2hlciBjbGFzcyBpcyByZXNwb25zaWJsZSBmb3Iga2VlcGluZyBh
IHZlY3RvciBvZiBwYWlycworICBNZWRpYVF1ZXJ5TGlzdCB4IE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXIuIEl0IGlzIHJlc3BvbnNpYmxlIGZvciBldmFsdWF0aW5nIHRoZSBxdWVyaWVzCisgIHdoZW5l
dmVyIGl0IGlzIG5lZWRlZCBhbmQgdG8gY2FsbCB0aGUgbGlzdGVuZXJzIGlmIHRoZSBjb3JyZXNw
b25kaW5nIHF1ZXJ5IGhhcyBjaGFuZ2VkLgorICBUaGUgbGlzdGVuZXJzIG11c3QgYmUgY2FsbGVk
IGluIHRoZSB2ZXJ5IHNhbWUgb3JkZXIgaW4gd2hpY2ggdGhleSBoYXZlIGJlZW4gYWRkZWQuCisK
KyAgT2JqZWN0IGRpYWdyYW06CisKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgTWVkaWFRdWVyeUxpc3RMaXN0ZW5lcgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBeCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICBEb2N1bWVudCAtLS0tLS0tLT4g
IE1lZGlhUXVlcnlNYXRjaGVyIC0tLS0tLS0tLS0tLS0tLS0tLT4gIExpc3RlbmVyCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAg
ICAgIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICArLS0tLS0tICBNZWRpYVF1ZXJ5TGlzdCAgPC0tLS0tLS0tLSsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgSlNNZWRpYVF1ZXJ5TGlzdAorCisgICogQWxsIGFycm93cyBpbiB0aGlz
IGRpYWdyYW0sIGV4Y2VwdCB0aGUgb25lIGJldHdlZW4gTWVkaWFRdWVyeU1hdGNoZXIgYW5kIExp
c3RlbmVyLAorICAgIGFyZSBSZWZQdHI8Pi4KKworICBPYmplY3RzIGxpZmVjeWNsZToKKworICBO
byByZWZlcmVuY2UgdG8gTWVkaWFRdWVyeUxpc3QgaW5zdGFuY2VzIGlzIGtlcHQgYnkgY2xhc3Mg
TWVkaWFRdWVyeU1hdGNoZXIgaXRzZWxmLiBUaGUgcmVhc29uCisgIGlzIHRoYXQgaWYgTWVkaWFR
dWVyeUxpc3Q6OmFkZExpc3RlbmVyIGlzIG5vdCBjYWxsZWQgdGhlIG9ubHkgcmVmZXJlbmNlIHRv
IHRoZSBNZWRpYVF1ZXJ5TGlzdAorICBvYmplY3Qgd2lsbCBiZSBpbiBKYXZhc2NyaXB0IGFuZCBp
dCB3aWxsIGJlIGRlc3Ryb3llZCBhcyBzb29uIGFzIHRoZSBKUyBvYmplY3QgaXMgZ2FyYmFnZQor
ICBjb2xsZWN0ZWQuCisKKyAgQ2xhc3MgTWVkaWFRdWVyeUxpc3QgZG9lcyBub3Qga2VlcCBhIGxp
c3Qgb2YgTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci4gSXQgY2FsbHMKKyAgTWVkaWFRdWVyeU1hdGNo
ZXI6OmFkZExpc3RlbmVyIGV2ZXJ5IHRpbWUgaXRzIGFkZExpc3RlbmVyIG1ldGhvZCBpcyBjYWxs
ZWQsIHBhc3NpbmcgdGhlCisgIHJlY2VpdmVkIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIgb2JqZWN0
IGFuZCBpdHNlbGYuIE1lZGlhUXVlcnlNYXRjaGVyOjphZGRMaXN0ZW5lciB3aWxsCisgIHRoZW4g
YXBwZW5kIGEgbmV3IE1lZGlhUXVlcnlNYXRjaGVyOjpMaXN0ZW5lciB0byBpdHMgaW50ZXJuYWwg
dmVjdG9yLCBpZiB0aGUgcGFpcgorICBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIHggTWVkaWFRdWVy
eUxpc3QgaXMgbm90IGR1cGxpY2F0ZWQuCisKKyAgVGhpcyBuZXcgTGlzdGVuZXIgb2JqZWN0IGhh
cyBhIHJlZmVyZW5jZSB0byB0aGUgTWVkaWFRdWVyeUxpc3Qgb2JqZWN0LCB0aGF0IHdpbGwga2Vl
cAorICBpdCBhbGl2ZSB0byBiZSBwYXNzZWQgdG8gdGhlIGNhbGxiYWNrLiBJZiBhbGwgbGlzdGVu
ZXJzIGFyZSByZW1vdmVkIGZyb20gdGhhdAorICBNZWRpYVF1ZXJ5TGlzdCBvYmplY3QsIGFsbCBM
aXN0ZW5lciBpbnN0YW5jZXMgcG9pbnRpbmcgdG8gdGhhdCBNZWRpYVF1ZXJ5TGlzdCBvYmplY3Qg
d2lsbCBiZQorICBkZXN0cm95ZWQgYW5kIGFnYWluIHRoZSBvbmx5IHJlZmVyZW5jZSB0byB0aGUg
cXVlcnkgd2lsbCBiZSBpbiBKUy4KKworICBJdCBtYXkgYmUgdGhhdCBhIE1lZGlhUXVlcnlNYXRj
aGVyIGluc3RhbmNlIGhhcyBvbmUgb3IgbW9yZSBMaXN0ZW5lciBpbnN0YW5jZXMgcG9pbnRpbmcg
dG8gYQorICBNZWRpYVF1ZXJ5TGlzdCBhbmQgdGhpcyBNZWRpYVF1ZXJ5TGlzdCBoYXMgYSByZWZl
cmVuY2UgdG8gdGhhdCBzYW1lIE1lZGlhUXVlcnlNYXRjaGVyIGluc3RhbmNlLAorICBwcmV2ZW50
aW5nIHRoZW0gZnJvbSBiZWVuIGRlc3Ryb3llZCAodGhlIGN5Y2xlIGluIHRoZSBkaWFncmFtKS4g
VGhhdCBpcyB3aHkgdGhlCisgIE1lZGlhUXVlcnlNYXRjaGVyIG9iamVjdCBjYW5ub3QgYmUgb3du
ZWQgYnkgdGhlIERvY3VtZW50IGluc3RhbmNlIGFuZCBhbiBzcGVjaWFsIHRlcm1pbmF0aW9uCisg
IGhhbmRsaW5nIGlzIHJlcXVpcmVkLgorCisgIE1ldGhvZCBNZWRpYVF1ZXJ5TWF0Y2hlcjo6dGVy
bWluYXRlLCBjYWxsZWQgYnkgRG9jdW1lbnQganVzdCBiZWZvcmUgcmVsZWFzaW5nIHRoZQorICBN
ZWRpYVF1ZXJ5TWF0Y2hlciByZWZlcmVuY2UsIHdpbGwgcmVtb3ZlIGFsbCByZWZlcmVuY2VzIHRv
IE1lZGlhUXVlcnlMaXN0IG9iamVjdHMgaW4KKyAgTWVkaWFRdWVyeU1hdGNoZXIgYW5kIHdpbGwg
Z3VhcmFudGVlIHRoYXQgbm8gbmV3IG9uZSB3aWxsIGJlIGNyZWF0ZWQuIFRoZSBvbmx5IHJlZmVy
ZW5jZXMgdG8KKyAgTWVkaWFRdWVyeUxpc3Qgb2JqZWN0cyB3aWxsIGJlIGFnYWluIGluIEpTLiBB
bGwgTWVkaWFRdWVyeUxpc3Qgb2JqZWN0cyB3aWxsIGJlIGRlc3Ryb3llZCBhcyBzb29uCisgIGFz
IHRoZWlyIGNvcnJlc3BvbmRpbmcgSlMgb2JqZWN0cyBnZXQgZ2FyYmFnZSBjb2xsZWN0ZWQgYW5k
IE1lZGlhUXVlcnlNYXRjaGVyIHdpbGwgZGllIGFzIHNvb24KKyAgYXMgdGhlIGxhc3QgTWVkaWFR
dWVyeUxpc3Qgb2JqZWN0IGRpZXMuCisqLworY2xhc3MgTWVkaWFRdWVyeU1hdGNoZXIgOiBwdWJs
aWMgUmVmQ291bnRlZDxNZWRpYVF1ZXJ5TWF0Y2hlcj4geworcHVibGljOgorICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPE1lZGlhUXVlcnlNYXRjaGVyPiBjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KSB7
IHJldHVybiBhZG9wdFJlZihuZXcgTWVkaWFRdWVyeU1hdGNoZXIoZG9jdW1lbnQpKTsgfQorICAg
IH5NZWRpYVF1ZXJ5TWF0Y2hlcigpOworICAgIHZvaWQgdGVybWluYXRlKCk7CisKKyAgICB2b2lk
IGFkZExpc3RlbmVyKFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4sIFBhc3NSZWZQ
dHI8TWVkaWFRdWVyeUxpc3Q+KTsKKyAgICB2b2lkIHJlbW92ZUxpc3RlbmVyKFBhc3NSZWZQdHI8
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4sIFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3Q+KTsKKwor
ICAgIFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3Q+IG1hdGNoTWVkaWEoY29uc3QgU3RyaW5nJik7
CisKKyAgICBpbnQgZXZhbHVhdGlvblJvdW5kKCkgY29uc3QgeyByZXR1cm4gbV9ldmFsdWF0aW9u
Um91bmQ7IH0KKyAgICB2b2lkIGV2YWx1YXRlKCk7CisgICAgYm9vbCBldmFsdWF0ZShNZWRpYUxp
c3QqKTsKKworcHJpdmF0ZToKKyAgICBjbGFzcyBMaXN0ZW5lciB7CisgICAgcHVibGljOgorICAg
ICAgICBMaXN0ZW5lcihQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+LCBQYXNzUmVm
UHRyPE1lZGlhUXVlcnlMaXN0Pik7CisgICAgICAgIH5MaXN0ZW5lcigpOworCisgICAgICAgIHZv
aWQgZXZhbHVhdGUoU2NyaXB0U3RhdGUqLCBNZWRpYVF1ZXJ5RXZhbHVhdG9yKik7CisKKyAgICAg
ICAgTWVkaWFRdWVyeUxpc3RMaXN0ZW5lciogbGlzdGVuZXIoKSB7IHJldHVybiBtX2xpc3RlbmVy
LmdldCgpOyB9CisgICAgICAgIE1lZGlhUXVlcnlMaXN0KiBxdWVyeSgpIHsgcmV0dXJuIG1fcXVl
cnkuZ2V0KCk7IH0KKworICAgIHByaXZhdGU6CisgICAgICAgIFJlZlB0cjxNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyPiBtX2xpc3RlbmVyOworICAgICAgICBSZWZQdHI8TWVkaWFRdWVyeUxpc3Q+IG1f
cXVlcnk7CisgICAgfTsKKworICAgIE1lZGlhUXVlcnlNYXRjaGVyKERvY3VtZW50Kik7CisgICAg
UGFzc093blB0cjxNZWRpYVF1ZXJ5RXZhbHVhdG9yPiBwcmVwYXJlRXZhbHVhdG9yKCkgY29uc3Q7
CisgICAgU3RyaW5nIG1lZGlhVHlwZSgpIGNvbnN0OworCisgICAgRG9jdW1lbnQqIG1fZG9jdW1l
bnQ7CisgICAgVmVjdG9yPExpc3RlbmVyKj4gbV9saXN0ZW5lcnM7CisgICAgaW50IG1fZXZhbHVh
dGlvblJvdW5kOyAvLyBUaGlzIHZhbHVlIGlzIGluY3JlbWVudGVkIGF0IHN0eWxlIHNlbGVjdG9y
IGNoYW5nZXMuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJdCBpcyB1c2VkIHRvIGF2
b2lkIGV2YWx1YXRpbmcgcXVlcmllcyBtb3JlIHRoZW4gb25jZQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gYW5kIHRvIGF2b2lkIG5vdGlmaW5nIGEgY2hhbmdlIG1vcmUgdGhlbiBvbmNl
LgorICAgIGJvb2wgbV90ZXJtaW5hdGVkOworfTsKKworfQorCisjZW5kaWYgLy8gTWVkaWFRdWVy
eU1hdGNoZXJfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDlhOTIzZjQuLmVkZmI0YjggMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAg
LTYsNiArNiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIw
MDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChD
KSAyMDA4LCAyMDA5IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIChodHRw
Oi8vd3d3LnRvcmNobW9iaWxlLmNvbS8pCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDkgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tp
YSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICAqCiAgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYwpAQCAtOTEsNiArOTIsOCBAQAogI2luY2x1ZGUgIkluc3BlY3RvclRpbWVsaW5lQWdlbnQu
aCIKICNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2lu
Y2x1ZGUgIk1lZGlhUXVlcnlMaXN0LmgiCisjaW5jbHVkZSAiTWVkaWFRdWVyeU1hdGNoZXIuaCIK
ICNpbmNsdWRlICJNZXNzYWdlRXZlbnQuaCIKICNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCiAjaW5j
bHVkZSAiTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cy5oIgpAQCAtNTY0LDYgKzU2NywxNiBA
QCBEb2N1bWVudDo6fkRvY3VtZW50KCkKICAgICAgICAgbV9zdHlsZVNoZWV0cy0+ZG9jdW1lbnRE
ZXN0cm95ZWQoKTsKIAogICAgIG1fd2Vha1JlZmVyZW5jZS0+Y2xlYXIoKTsKKworICAgIGlmICht
X21lZGlhUXVlcnlNYXRjaGVyKQorICAgICAgICBtX21lZGlhUXVlcnlNYXRjaGVyLT50ZXJtaW5h
dGUoKTsKK30KKworUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdD4gRG9jdW1lbnQ6Om1hdGNoTWVk
aWEoY29uc3QgU3RyaW5nJiBtZWRpYSkKK3sKKyAgICBpZiAoIW1fbWVkaWFRdWVyeU1hdGNoZXIp
CisgICAgICAgIG1fbWVkaWFRdWVyeU1hdGNoZXIgPSBNZWRpYVF1ZXJ5TWF0Y2hlcjo6Y3JlYXRl
KHRoaXMpOworICAgIHJldHVybiBtX21lZGlhUXVlcnlNYXRjaGVyLT5tYXRjaE1lZGlhKG1lZGlh
KTsKIH0KIAogI2lmIFVTRShKU0MpCkBAIC0yODM3LDYgKzI4NTAsOSBAQCB2b2lkIERvY3VtZW50
OjpzdHlsZVNlbGVjdG9yQ2hhbmdlZChTdHlsZVNlbGVjdG9yVXBkYXRlRmxhZyB1cGRhdGVGbGFn
KQogICAgICAgICBpZiAodmlldygpKQogICAgICAgICAgICAgdmlldygpLT5zY2hlZHVsZVJlbGF5
b3V0KCk7CiAgICAgfQorCisgICAgaWYgKG1fbWVkaWFRdWVyeU1hdGNoZXIpCisgICAgICAgIG1f
bWVkaWFRdWVyeU1hdGNoZXItPmV2YWx1YXRlKCk7CiB9CiAKIHZvaWQgRG9jdW1lbnQ6OmFkZFN0
eWxlU2hlZXRDYW5kaWRhdGVOb2RlKE5vZGUqIG5vZGUsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmgKaW5kZXggZmExNGUzZC4uODVkZDcxMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC01LDYgKzUsNyBAQAogICogICAg
ICAgICAgIChDKSAyMDA2IEFsZXhleSBQcm9za3VyeWFrb3YgKGFwQHdlYmtpdC5vcmcpCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5
IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIChodHRwOi8vd3d3LnRvcmNo
bW9iaWxlLmNvbS8pCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5k
L29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTkzLDYgKzk0
LDggQEAgY2xhc3MgSW50UG9pbnQ7CiBjbGFzcyBET01XcmFwcGVyV29ybGQ7CiBjbGFzcyBKU05v
ZGU7CiBjbGFzcyBNZWRpYUNhblN0YXJ0TGlzdGVuZXI7CitjbGFzcyBNZWRpYVF1ZXJ5TGlzdDsK
K2NsYXNzIE1lZGlhUXVlcnlNYXRjaGVyOwogY2xhc3MgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVz
dWx0czsKIGNsYXNzIE5vZGVGaWx0ZXI7CiBjbGFzcyBOb2RlSXRlcmF0b3I7CkBAIC0xOTcsNiAr
MjAwLDggQEAgcHVibGljOgogICAgIH0KICAgICB2aXJ0dWFsIH5Eb2N1bWVudCgpOwogCisgICAg
UGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdD4gbWF0Y2hNZWRpYShjb25zdCBTdHJpbmcmKTsKKwog
ICAgIHVzaW5nIENvbnRhaW5lck5vZGU6OnJlZjsKICAgICB1c2luZyBDb250YWluZXJOb2RlOjpk
ZXJlZjsKIApAQCAtMTMyMSw2ICsxMzI2LDggQEAgcHJpdmF0ZToKICAgICBpbnQgbV9sb2FkRXZl
bnREZWxheUNvdW50OwogCiAgICAgVmlld3BvcnRBcmd1bWVudHMgbV92aWV3cG9ydEFyZ3VtZW50
czsKKworICAgIFJlZlB0cjxNZWRpYVF1ZXJ5TWF0Y2hlcj4gbV9tZWRpYVF1ZXJ5TWF0Y2hlcjsK
IH07CiAKIGlubGluZSBib29sIERvY3VtZW50OjpoYXNFbGVtZW50V2l0aElkKEF0b21pY1N0cmlu
Z0ltcGwqIGlkKSBjb25zdApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAg
Yi9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCAzNDNjYTJjLi4yZmFhOGExIDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIw
MDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC02NSw3ICs2Niw3IEBACiAjaW5jbHVkZSAi
SW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oIgogI2luY2x1ZGUgIktVUkwuaCIKICNpbmNsdWRlICJM
b2NhdGlvbi5oIgotI2luY2x1ZGUgIlN0eWxlTWVkaWEuaCIKKyNpbmNsdWRlICJNZWRpYVF1ZXJ5
TGlzdC5oIgogI2luY2x1ZGUgIk1lc3NhZ2VFdmVudC5oIgogI2luY2x1ZGUgIk5hdmlnYXRvci5o
IgogI2luY2x1ZGUgIk5vdGlmaWNhdGlvbkNlbnRlci5oIgpAQCAtODEsNiArODIsNyBAQAogI2lu
Y2x1ZGUgIlN0b3JhZ2UuaCIKICNpbmNsdWRlICJTdG9yYWdlQXJlYS5oIgogI2luY2x1ZGUgIlN0
b3JhZ2VOYW1lc3BhY2UuaCIKKyNpbmNsdWRlICJTdHlsZU1lZGlhLmgiCiAjaW5jbHVkZSAiU3Vk
ZGVuVGVybWluYXRpb24uaCIKICNpbmNsdWRlICJXZWJLaXRQb2ludC5oIgogI2luY2x1ZGUgPGFs
Z29yaXRobT4KQEAgLTQwOSw2ICs0MTEsMTEgQEAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogRE9N
V2luZG93OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QKICAgICByZXR1cm4gZG9jdW1l
bnQoKTsKIH0KIAorUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdD4gRE9NV2luZG93OjptYXRjaE1l
ZGlhKGNvbnN0IFN0cmluZyYgbWVkaWEpCit7CisgICAgcmV0dXJuIGRvY3VtZW50KCkgPyBkb2N1
bWVudCgpLT5tYXRjaE1lZGlhKG1lZGlhKSA6IDA7Cit9CisKIHZvaWQgRE9NV2luZG93OjpkaXNj
b25uZWN0RnJhbWUoKQogewogICAgIG1fZnJhbWUgPSAwOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5oIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCmluZGV4IDZmZDM3NzUu
LjFhODY5NjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAorKysgYi9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChD
KSAyMDA2LCAyMDA3LCAyMDA5IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5
KC1pZXMpCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU5LDEwICs2MCwxMSBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgSURCRmFjdG9yeTsKICAgICBjbGFzcyBJ
bnNwZWN0b3JUaW1lbGluZUFnZW50OwogICAgIGNsYXNzIExvY2F0aW9uOwotICAgIGNsYXNzIFN0
eWxlTWVkaWE7CisgICAgY2xhc3MgTWVkaWFRdWVyeUxpc3Q7CiAgICAgY2xhc3MgTmF2aWdhdG9y
OwogICAgIGNsYXNzIE5vZGU7CiAgICAgY2xhc3MgTm90aWZpY2F0aW9uQ2VudGVyOworICAgIGNs
YXNzIFN0eWxlTWVkaWE7CiAKICNpZiBFTkFCTEUoV0VCX1RJTUlORykKICAgICBjbGFzcyBQZXJm
b3JtYW5jZTsKQEAgLTk4LDYgKzEwMCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAg
ICB2b2lkIGNsZWFyKCk7CiAKKyAgICAgICAgUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdD4gbWF0
Y2hNZWRpYShjb25zdCBTdHJpbmcmKTsKKwogI2lmIEVOQUJMRShPUklFTlRBVElPTl9FVkVOVFMp
CiAgICAgICAgIC8vIFRoaXMgaXMgdGhlIGludGVyZmFjZSBvcmllbnRhdGlvbiBpbiBkZWdyZWVz
LiBTb21lIGV4YW1wbGVzIGFyZToKICAgICAgICAgLy8gIDAgaXMgc3RyYWlnaHQgdXA7IC05MCBp
cyB3aGVuIHRoZSBkZXZpY2UgaXMgcm90YXRlZCA5MCBjbG9ja3dpc2U7CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbCBiL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCmlu
ZGV4IDhjYWM4NzkuLmUxMTUwOTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cu
aWRsCisrKyBiL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCkBAIC0xNDEsNyArMTQxLDggQEAg
bW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBEb2N1bWVudCBkb2N1
bWVudDsKIAogICAgICAgICAvLyBDU1NPTSBWaWV3IE1vZHVsZQotICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgU3R5bGVNZWRpYSBzdHlsZU1lZGlhOworICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgU3R5bGVNZWRpYSBzdHlsZU1lZGlhOyAvLyBGSVhNRTogZGVwcmVjYXRlZAorICAgICAgICBN
ZWRpYVF1ZXJ5TGlzdCBtYXRjaE1lZGlhKGluIERPTVN0cmluZyBxdWVyeSk7CiAKICAgICAgICAg
Ly8gRE9NIExldmVsIDIgU3R5bGUgSW50ZXJmYWNlCiAgICAgICAgIENTU1N0eWxlRGVjbGFyYXRp
b24gZ2V0Q29tcHV0ZWRTdHlsZShpbiBFbGVtZW50IGVsZW1lbnQsCi0tIAoxLjcuMi4yCgo=
</data>
<flag name="review"
          id="58979"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71215</attachid>
            <date>2010-10-19 15:59:47 -0700</date>
            <delta_ts>2010-10-21 17:28:25 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-Implement-CSSOM-View-matchMedia-interface.patch</filename>
            <type>text/plain</type>
            <size>86088</size>
            <attacher name="Luiz Agostini">luiz</attacher>
            
              <data encoding="base64">RnJvbSBiODI3ZWQ1NWE2NmM0YzFlZWQzMDUxMmY1YmJiZjEzYzUzYjc0MmRkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWl6IEFnb3N0aW5pIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IFRodSwgMzAgU2VwIDIwMTAgMDE6MzQ6MjAgLTAzMDAKU3ViamVjdDogW1BB
VENIXSBJbXBsZW1lbnQgQ1NTT00gVmlldyBtYXRjaE1lZGlhIGludGVyZmFjZQogaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3MjA1CgpSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KCldlYkNvcmU6CgpOZXcgaW50ZXJmYWNlcyBtYXkgYmUgdXNlZCB0byBldmFsdWF0
ZSBtZWRpYSBxdWVyaWVzIGFuZCB0byBhc3NvY2lhdGUgbGlzdGVuZXJzCnRvIG1lZGlhIHF1ZXJp
ZXMuIFRob3NlIGxpc3RlbmVycyBhcmUgY2FsbGVkIHdoZW5ldmVyIHRoZSBhc3NvY2lhdGVkIHF1
ZXJ5IGNoYW5nZXMuClNwZWNpZmljYXRpb24gbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9kZXYudzMu
b3JnL2Nzc3dnL2Nzc29tLXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2UKCk5ldyBp
bnRlcmZhY2VzOgoKKiBjc3MvTWVkaWFRdWVyeUxpc3QuaWRsOiBBZGRlZC4KKiBjc3MvTWVkaWFR
dWVyeUxpc3RMaXN0ZW5lci5pZGw6IEFkZGVkLgoKKiBjc3MvTWVkaWFRdWVyeUxpc3QuY3BwOiBB
ZGRlZC4KKFdlYkNvcmU6Ok1lZGlhUXVlcnlMaXN0OjpjcmVhdGUpOgooV2ViQ29yZTo6TWVkaWFR
dWVyeUxpc3Q6Ok1lZGlhUXVlcnlMaXN0KToKKFdlYkNvcmU6Ok1lZGlhUXVlcnlMaXN0Ojp+TWVk
aWFRdWVyeUxpc3QpOgooV2ViQ29yZTo6TWVkaWFRdWVyeUxpc3Q6Om1lZGlhKToKKFdlYkNvcmU6
Ok1lZGlhUXVlcnlMaXN0OjphZGRMaXN0ZW5lcik6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdDo6
cmVtb3ZlTGlzdGVuZXIpOgooV2ViQ29yZTo6TWVkaWFRdWVyeUxpc3Q6OmV2YWx1YXRlKToKKFdl
YkNvcmU6Ok1lZGlhUXVlcnlMaXN0OjpzZXRNYXRjaGVzKToKKFdlYkNvcmU6Ok1lZGlhUXVlcnlM
aXN0OjptYXRjaGVzKToKKiBjc3MvTWVkaWFRdWVyeUxpc3QuaDogQWRkZWQuCgoqIGNzcy9NZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyLmNwcDogQWRkZWQuCihXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyOjpxdWVyeUNoYW5nZWQpOgooV2ViQ29yZTo6TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6
aXNFcXVhbFRvKToKKiBjc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oOiBBZGRlZC4KKFdlYkNv
cmU6Ok1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OmNyZWF0ZSk6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyOjpNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKToKClRvIGF2b2lkIGFkZGluZyBj
b2RlIHRvIGNsYXNzZXMgRE9NV2luZG93IGFuZCBEb2N1bWVudCBhIG5ldyBjbGFzcyBNZWRpYVF1
ZXJ5TWF0Y2hlciB3YXMKY3JlYXRlZC4KCiogY3NzL01lZGlhUXVlcnlNYXRjaGVyLmNwcDogQWRk
ZWQuCihXZWJDb3JlOjpNZWRpYVF1ZXJ5TWF0Y2hlcjo6TGlzdGVuZXI6Okxpc3RlbmVyKToKKFdl
YkNvcmU6Ok1lZGlhUXVlcnlNYXRjaGVyOjpMaXN0ZW5lcjo6fkxpc3RlbmVyKToKKFdlYkNvcmU6
Ok1lZGlhUXVlcnlNYXRjaGVyOjpMaXN0ZW5lcjo6ZXZhbHVhdGUpOgooV2ViQ29yZTo6TWVkaWFR
dWVyeU1hdGNoZXI6Ok1lZGlhUXVlcnlNYXRjaGVyKToKKFdlYkNvcmU6Ok1lZGlhUXVlcnlNYXRj
aGVyOjp+TWVkaWFRdWVyeU1hdGNoZXIpOgooV2ViQ29yZTo6TWVkaWFRdWVyeU1hdGNoZXI6OnRl
cm1pbmF0ZSk6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5TWF0Y2hlcjo6bWVkaWFUeXBlKToKKFdlYkNv
cmU6Ok1lZGlhUXVlcnlNYXRjaGVyOjpwcmVwYXJlRXZhbHVhdG9yKToKKFdlYkNvcmU6Ok1lZGlh
UXVlcnlNYXRjaGVyOjpldmFsdWF0ZSk6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5TWF0Y2hlcjo6bWF0
Y2hNZWRpYSk6CihXZWJDb3JlOjpNZWRpYVF1ZXJ5TWF0Y2hlcjo6YWRkTGlzdGVuZXIpOgooV2Vi
Q29yZTo6TWVkaWFRdWVyeU1hdGNoZXI6OnJlbW92ZUxpc3RlbmVyKToKKiBjc3MvTWVkaWFRdWVy
eU1hdGNoZXIuaDogQWRkZWQuCihXZWJDb3JlOjpNZWRpYVF1ZXJ5TWF0Y2hlcjo6Y3JlYXRlKToK
KFdlYkNvcmU6Ok1lZGlhUXVlcnlNYXRjaGVyOjpldmFsdWF0aW9uUm91bmQpOgooV2ViQ29yZTo6
TWVkaWFRdWVyeU1hdGNoZXI6Okxpc3RlbmVyOjpsaXN0ZW5lcik6CihXZWJDb3JlOjpNZWRpYVF1
ZXJ5TWF0Y2hlcjo6TGlzdGVuZXI6OnF1ZXJ5KToKCkRvY3VtZW50IGFuZCBET01XaW5kb3cgaGF2
ZSBjaGFuZ2VkIHRvIHN1cHBvcnQgbmV3IGZlYXR1cmVzLiBET01XaW5kb3cgaXMgdGhlIGNsYXNz
IHRoYXQKcHVibGlzaGVzIG1ldGhvZHMgbWF0Y2hNZWRpYSBidXQgZm9yIHBhZ2UgY2FjaGUgdG8g
d29yayBwcm9wZXJseSAgdGhlIHJlZmVyZW5jZSB0byB0aGUKCiogZG9tL0RvY3VtZW50LmNwcDoK
KFdlYkNvcmU6OkRvY3VtZW50Ojp+RG9jdW1lbnQpOgooV2ViQ29yZTo6RG9jdW1lbnQ6Om1hdGNo
TWVkaWEpOgooV2ViQ29yZTo6RG9jdW1lbnQ6OnN0eWxlU2VsZWN0b3JDaGFuZ2VkKToKKiBkb20v
RG9jdW1lbnQuaDoKKiBwYWdlL0RPTVdpbmRvdy5jcHA6CihXZWJDb3JlOjpET01XaW5kb3c6Om1h
dGNoTWVkaWEpOgoqIHBhZ2UvRE9NV2luZG93Lmg6CiogcGFnZS9ET01XaW5kb3cuaWRsOgoKU29t
ZSBhZGp1c3RtZW50cyB0byBjb2RlIGdlbmVyYXRvcnM6CgoqIGJpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckdPYmplY3QucG06CiogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG06CiogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06CgpidWlsZCBzeXN0ZW06
CgoqIERlcml2ZWRTb3VyY2VzLm1ha2U6CiogR05VbWFrZWZpbGUuYW06CiogV2ViQ29yZS5neXBp
OgoqIFdlYkNvcmUucHJpOgoqIFdlYkNvcmUucHJvOgoqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qOgoqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKiBiaW5kaW5ncy9n
b2JqZWN0L0dOVW1ha2VmaWxlLmFtOgoKVGVzdHM6IGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlz
dC0wMS5odG1sCiAgICAgICBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDIuaHRtbAogICAg
ICAgZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAzLmh0bWwKICAgICAgIGZhc3QvbWVkaWEv
bWVkaWEtcXVlcnktbGlzdC0wNC5odG1sCgpMYXlvdXRUZXN0czoKCk5ldyBwcm9wZXJ0eSBtYXRj
aE1lZGlhIHdhcyBhZGRlZCB0byB3aW5kb3cuCgoqIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJv
cGVydGllcy1leHBlY3RlZC50eHQ6CiogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1k
ZXNjcmlwdG9ycy1leHBlY3RlZC50eHQ6Cgp3aW5kb3cubWF0Y2hNZWRpYSBhbmQgTWVkaWFRdWVy
eUxpc3QgdGVzdHMuCgoqIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMS1leHBlY3RlZC50
eHQ6IEFkZGVkLgoqIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMS5odG1sOiBBZGRlZC4K
ClRoZSBmb2xsb3dpbmcgdGVzdHMgZGVwZW5kIG9uIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRW
aWV3TW9kZU1lZGlhRmVhdHVyZSgpIHRvIHdvcmsuCkFzIGl0IGlzIG9ubHkgaW1wbGVtZW50ZWQg
YnkgUXQgYW5kIEd0ayB0aGUgdGVzdHMgbmVlZGVkIHRvIGJlIHNraXBwZWQgaW4gYWxsIG90aGVy
IHBsYXRmb3Jtcy4KCiogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAyLWV4cGVjdGVkLnR4
dDogQWRkZWQuCiogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAyLmh0bWw6IEFkZGVkLgoq
IGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMy1leHBlY3RlZC50eHQ6IEFkZGVkLgoqIGZh
c3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMy5odG1sOiBBZGRlZC4KKiBmYXN0L21lZGlhL21l
ZGlhLXF1ZXJ5LWxpc3QtMDQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKiBmYXN0L21lZGlhL21lZGlh
LXF1ZXJ5LWxpc3QtMDQuaHRtbDogQWRkZWQuCiogcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBl
Y3RhdGlvbnMudHh0OgoqIHBsYXRmb3JtL21hYy9Ta2lwcGVkOgoqIHBsYXRmb3JtL3dpbi9Ta2lw
cGVkOgotLS0KIExheW91dFRlc3RzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgICAzMCArKysrCiAuLi4vZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4
cGVjdGVkLnR4dCB8ICAgIDEgKwogLi4uL3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy1leHBl
Y3RlZC50eHQgICAgICAgfCAgICAxICsKIC4uLi9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3Qt
MDEtZXhwZWN0ZWQudHh0ICAgIHwgICAxNSArKwogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRp
YS1xdWVyeS1saXN0LTAxLmh0bWwgICAgfCAgIDUyICsrKysrKwogLi4uL2Zhc3QvbWVkaWEvbWVk
aWEtcXVlcnktbGlzdC0wMi1leHBlY3RlZC50eHQgICAgfCAgIDI1ICsrKwogTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAyLmh0bWwgICAgfCAgIDYxICsrKysrKysKIC4u
Li9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMtZXhwZWN0ZWQudHh0ICAgIHwgICA0MSAr
KysrKwogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAzLmh0bWwgICAg
fCAgIDcwICsrKysrKysrCiAuLi4vZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA0LWV4cGVj
dGVkLnR4dCAgICB8ICAgMjUgKysrCiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5
LWxpc3QtMDQuaHRtbCAgICB8ICAgNzUgKysrKysrKysrCiAuLi4vcGxhdGZvcm0vY2hyb21pdW0v
dGVzdF9leHBlY3RhdGlvbnMudHh0ICAgICAgICB8ICAgIDUgKy0KIExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9Ta2lwcGVkICAgICAgICAgICAgICAgICAgIHwgICAgNSArLQogTGF5b3V0VGVzdHMv
cGxhdGZvcm0vd2luL1NraXBwZWQgICAgICAgICAgICAgICAgICAgfCAgICA1ICstCiBXZWJDb3Jl
L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgOTIgKysrKysr
KysrKwogV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlICAgICAgICAgICAgICAgICAgICAgICAg
fCAgICA0ICstCiBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgMTAgKy0KIFdlYkNvcmUvV2ViQ29yZS5neXBpICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgICAgOSArLQogV2ViQ29yZS9XZWJDb3JlLnByaSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgICAxICsKIFdlYkNvcmUvV2ViQ29yZS5wcm8gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAgOCArLQogV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvaiAgICAgICAgICAgICAgfCAgIDgwICsrKysrKysrKwogV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogICAgICAgICAgfCAgIDM2ICsrKysKIFdlYkNvcmUv
YmluZGluZ3MvZ29iamVjdC9HTlVtYWtlZmlsZS5hbSAgICAgICAgICAgIHwgICAgMyArCiBXZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0gICB8ICAgMTkgKyst
CiBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtICAgICAgICB8ICAg
MTEgKysKIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0gICAgICAg
IHwgICAxMSArLQogV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3QuY3BwICAgICAgICAgICAgICAg
ICAgICAgfCAgIDk0ICsrKysrKysrKysrCiBXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdC5oICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgNzIgKysrKysrKysKIFdlYkNvcmUvY3NzL01lZGlhUXVl
cnlMaXN0LmlkbCAgICAgICAgICAgICAgICAgICAgIHwgICAzMyArKysrCiBXZWJDb3JlL2Nzcy9N
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcCAgICAgICAgICAgICB8ICAgNTUgKysrKysrCiBXZWJD
b3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggICAgICAgICAgICAgICB8ICAgNTggKysr
KysrKwogV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5pZGwgICAgICAgICAgICAg
fCAgIDM1ICsrKysKIFdlYkNvcmUvY3NzL01lZGlhUXVlcnlNYXRjaGVyLmNwcCAgICAgICAgICAg
ICAgICAgIHwgIDE3NCArKysrKysrKysrKysrKysrKysrKwogV2ViQ29yZS9jc3MvTWVkaWFRdWVy
eU1hdGNoZXIuaCAgICAgICAgICAgICAgICAgICAgfCAgIDk1ICsrKysrKysrKysrCiBXZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTYgKysKIFdl
YkNvcmUvZG9tL0RvY3VtZW50LmggICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNyAr
CiBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg
MTAgKy0KIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuaCAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwgICAgNiArLQogV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgICAzICsKIDM5IGZpbGVzIGNoYW5nZWQsIDEzMzkgaW5zZXJ0aW9ucygrKSwgMTQg
ZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9t
ZWRpYS1xdWVyeS1saXN0LTAxLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91
dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMS5odG1sCiBjcmVhdGUgbW9kZSAx
MDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAyLWV4cGVjdGVk
LnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVl
cnktbGlzdC0wMi5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YS9tZWRpYS1xdWVyeS1saXN0LTAzLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExh
eW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMy5odG1sCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA0LWV4cGVj
dGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEt
cXVlcnktbGlzdC0wNC5odG1sCiBtb2RlIGNoYW5nZSAxMDA2NDQgPT4gMTAwNzU1IFdlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3Jl
L2Nzcy9NZWRpYVF1ZXJ5TGlzdC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL2Nzcy9N
ZWRpYVF1ZXJ5TGlzdC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9jc3MvTWVkaWFRdWVy
eUxpc3QuaWRsCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3RM
aXN0ZW5lci5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyLmlkbAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvY3NzL01lZGlhUXVlcnlN
YXRjaGVyLmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvY3NzL01lZGlhUXVlcnlNYXRj
aGVyLmgKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggZTRmN2YwZS4uODgwM2M5YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisy
MDEwLTA5LTI5ICBMdWl6IEFnb3N0aW5pICA8bHVpei5hZ29zdGluaUBvcGVuYm9zc2Eub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVu
dCBDU1NPTSBWaWV3IG1hdGNoTWVkaWEgaW50ZXJmYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzIwNQorCisgICAgICAgIE5ldyBwcm9wZXJ0eSBt
YXRjaE1lZGlhIHdhcyBhZGRlZCB0byB3aW5kb3cuCisKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5k
b3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL1dp
bmRvdy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMtZXhwZWN0ZWQudHh0OgorCisgICAgICAg
IHdpbmRvdy5tYXRjaE1lZGlhIGFuZCBNZWRpYVF1ZXJ5TGlzdCB0ZXN0cy4KKworICAgICAgICAq
IGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMS5odG1sOiBBZGRlZC4KKworICAg
ICAgICBUaGUgZm9sbG93aW5nIHRlc3RzIGRlcGVuZCBvbiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6
c2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoKSB0byB3b3JrLgorICAgICAgICBBcyBpdCBpcyBvbmx5
IGltcGxlbWVudGVkIGJ5IFF0IGFuZCBHdGsgdGhlIHRlc3RzIG5lZWRlZCB0byBiZSBza2lwcGVk
IGluIGFsbCBvdGhlciBwbGF0Zm9ybXMuCisKKyAgICAgICAgKiBmYXN0L21lZGlhL21lZGlhLXF1
ZXJ5LWxpc3QtMDItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhL21l
ZGlhLXF1ZXJ5LWxpc3QtMDIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYS9tZWRp
YS1xdWVyeS1saXN0LTAzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRp
YS9tZWRpYS1xdWVyeS1saXN0LTAzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWEv
bWVkaWEtcXVlcnktbGlzdC0wNC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
bWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFj
L1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vd2luL1NraXBwZWQ6CisKIDIwMTAtMTAtMTgg
IEFudG9uaW8gR29tZXMgIDxhZ29tZXNAcmltLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBL
ZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CmluZGV4IDk2ZDY5
ZDQuLjhlN2FkZmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5k
b3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2lu
ZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dApAQCAtMjI4Niw2ICsyMjg2LDcgQEAg
d2luZG93LmxvY2F0aW9uYmFyLnZpc2libGUgW2Jvb2xlYW5dCiB3aW5kb3cubG9nIFtmdW5jdGlv
bl0KIHdpbmRvdy5sb2dQcm9wZXJ0aWVzIFtmdW5jdGlvbl0KIHdpbmRvdy5sb2dWYWx1ZSBbZnVu
Y3Rpb25dCit3aW5kb3cubWF0Y2hNZWRpYSBbZnVuY3Rpb25dCiB3aW5kb3cubWVudWJhciBbb2Jq
ZWN0IEJhckluZm9dCiB3aW5kb3cubWVudWJhci52aXNpYmxlIFtib29sZWFuXQogd2luZG93Lm1v
dmVCeSBbZnVuY3Rpb25dCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cv
d2luZG93LXByb3BlcnR5LWRlc2NyaXB0b3JzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMtZXhwZWN0ZWQudHh0Cmlu
ZGV4IGJiYmY0ZjcuLmEwOWMyNmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dp
bmRvdy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMtZXhwZWN0
ZWQudHh0CkBAIC01MDYsNiArNTA2LDcgQEAgUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKHdpbmRvdywgJ2dldE1hdGNoZWRDU1NSdWxlcycpIGlzIHVuZGVmaW5lZC4KIFBBU1Mg
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdnZXRTZWxlY3Rpb24nKSBp
cyB1bmRlZmluZWQuCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93
LCAnaGFzT3duUHJvcGVydHknKSBpcyB1bmRlZmluZWQuCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnaXNQcm90b3R5cGVPZicpIGlzIHVuZGVmaW5lZC4KK1BB
U1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdtYXRjaE1lZGlhJykg
aXMgdW5kZWZpbmVkLgogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRv
dywgJ21vdmVCeScpIGlzIHVuZGVmaW5lZC4KIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcih3aW5kb3csICdtb3ZlVG8nKSBpcyB1bmRlZmluZWQuCiBQQVNTIE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnb3BlbicpIGlzIHVuZGVmaW5lZC4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDEtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRlYmEzZjUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDEt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKK1Rlc3QgdGhlIE1lZGlhUXVlcnlMaXN0IGlu
dGVyZmFjZTogaHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3Nzb20tdmlldy8jdGhlLW1lZGlhcXVl
cnlsaXN0LWludGVyZmFjZS4KKworInNjcmVlbiIgZXZhbHVhdGVzIHRvIHRydWU6IFBBU1MKKyJw
cm9qZWN0aW9uIiBldmFsdWF0ZXMgdG8gZmFsc2U6IFBBU1MKKyJhbGwgYW5kIChjb2xvcikiIGV2
YWx1YXRlcyB0byB0cnVlOiBQQVNTCisibm90IHByb2plY3Rpb24gYW5kIChjb2xvcikiIGV2YWx1
YXRlcyB0byB0cnVlOiBQQVNTCisiKGNvbG9yKSIgZXZhbHVhdGVzIHRvIHRydWU6IFBBU1MKKyIo
Y29sb3IiIGV2YWx1YXRlcyB0byBmYWxzZTogUEFTUworImNvbG9yIiBldmFsdWF0ZXMgdG8gZmFs
c2U6IFBBU1MKKyJnYXJiYWdlIiBldmFsdWF0ZXMgdG8gZmFsc2U6IFBBU1MKKyIobWluLWRldmlj
ZS13aWR0aDogMTAwcHgpIiBldmFsdWF0ZXMgdG8gdHJ1ZTogUEFTUworIihtaW4tZGV2aWNlLXdp
ZHRoOiA1MDAwMHB4KSIgZXZhbHVhdGVzIHRvIGZhbHNlOiBQQVNTCisiKC13ZWJraXQtYW5pbWF0
aW9uOiAxKSIgZXZhbHVhdGVzIHRvIHRydWU6IFBBU1MKKyIoLXdlYmtpdC10cmFuc2Zvcm0tMmQp
IiBldmFsdWF0ZXMgdG8gdHJ1ZTogUEFTUworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDEuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEv
bWVkaWEtcXVlcnktbGlzdC0wMS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjMzZGNjNjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21l
ZGlhLXF1ZXJ5LWxpc3QtMDEuaHRtbApAQCAtMCwwICsxLDUyIEBACis8aHRtbD4KKzxoZWFkPgor
PHRpdGxlPlRlc3QgQ1NTT00gVmlldyBtb2R1bGU6IE1lZGlhUXVlcnlMaXN0IGludGVyZmFjZTwv
dGl0bGU+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorCis8L3N0eWxlPgorPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7CisKKyAgICBmdW5jdGlvbiBsb2cobSkKKyAgICB7CisgICAgICAgIHZhciByZXN1bHRzID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdHMnKTsKKyAgICAgICAgcmVzdWx0cy5pbm5l
ckhUTUwgKz0gbSArICc8YnI+JzsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0UXVlcnkocXVl
cnksIGV4cGVjdGVkKQorICAgIHsKKyAgICAgICAgdmFyIGlzVHJ1ZSA9IHdpbmRvdy5tYXRjaE1l
ZGlhKHF1ZXJ5KS5tYXRjaGVzOworICAgICAgICB2YXIgbWVzc2FnZSA9ICdcIicgKyBxdWVyeSAr
ICdcIiBldmFsdWF0ZXMgdG8gJyArIChpc1RydWUgPyAndHJ1ZScgOiAnZmFsc2UnKTsKKyAgICAg
ICAgbWVzc2FnZSArPSAoaXNUcnVlID09IGV4cGVjdGVkKSA/ICc6IFBBU1MnIDogJzogRkFJTCc7
CisgICAgICAgIGxvZyhtZXNzYWdlKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0cygp
CisgICAgeworICAgICAgICB0ZXN0UXVlcnkoJ3NjcmVlbicsIHRydWUpOworICAgICAgICB0ZXN0
UXVlcnkoJ3Byb2plY3Rpb24nLCBmYWxzZSk7CisKKyAgICAgICAgdGVzdFF1ZXJ5KCdhbGwgYW5k
IChjb2xvciknLCB0cnVlKTsKKyAgICAgICAgdGVzdFF1ZXJ5KCdub3QgcHJvamVjdGlvbiBhbmQg
KGNvbG9yKScsIHRydWUpOworICAgICAgICB0ZXN0UXVlcnkoJyhjb2xvciknLCB0cnVlKTsKKyAg
ICAgICAgdGVzdFF1ZXJ5KCcoY29sb3InLCBmYWxzZSk7CisgICAgICAgIHRlc3RRdWVyeSgnY29s
b3InLCBmYWxzZSk7CisKKyAgICAgICAgdGVzdFF1ZXJ5KCdnYXJiYWdlJywgZmFsc2UpOworCisg
ICAgICAgIHRlc3RRdWVyeSgnKG1pbi1kZXZpY2Utd2lkdGg6IDEwMHB4KScsIHRydWUpOworICAg
ICAgICB0ZXN0UXVlcnkoJyhtaW4tZGV2aWNlLXdpZHRoOiA1MDAwMHB4KScsIGZhbHNlKTsKKwor
ICAgICAgICB0ZXN0UXVlcnkoJygtd2Via2l0LWFuaW1hdGlvbjogMSknLCB0cnVlKTsKKyAgICAg
ICAgdGVzdFF1ZXJ5KCcoLXdlYmtpdC10cmFuc2Zvcm0tMmQpJywgdHJ1ZSk7CisgICAgfQorCis8
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdHMoKSI+CisgICAgPHA+VGVz
dCB0aGUgTWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlOiA8YSBocmVmPSJodHRwOi8vZGV2LnczLm9y
Zy9jc3N3Zy9jc3NvbS12aWV3LyN0aGUtbWVkaWFxdWVyeWxpc3QtaW50ZXJmYWNlIiB0aXRsZT0i
Q1NTT00gVmlldyBNb2R1bGUiPmh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzc29tLXZpZXcvI3Ro
ZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2U8L2E+LjwvcD4KKyAgICA8ZGl2IGlkPSJyZXN1bHRz
Ij4KKyAgICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYzNjQzZDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDItZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMjUgQEAKK1Rlc3QgdGhlIE1lZGlhUXVlcnlMaXN0IGludGVyZmFjZTogaHR0cDovL2Rl
di53My5vcmcvY3Nzd2cvY3Nzb20tdmlldy8jdGhlLW1lZGlhcXVlcnlsaXN0LWludGVyZmFjZS4K
KworVGVzdGluZyBhZGRMaXN0ZW5lciBpbiBkaWZmZXJlbnQgTWVkaWFRdWVyeUxpc3Qgb2JqZWN0
cyBhbmQgdGhlIGNhbGxiYWNrIGNhbGwgc2VxdWVuY2UKKworLS0tLS0tLS0tLS0tLSBtaW5pbWl6
ZWQgLS0tLS0tLS0tLS0tLQorWzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dl
ZCkgY2hhbmdlZCB0byBmYWxzZQorWzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtaW5p
bWl6ZWQpIGNoYW5nZWQgdG8gdHJ1ZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiB3
aW5kb3dlZCkgY2hhbmdlZCB0byBmYWxzZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2Rl
OiBtaW5pbWl6ZWQpIGNoYW5nZWQgdG8gdHJ1ZQorLS0tLS0tLS0tLS0tLSBtYXhpbWl6ZWQgLS0t
LS0tLS0tLS0tLQorWzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQpIGNo
YW5nZWQgdG8gZmFsc2UKK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWF4aW1pemVk
KSBjaGFuZ2VkIHRvIHRydWUKK1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1p
emVkKSBjaGFuZ2VkIHRvIGZhbHNlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1h
eGltaXplZCkgY2hhbmdlZCB0byB0cnVlCistLS0tLS0tLS0tLS0tIHdpbmRvd2VkIC0tLS0tLS0t
LS0tLS0KK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQg
dG8gdHJ1ZQorWzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtYXhpbWl6ZWQpIGNoYW5n
ZWQgdG8gZmFsc2UKK1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNo
YW5nZWQgdG8gdHJ1ZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtYXhpbWl6ZWQp
IGNoYW5nZWQgdG8gZmFsc2UKKy0tLS0tLS0tLS0tLS0gZmxvYXRpbmcgLS0tLS0tLS0tLS0tLQor
WzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0byBmYWxz
ZQorWzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBmbG9hdGluZykgY2hhbmdlZCB0byB0
cnVlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFuZ2VkIHRv
IGZhbHNlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IGZsb2F0aW5nKSBjaGFuZ2Vk
IHRvIHRydWUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVy
eS1saXN0LTAyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3Qt
MDIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZGVjZTQzCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAy
Lmh0bWwKQEAgLTAsMCArMSw2MSBAQAorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5UZXN0IENTU09N
IFZpZXcgbW9kdWxlOiBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U8L3RpdGxlPgorPHN0eWxlIHR5
cGU9InRleHQvY3NzIj4KKworPC9zdHlsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiBjaGFyc2V0PSJ1dGYtOCI+CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
KyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgICAgZnVuY3Rp
b24gbG9nKG0pIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdHMnKS5p
bm5lckhUTUwgKz0gbSArICc8YnI+JzsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjYWxsYmFjazEo
cXVlcnkpIHsKKyAgICAgICAgbG9nKCJbMV0gLSBxdWVyeSAiICsgcXVlcnkubWVkaWEgKyAiIGNo
YW5nZWQgdG8gIiArIChxdWVyeS5tYXRjaGVzID8gInRydWUiIDogImZhbHNlIikpOworICAgIH0K
KworICAgIGZ1bmN0aW9uIGNhbGxiYWNrMihxdWVyeSkgeworICAgICAgICBsb2coIlsyXSAtIHF1
ZXJ5ICIgKyBxdWVyeS5tZWRpYSArICIgY2hhbmdlZCB0byAiICsgKHF1ZXJ5Lm1hdGNoZXMgPyAi
dHJ1ZSIgOiAiZmFsc2UiKSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdHMoKQorICAg
IHsKKyAgICAgICAgaWYgKCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAg
ICByZXR1cm47CisKKyAgICAgICAgd2luZG93ZWRRdWVyeSA9IHdpbmRvdy5tYXRjaE1lZGlhKCIo
LXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSIpOworICAgICAgICBmbG9hdGluZ1F1ZXJ5ID0g
d2luZG93Lm1hdGNoTWVkaWEoIigtd2Via2l0LXZpZXctbW9kZTogZmxvYXRpbmcpIik7CisgICAg
ICAgIG1pbmltaXplZFF1ZXJ5ID0gd2luZG93Lm1hdGNoTWVkaWEoIigtd2Via2l0LXZpZXctbW9k
ZTogbWluaW1pemVkKSIpOworICAgICAgICBtYXhpbWl6ZWRRdWVyeSA9IHdpbmRvdy5tYXRjaE1l
ZGlhKCIoLXdlYmtpdC12aWV3LW1vZGU6IG1heGltaXplZCkiKTsKKworICAgICAgICB3aW5kb3dl
ZFF1ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNrMSk7CisgICAgICAgIGZsb2F0aW5nUXVlcnkuYWRk
TGlzdGVuZXIoY2FsbGJhY2sxKTsKKyAgICAgICAgbWluaW1pemVkUXVlcnkuYWRkTGlzdGVuZXIo
Y2FsbGJhY2sxKTsKKyAgICAgICAgbWF4aW1pemVkUXVlcnkuYWRkTGlzdGVuZXIoY2FsbGJhY2sx
KTsKKworICAgICAgICB3aW5kb3dlZFF1ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNrMik7CisgICAg
ICAgIGZsb2F0aW5nUXVlcnkuYWRkTGlzdGVuZXIoY2FsbGJhY2syKTsKKyAgICAgICAgbWluaW1p
emVkUXVlcnkuYWRkTGlzdGVuZXIoY2FsbGJhY2syKTsKKyAgICAgICAgbWF4aW1pemVkUXVlcnku
YWRkTGlzdGVuZXIoY2FsbGJhY2syKTsKKworICAgICAgICBsb2coIi0tLS0tLS0tLS0tLS0gbWlu
aW1pemVkIC0tLS0tLS0tLS0tLS0iKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0
Vmlld01vZGVNZWRpYUZlYXR1cmUoIm1pbmltaXplZCIpOworICAgICAgICBsb2coIi0tLS0tLS0t
LS0tLS0gbWF4aW1pemVkIC0tLS0tLS0tLS0tLS0iKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoIm1heGltaXplZCIpOworICAgICAgICBsb2co
Ii0tLS0tLS0tLS0tLS0gd2luZG93ZWQgLS0tLS0tLS0tLS0tLSIpOworICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSgid2luZG93ZWQiKTsKKyAgICAg
ICAgbG9nKCItLS0tLS0tLS0tLS0tIGZsb2F0aW5nIC0tLS0tLS0tLS0tLS0iKTsKKyAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoImZsb2F0aW5nIik7
CisgICAgfQorCis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdHMoKSI+
CisgICAgPHA+VGVzdCB0aGUgTWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlOiA8YSBocmVmPSJodHRw
Oi8vZGV2LnczLm9yZy9jc3N3Zy9jc3NvbS12aWV3LyN0aGUtbWVkaWFxdWVyeWxpc3QtaW50ZXJm
YWNlIiB0aXRsZT0iQ1NTT00gVmlldyBNb2R1bGUiPmh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nz
c29tLXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2U8L2E+LjwvcD4KKyAgICA8cD5U
ZXN0aW5nIGFkZExpc3RlbmVyIGluIGRpZmZlcmVudCBNZWRpYVF1ZXJ5TGlzdCBvYmplY3RzIGFu
ZCB0aGUgY2FsbGJhY2sgY2FsbCBzZXF1ZW5jZTwvcD4KKyAgICA8ZGl2IGlkPSJyZXN1bHRzIj4K
KyAgICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyNGUyMDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNDEgQEAKK1Rlc3QgdGhlIE1lZGlhUXVlcnlMaXN0IGludGVyZmFjZTogaHR0cDovL2Rldi53
My5vcmcvY3Nzd2cvY3Nzb20tdmlldy8jdGhlLW1lZGlhcXVlcnlsaXN0LWludGVyZmFjZS4KKwor
VGVzdGluZyByZW1vdmVMaXN0ZW5lciBpbiBkaWZmZXJlbnQgTWVkaWFRdWVyeUxpc3Qgb2JqZWN0
cyBhbmQgdGhlIGNhbGxiYWNrIGNhbGwgc2VxdWVuY2UKKworYWRkaW5nIHdpbmRvd2VkWzFdLCBt
aW5pbWl6ZWRbMV0sIHdpbmRvd2VkWzJdIGFuZCBtaW5pbWl6ZWRbMl0KKworLS0tLS0tLS0tLS0t
LSBtaW5pbWl6ZWQgLS0tLS0tLS0tLS0tLQorWzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2Rl
OiB3aW5kb3dlZCkgY2hhbmdlZCB0byBmYWxzZQorWzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1t
b2RlOiBtaW5pbWl6ZWQpIGNoYW5nZWQgdG8gdHJ1ZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmll
dy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0byBmYWxzZQorWzJdIC0gcXVlcnkgKC13ZWJraXQt
dmlldy1tb2RlOiBtaW5pbWl6ZWQpIGNoYW5nZWQgdG8gdHJ1ZQorLS0tLS0tLS0tLS0tLSB3aW5k
b3dlZCAtLS0tLS0tLS0tLS0tCitbMV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRv
d2VkKSBjaGFuZ2VkIHRvIHRydWUKK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWlu
aW1pemVkKSBjaGFuZ2VkIHRvIGZhbHNlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6
IHdpbmRvd2VkKSBjaGFuZ2VkIHRvIHRydWUKK1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9k
ZTogbWluaW1pemVkKSBjaGFuZ2VkIHRvIGZhbHNlCisKKworcmVtb3Zpbmcgd2luZG93ZWRbMV0g
YW5kIG1pbmltaXplZFsyXQorCistLS0tLS0tLS0tLS0tIG1pbmltaXplZCAtLS0tLS0tLS0tLS0t
CitbMV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCkgY2hhbmdlZCB0byB0
cnVlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFuZ2VkIHRv
IGZhbHNlCistLS0tLS0tLS0tLS0tIHdpbmRvd2VkIC0tLS0tLS0tLS0tLS0KK1sxXSAtIHF1ZXJ5
ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSBjaGFuZ2VkIHRvIGZhbHNlCitbMl0gLSBx
dWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFuZ2VkIHRvIHRydWUKKworCith
ZGRpbmcgd2luZG93ZWRbMV0gYW5kIG1pbmltaXplZFsyXQorCistLS0tLS0tLS0tLS0tIG1pbmlt
aXplZCAtLS0tLS0tLS0tLS0tCitbMV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmlt
aXplZCkgY2hhbmdlZCB0byB0cnVlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdp
bmRvd2VkKSBjaGFuZ2VkIHRvIGZhbHNlCitbMV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6
IHdpbmRvd2VkKSBjaGFuZ2VkIHRvIGZhbHNlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1v
ZGU6IG1pbmltaXplZCkgY2hhbmdlZCB0byB0cnVlCistLS0tLS0tLS0tLS0tIHdpbmRvd2VkIC0t
LS0tLS0tLS0tLS0KK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSBj
aGFuZ2VkIHRvIGZhbHNlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2Vk
KSBjaGFuZ2VkIHRvIHRydWUKK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93
ZWQpIGNoYW5nZWQgdG8gdHJ1ZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtaW5p
bWl6ZWQpIGNoYW5nZWQgdG8gZmFsc2UKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21l
ZGlhLXF1ZXJ5LWxpc3QtMDMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5iMmQ0MDhkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRp
YS1xdWVyeS1saXN0LTAzLmh0bWwKQEAgLTAsMCArMSw3MCBAQAorPGh0bWw+Cis8aGVhZD4KKzx0
aXRsZT5UZXN0IENTU09NIFZpZXcgbW9kdWxlOiBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U8L3Rp
dGxlPgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKworPC9zdHlsZT4KKzxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CisgICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OworCisgICAgZnVuY3Rpb24gbG9nKG0pIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3Jlc3VsdHMnKS5pbm5lckhUTUwgKz0gbSArICc8YnI+JzsKKyAgICB9CisKKyAgICBmdW5j
dGlvbiBjYWxsYmFjazEocXVlcnkpIHsKKyAgICAgICAgbG9nKCJbMV0gLSBxdWVyeSAiICsgcXVl
cnkubWVkaWEgKyAiIGNoYW5nZWQgdG8gIiArIChxdWVyeS5tYXRjaGVzID8gInRydWUiIDogImZh
bHNlIikpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNhbGxiYWNrMihxdWVyeSkgeworICAgICAg
ICBsb2coIlsyXSAtIHF1ZXJ5ICIgKyBxdWVyeS5tZWRpYSArICIgY2hhbmdlZCB0byAiICsgKHF1
ZXJ5Lm1hdGNoZXMgPyAidHJ1ZSIgOiAiZmFsc2UiKSk7CisgICAgfQorCisgICAgZnVuY3Rpb24g
cnVuVGVzdHMoKQorICAgIHsKKyAgICAgICAgaWYgKCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgd2luZG93ZWRRdWVyeSA9IHdpbmRv
dy5tYXRjaE1lZGlhKCIoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSIpOworICAgICAgICBt
aW5pbWl6ZWRRdWVyeSA9IHdpbmRvdy5tYXRjaE1lZGlhKCIoLXdlYmtpdC12aWV3LW1vZGU6IG1p
bmltaXplZCkiKTsKKworICAgICAgICBsb2coImFkZGluZyB3aW5kb3dlZFsxXSwgbWluaW1pemVk
WzFdLCB3aW5kb3dlZFsyXSBhbmQgbWluaW1pemVkWzJdPGJyPiIpOworICAgICAgICB3aW5kb3dl
ZFF1ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNrMSk7CisgICAgICAgIG1pbmltaXplZFF1ZXJ5LmFk
ZExpc3RlbmVyKGNhbGxiYWNrMSk7CisgICAgICAgIHdpbmRvd2VkUXVlcnkuYWRkTGlzdGVuZXIo
Y2FsbGJhY2syKTsKKyAgICAgICAgbWluaW1pemVkUXVlcnkuYWRkTGlzdGVuZXIoY2FsbGJhY2sy
KTsKKworICAgICAgICBsb2coIi0tLS0tLS0tLS0tLS0gbWluaW1pemVkIC0tLS0tLS0tLS0tLS0i
KTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUo
Im1pbmltaXplZCIpOworICAgICAgICBsb2coIi0tLS0tLS0tLS0tLS0gd2luZG93ZWQgLS0tLS0t
LS0tLS0tLSIpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9kZU1lZGlh
RmVhdHVyZSgid2luZG93ZWQiKTsKKworICAgICAgICBsb2coIjxicj48YnI+cmVtb3Zpbmcgd2lu
ZG93ZWRbMV0gYW5kIG1pbmltaXplZFsyXTxicj4iKTsKKyAgICAgICAgd2luZG93ZWRRdWVyeS5y
ZW1vdmVMaXN0ZW5lcihjYWxsYmFjazEpOworICAgICAgICBtaW5pbWl6ZWRRdWVyeS5yZW1vdmVM
aXN0ZW5lcihjYWxsYmFjazIpOworCisgICAgICAgIGxvZygiLS0tLS0tLS0tLS0tLSBtaW5pbWl6
ZWQgLS0tLS0tLS0tLS0tLSIpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3
TW9kZU1lZGlhRmVhdHVyZSgibWluaW1pemVkIik7CisgICAgICAgIGxvZygiLS0tLS0tLS0tLS0t
LSB3aW5kb3dlZCAtLS0tLS0tLS0tLS0tIik7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCJ3aW5kb3dlZCIpOworCisgICAgICAgIGxvZygiPGJy
Pjxicj5hZGRpbmcgd2luZG93ZWRbMV0gYW5kIG1pbmltaXplZFsyXTxicj4iKTsKKyAgICAgICAg
d2luZG93ZWRRdWVyeS5hZGRMaXN0ZW5lcihjYWxsYmFjazEpOworICAgICAgICBtaW5pbWl6ZWRR
dWVyeS5hZGRMaXN0ZW5lcihjYWxsYmFjazIpOworCisgICAgICAgIGxvZygiLS0tLS0tLS0tLS0t
LSBtaW5pbWl6ZWQgLS0tLS0tLS0tLS0tLSIpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSgibWluaW1pemVkIik7CisgICAgICAgIGxvZygiLS0t
LS0tLS0tLS0tLSB3aW5kb3dlZCAtLS0tLS0tLS0tLS0tIik7CisgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCJ3aW5kb3dlZCIpOworCisgICAgfQor
Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdHMoKSI+CisgICAgPHA+
VGVzdCB0aGUgTWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlOiA8YSBocmVmPSJodHRwOi8vZGV2Lncz
Lm9yZy9jc3N3Zy9jc3NvbS12aWV3LyN0aGUtbWVkaWFxdWVyeWxpc3QtaW50ZXJmYWNlIiB0aXRs
ZT0iQ1NTT00gVmlldyBNb2R1bGUiPmh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzc29tLXZpZXcv
I3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2U8L2E+LjwvcD4KKyAgICA8cD5UZXN0aW5nIHJl
bW92ZUxpc3RlbmVyIGluIGRpZmZlcmVudCBNZWRpYVF1ZXJ5TGlzdCBvYmplY3RzIGFuZCB0aGUg
Y2FsbGJhY2sgY2FsbCBzZXF1ZW5jZTwvcD4KKyAgICA8ZGl2IGlkPSJyZXN1bHRzIj4KKyAgICA8
L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVk
aWEvbWVkaWEtcXVlcnktbGlzdC0wNC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21l
ZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjNhNmQwZGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjUg
QEAKK1Rlc3QgdGhlIE1lZGlhUXVlcnlMaXN0IGludGVyZmFjZTogaHR0cDovL2Rldi53My5vcmcv
Y3Nzd2cvY3Nzb20tdmlldy8jdGhlLW1lZGlhcXVlcnlsaXN0LWludGVyZmFjZS4KKworVGVzdGlu
ZyBwYWdlIGNhY2hlCisKKy0tLS0tLS0tLS0tLS0gbWluaW1pemVkIC0tLS0tLS0tLS0tLS0KK1sx
XSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQgdG8gZmFsc2UK
K1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSBjaGFuZ2VkIHRvIHRy
dWUKK1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQgdG8g
ZmFsc2UKK1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSBjaGFuZ2Vk
IHRvIHRydWUKKy0tLS0tLS0tLS0tLS0gbWF4aW1pemVkIC0tLS0tLS0tLS0tLS0KK1sxXSAtIHF1
ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSBjaGFuZ2VkIHRvIGZhbHNlCitbMV0g
LSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1heGltaXplZCkgY2hhbmdlZCB0byB0cnVlCitb
Ml0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCkgY2hhbmdlZCB0byBmYWxz
ZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtYXhpbWl6ZWQpIGNoYW5nZWQgdG8g
dHJ1ZQorLS0tLS0tLS0tLS0tLSB3aW5kb3dlZCAtLS0tLS0tLS0tLS0tCitbMV0gLSBxdWVyeSAo
LXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFuZ2VkIHRvIHRydWUKK1sxXSAtIHF1ZXJ5
ICgtd2Via2l0LXZpZXctbW9kZTogbWF4aW1pemVkKSBjaGFuZ2VkIHRvIGZhbHNlCitbMl0gLSBx
dWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFuZ2VkIHRvIHRydWUKK1syXSAt
IHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWF4aW1pemVkKSBjaGFuZ2VkIHRvIGZhbHNlCist
LS0tLS0tLS0tLS0tIGZsb2F0aW5nIC0tLS0tLS0tLS0tLS0KK1sxXSAtIHF1ZXJ5ICgtd2Via2l0
LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQgdG8gZmFsc2UKK1sxXSAtIHF1ZXJ5ICgtd2Vi
a2l0LXZpZXctbW9kZTogZmxvYXRpbmcpIGNoYW5nZWQgdG8gdHJ1ZQorWzJdIC0gcXVlcnkgKC13
ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0byBmYWxzZQorWzJdIC0gcXVlcnkg
KC13ZWJraXQtdmlldy1tb2RlOiBmbG9hdGluZykgY2hhbmdlZCB0byB0cnVlCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA0Lmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTI3NjE4NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNC5odG1sCkBAIC0wLDAgKzEsNzUg
QEAKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+VGVzdCBDU1NPTSBWaWV3IG1vZHVsZTogTWVkaWFR
dWVyeUxpc3QgaW50ZXJmYWNlPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiBjaGFyc2V0PSJ1dGYtOCI+CisKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KSB7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdFVzZXNQYWdlQ2FjaGVQcmVmZXJl
bmNlS2V5IiwgMSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gbG9nKG0pIHsKKyAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdHMnKS5pbm5lckhUTUwgKz0gbSArICc8YnI+JzsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiBjYWxsYmFjazEocXVlcnkpIHsKKyAgICAgICAgbG9nKCJb
MV0gLSBxdWVyeSAiICsgcXVlcnkubWVkaWEgKyAiIGNoYW5nZWQgdG8gIiArIChxdWVyeS5tYXRj
aGVzID8gInRydWUiIDogImZhbHNlIikpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNhbGxiYWNr
MihxdWVyeSkgeworICAgICAgICBsb2coIlsyXSAtIHF1ZXJ5ICIgKyBxdWVyeS5tZWRpYSArICIg
Y2hhbmdlZCB0byAiICsgKHF1ZXJ5Lm1hdGNoZXMgPyAidHJ1ZSIgOiAiZmFsc2UiKSk7CisgICAg
fQorCisgICAgZnVuY3Rpb24gcGFnZXNob3coZXZ0KQorICAgIHsKKyAgICAgICAgaWYgKCF3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAg
aWYgKCFldnQucGVyc2lzdGVkKSB7CisgICAgICAgICAgICAvLyB0aGlzIHdpbGwgcnVuIG9ubHkg
d2hlbiB0aGUgcGFnZSBpcyBsb2FkZWQgZm9yIHRoZSBmaXJzdCB0aW1lLgorCisgICAgICAgICAg
ICB3aW5kb3dlZFF1ZXJ5ID0gd2luZG93Lm1hdGNoTWVkaWEoIigtd2Via2l0LXZpZXctbW9kZTog
d2luZG93ZWQpIik7CisgICAgICAgICAgICBmbG9hdGluZ1F1ZXJ5ID0gd2luZG93Lm1hdGNoTWVk
aWEoIigtd2Via2l0LXZpZXctbW9kZTogZmxvYXRpbmcpIik7CisgICAgICAgICAgICBtaW5pbWl6
ZWRRdWVyeSA9IHdpbmRvdy5tYXRjaE1lZGlhKCIoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXpl
ZCkiKTsKKyAgICAgICAgICAgIG1heGltaXplZFF1ZXJ5ID0gd2luZG93Lm1hdGNoTWVkaWEoIigt
d2Via2l0LXZpZXctbW9kZTogbWF4aW1pemVkKSIpOworCisgICAgICAgICAgICB3aW5kb3dlZFF1
ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNrMSk7CisgICAgICAgICAgICBmbG9hdGluZ1F1ZXJ5LmFk
ZExpc3RlbmVyKGNhbGxiYWNrMSk7CisgICAgICAgICAgICBtaW5pbWl6ZWRRdWVyeS5hZGRMaXN0
ZW5lcihjYWxsYmFjazEpOworICAgICAgICAgICAgbWF4aW1pemVkUXVlcnkuYWRkTGlzdGVuZXIo
Y2FsbGJhY2sxKTsKKworICAgICAgICAgICAgd2luZG93ZWRRdWVyeS5hZGRMaXN0ZW5lcihjYWxs
YmFjazIpOworICAgICAgICAgICAgZmxvYXRpbmdRdWVyeS5hZGRMaXN0ZW5lcihjYWxsYmFjazIp
OworICAgICAgICAgICAgbWluaW1pemVkUXVlcnkuYWRkTGlzdGVuZXIoY2FsbGJhY2syKTsKKyAg
ICAgICAgICAgIG1heGltaXplZFF1ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNrMik7CisKKyAgICAg
ICAgICAgIHNldFRpbWVvdXQoJ3dpbmRvdy5sb2NhdGlvbiA9ICJkYXRhOnRleHQvaHRtbCw8c2Ny
aXB0Pmhpc3RvcnkuYmFjaygpPCIgKyAiL3NjcmlwdD4iJywgMCk7CisKKyAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgIC8vIGlmIHRoaXMgcG9pbnQgaXMgcmVhY2hlZCB0aGUgcGFnZSBpcyBj
b21taW5nIGZyb20gdGhlIHBhZ2UgY2FjaGUuCisKKyAgICAgICAgICAgIGxvZygiLS0tLS0tLS0t
LS0tLSBtaW5pbWl6ZWQgLS0tLS0tLS0tLS0tLSIpOworICAgICAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoIm1pbmltaXplZCIpOworICAgICAgICAg
ICAgbG9nKCItLS0tLS0tLS0tLS0tIG1heGltaXplZCAtLS0tLS0tLS0tLS0tIik7CisgICAgICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSgibWF4aW1p
emVkIik7CisgICAgICAgICAgICBsb2coIi0tLS0tLS0tLS0tLS0gd2luZG93ZWQgLS0tLS0tLS0t
LS0tLSIpOworICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Vmlld01vZGVNZWRp
YUZlYXR1cmUoIndpbmRvd2VkIik7CisgICAgICAgICAgICBsb2coIi0tLS0tLS0tLS0tLS0gZmxv
YXRpbmcgLS0tLS0tLS0tLS0tLSIpOworICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
c2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoImZsb2F0aW5nIik7CisKKyAgICAgICAgICAgIHNldFRp
bWVvdXQoZnVuY3Rpb24oKSB7IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIGxheW91
dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsgfSwgMCk7CisKKyAgICAgICAgfQorICAgIH0K
KworICAgIHdpbmRvdy5vbnBhZ2VzaG93ID0gcGFnZXNob3c7CisKKzwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+CisgICAgPHA+VGVzdCB0aGUgTWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlOiA8YSBo
cmVmPSJodHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9jc3NvbS12aWV3LyN0aGUtbWVkaWFxdWVyeWxp
c3QtaW50ZXJmYWNlIiB0aXRsZT0iQ1NTT00gVmlldyBNb2R1bGUiPmh0dHA6Ly9kZXYudzMub3Jn
L2Nzc3dnL2Nzc29tLXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2U8L2E+LjwvcD4K
KyAgICA8cD5UZXN0aW5nIHBhZ2UgY2FjaGU8L3A+CisgICAgPGRpdiBpZD0icmVzdWx0cyI+PC9k
aXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKaW5kZXggYTIzOWViZi4uMjQ2ZTViYSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4
dApAQCAtMjM3MCw4ICsyMzcwLDExIEBAIEJVRzM4NTc4IDogcGx1Z2lucy9vdmVycmlkZS1ub2Rl
LW1ldGhvZC5odG1sID0gVEVYVAogQlVHMzg2NTMgTUFDIDogZWRpdGluZy9zZWxlY3Rpb24vZmlu
ZC15ZW5zaWduLWFuZC1iYWNrc2xhc2guaHRtbCA9IFRFWFQKIEJVRzM4NjU2IDogZmFzdC9tZWRp
YS9wcmludC1yZXN0b3Jlcy1wcmV2aW91cy1tZWRpYXR5cGUuaHRtbCA9IFRFWFQKIAotLy8gTmVl
ZHMgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoKSAoaW1wbGVt
ZW50ZWQgb24gUXQgb25seSkKKy8vIE5lZWRzIGxheW91dFRlc3RDb250cm9sbGVyLnNldFZpZXdN
b2RlTWVkaWFGZWF0dXJlKCkKIEJVRzQwNjgwIFNLSVAgOiBmYXN0L21lZGlhL3ZpZXctbW9kZS1t
ZWRpYS1mZWF0dXJlLmh0bWwgPSBGQUlMCitCVUc0MDY4MCBTS0lQIDogZmFzdC9tZWRpYS9tZWRp
YS1xdWVyeS1saXN0LTAyLmh0bWwgPSBGQUlMCitCVUc0MDY4MCBTS0lQIDogZmFzdC9tZWRpYS9t
ZWRpYS1xdWVyeS1saXN0LTAzLmh0bWwgPSBGQUlMCitCVUc0MDY4MCBTS0lQIDogZmFzdC9tZWRp
YS9tZWRpYS1xdWVyeS1saXN0LTA0Lmh0bWwgPSBGQUlMCiAKIC8vIFVua25vd24gZmxha2luZXNz
LgogQlVHMzg3MDYgOiBzdmcvY3VzdG9tL2RlZXAtZHluYW1pYy11cGRhdGVzLnN2ZyA9IElNQUdF
K1RFWFQgSU1BR0UgUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Nr
aXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAppbmRleCBiMTYwZGJhLi4z
OTNhYWJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZApAQCAtMTI0LDggKzEyNCwxMSBAQCBo
dHRwL3Rlc3RzL3BsdWdpbnMvcGx1Z2luLWRvY3VtZW50LWhhcy1mb2N1cy5odG1sCiAjIE1pc3Nl
cyBzZXRNZWRpYVR5cGUoKSBhbmQgaW1wbGVtZW50YXRpb24KIGZhc3QvbWVkaWEvcHJpbnQtcmVz
dG9yZXMtcHJldmlvdXMtbWVkaWF0eXBlLmh0bWwKIAotIyB2aWV3IG1vZGUgbWVkaWEgZmVhdHVy
ZQorIyBOZWVkcyBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSgp
CiBmYXN0L21lZGlhL3ZpZXctbW9kZS1tZWRpYS1mZWF0dXJlLmh0bWwKK2Zhc3QvbWVkaWEvbWVk
aWEtcXVlcnktbGlzdC0wMi5odG1sCitmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMuaHRt
bAorZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA0Lmh0bWwKIAogIyBUZXN0IGlzIGZsYWt5
IGFuZCB0aHVzIG5vdCB1c2VmdWwgdW50aWwgZml4ZWQuCiAjIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0zNjY0MgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAppbmRleCBk
MDhkNzhjLi44NzU5YTM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tp
cHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApAQCAtODY3LDggKzg2
NywxMSBAQCBmYXN0L2RvbS9IVE1MTWV0ZXJFbGVtZW50L21ldGVyLXBlcmNlbnQtc2l6ZS5odG1s
CiBmYXN0L2RvbS9IVE1MTWV0ZXJFbGVtZW50L21ldGVyLXN0eWxlcy5odG1sCiBmYXN0L2RvbS9I
VE1MTWV0ZXJFbGVtZW50L21ldGVyLXN0eWxlcy1jaGFuZ2luZy1wc2V1ZG8uaHRtbAogCi0jIHZp
ZXcgbW9kZSBtZWRpYSBmZWF0dXJlCisjIE5lZWRzIGxheW91dFRlc3RDb250cm9sbGVyLnNldFZp
ZXdNb2RlTWVkaWFGZWF0dXJlKCkKIGZhc3QvbWVkaWEvdmlldy1tb2RlLW1lZGlhLWZlYXR1cmUu
aHRtbAorZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAyLmh0bWwKK2Zhc3QvbWVkaWEvbWVk
aWEtcXVlcnktbGlzdC0wMy5odG1sCitmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDQuaHRt
bAogCiAjIE5lZWQgZXhwZWN0YXRpb25zLiBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTM2NDYxCiBmYXN0L3JlcGFpbnQvb3ZlcmZsb3ctc2Nyb2xsLWJvZHktYXBw
ZWFyLmh0bWwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggZmM4OWYyMy4uZGI4OTcxMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5NSBAQAorMjAxMC0wOS0yOSAgTHVp
eiBBZ29zdGluaSAgPGx1aXouYWdvc3RpbmlAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgQ1NTT00gVmlldyBt
YXRjaE1lZGlhIGludGVyZmFjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MzcyMDUKKworICAgICAgICBOZXcgaW50ZXJmYWNlcyBtYXkgYmUgdXNlZCB0
byBldmFsdWF0ZSBtZWRpYSBxdWVyaWVzIGFuZCB0byBhc3NvY2lhdGUgbGlzdGVuZXJzCisgICAg
ICAgIHRvIG1lZGlhIHF1ZXJpZXMuIFRob3NlIGxpc3RlbmVycyBhcmUgY2FsbGVkIHdoZW5ldmVy
IHRoZSBhc3NvY2lhdGVkIHF1ZXJ5IGNoYW5nZXMuCisgICAgICAgIFNwZWNpZmljYXRpb24gbWF5
IGJlIGZvdW5kIGF0IGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzc29tLXZpZXcvI3RoZS1tZWRp
YXF1ZXJ5bGlzdC1pbnRlcmZhY2UKKworICAgICAgICBOZXcgaW50ZXJmYWNlczoKKworICAgICAg
ICAqIGNzcy9NZWRpYVF1ZXJ5TGlzdC5pZGw6IEFkZGVkLgorICAgICAgICAqIGNzcy9NZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyLmlkbDogQWRkZWQuCisKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUxp
c3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlMaXN0OjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeUxpc3Q6Ok1lZGlhUXVlcnlMaXN0KToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlMaXN0Ojp+TWVkaWFRdWVyeUxpc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFRdWVyeUxpc3Q6Om1lZGlhKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUXVlcnlMaXN0OjphZGRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5
TGlzdDo6cmVtb3ZlTGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeUxpc3Q6
OmV2YWx1YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlMaXN0OjpzZXRNYXRjaGVz
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlMaXN0OjptYXRjaGVzKToKKyAgICAgICAg
KiBjc3MvTWVkaWFRdWVyeUxpc3QuaDogQWRkZWQuCisKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVy
eUxpc3RMaXN0ZW5lci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeUxp
c3RMaXN0ZW5lcjo6cXVlcnlDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlM
aXN0TGlzdGVuZXI6OmlzRXF1YWxUbyk6CisgICAgICAgICogY3NzL01lZGlhUXVlcnlMaXN0TGlz
dGVuZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lcik6CisKKyAgICAgICAgVG8gYXZvaWQgYWRkaW5nIGNvZGUgdG8g
Y2xhc3NlcyBET01XaW5kb3cgYW5kIERvY3VtZW50IGEgbmV3IGNsYXNzIE1lZGlhUXVlcnlNYXRj
aGVyIHdhcworICAgICAgICBjcmVhdGVkLgorCisgICAgICAgICogY3NzL01lZGlhUXVlcnlNYXRj
aGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5TWF0Y2hlcjo6TGlz
dGVuZXI6Okxpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlNYXRjaGVyOjpM
aXN0ZW5lcjo6fkxpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlNYXRjaGVy
OjpMaXN0ZW5lcjo6ZXZhbHVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeU1hdGNo
ZXI6Ok1lZGlhUXVlcnlNYXRjaGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlNYXRj
aGVyOjp+TWVkaWFRdWVyeU1hdGNoZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeU1h
dGNoZXI6OnRlcm1pbmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5TWF0Y2hlcjo6
bWVkaWFUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlNYXRjaGVyOjpwcmVwYXJl
RXZhbHVhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlNYXRjaGVyOjpldmFsdWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5TWF0Y2hlcjo6bWF0Y2hNZWRpYSk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5TWF0Y2hlcjo6YWRkTGlzdGVuZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFRdWVyeU1hdGNoZXI6OnJlbW92ZUxpc3RlbmVyKToKKyAgICAgICAg
KiBjc3MvTWVkaWFRdWVyeU1hdGNoZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVF1ZXJ5TWF0Y2hlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlNYXRj
aGVyOjpldmFsdWF0aW9uUm91bmQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeU1hdGNo
ZXI6Okxpc3RlbmVyOjpsaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5TWF0
Y2hlcjo6TGlzdGVuZXI6OnF1ZXJ5KToKKworICAgICAgICBEb2N1bWVudCBhbmQgRE9NV2luZG93
IGhhdmUgY2hhbmdlZCB0byBzdXBwb3J0IG5ldyBmZWF0dXJlcy4gRE9NV2luZG93IGlzIHRoZSBj
bGFzcyB0aGF0CisgICAgICAgIHB1Ymxpc2hlcyBtZXRob2RzIG1hdGNoTWVkaWEgYnV0IGZvciBw
YWdlIGNhY2hlIHRvIHdvcmsgcHJvcGVybHkgIHRoZSByZWZlcmVuY2UgdG8gdGhlCisKKyAgICAg
ICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6On5Eb2N1
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6bWF0Y2hNZWRpYSk6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudDo6c3R5bGVTZWxlY3RvckNoYW5nZWQpOgorICAgICAgICAqIGRv
bS9Eb2N1bWVudC5oOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRPTVdpbmRvdzo6bWF0Y2hNZWRpYSk6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cu
aDoKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5pZGw6CisKKyAgICAgICAgU29tZSBhZGp1c3Rt
ZW50cyB0byBjb2RlIGdlbmVyYXRvcnM6CisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JHT2JqZWN0LnBtOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4
LnBtOgorCisgICAgICAgIGJ1aWxkIHN5c3RlbToKKworICAgICAgICAqIERlcml2ZWRTb3VyY2Vz
Lm1ha2U6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5neXBp
OgorICAgICAgICAqIFdlYkNvcmUucHJpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAg
ICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9nb2JqZWN0L0dOVW1h
a2VmaWxlLmFtOgorCisgICAgICAgIFRlc3RzOiBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3Qt
MDEuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAyLmh0
bWwKKyAgICAgICAgICAgICAgIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMy5odG1sCisg
ICAgICAgICAgICAgICBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDQuaHRtbAorCiAyMDEw
LTEwLTE5ICBMdWl6IEFnb3N0aW5pICA8bHVpei5hZ29zdGluaUBvcGVuYm9zc2Eub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5tYWtlIGIvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDM0
MmJiN2IuLjhhNjE1MjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQor
KysgYi9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTI2Nyw2ICsyNjcsOCBAQCBET01f
Q0xBU1NFUyA9IFwKICAgICBMb2NhdGlvbiBcCiAgICAgTWVkaWFFcnJvciBcCiAgICAgTWVkaWFM
aXN0IFwKKyAgICBNZWRpYVF1ZXJ5TGlzdCBcCisgICAgTWVkaWFRdWVyeUxpc3RMaXN0ZW5lciBc
CiAgICAgTWVtb3J5SW5mbyBcCiAgICAgTWVzc2FnZUNoYW5uZWwgXAogICAgIE1lc3NhZ2VFdmVu
dCBcCkBAIC01MDMsNyArNTA1LDcgQEAgRE9NX0NMQVNTRVMgPSBcCiAKIC5QSE9OWSA6IGFsbAog
Ci1KU19ET01fSEVBREVSUz0kKGZpbHRlci1vdXQgSlNFdmVudExpc3RlbmVyLmggSlNFdmVudFRh
cmdldC5oLCQoRE9NX0NMQVNTRVM6JT1KUyUuaCkpCitKU19ET01fSEVBREVSUz0kKGZpbHRlci1v
dXQgSlNNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggSlNFdmVudExpc3RlbmVyLmggSlNFdmVudFRh
cmdldC5oLCQoRE9NX0NMQVNTRVM6JT1KUyUuaCkpCiAKIFdFQl9ET01fSEVBREVSUyA6PQogaWZl
cSAoJChmaW5kc3RyaW5nIEJVSUxESU5HX1dYLCQoRkVBVFVSRV9ERUZJTkVTKSksIEJVSUxESU5H
X1dYKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFr
ZWZpbGUuYW0KaW5kZXggNzJlYWE5MC4uZjY0ZTA5MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVt
YWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC00MjcsNiArNDI3LDgg
QEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
TWVkaWFFcnJvci5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFMaXN0LmNwcCBc
CiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhTGlzdC5oIFwKKwlEZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTTWVkaWFRdWVyeUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTTWVkaWFRdWVyeUxpc3QuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lbW9yeUlu
Zm8uY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVtb3J5SW5mby5oIFwKIAlEZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTTWVzc2FnZUNoYW5uZWwuY3BwIFwKQEAgLTk5OCwxMSArMTAw
MCwxNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvY3NzL01lZGlhTGlzdC5jcHAg
XAogCVdlYkNvcmUvY3NzL01lZGlhTGlzdC5oIFwKIAlXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5LmNw
cCBcCisJV2ViQ29yZS9jc3MvTWVkaWFRdWVyeS5oIFwKIAlXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5
RXZhbHVhdG9yLmNwcCBcCiAJV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5oIFwKIAlX
ZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwLmNwcCBcCiAJV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4
cC5oIFwKLQlXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5LmggXAorCVdlYkNvcmUvY3NzL01lZGlhUXVl
cnlMaXN0LmNwcCBcCisJV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3QuaCBcCisJV2ViQ29yZS9j
c3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgXAorCVdlYkNvcmUvY3NzL01lZGlhUXVlcnlM
aXN0TGlzdGVuZXIuaCBcCisJV2ViQ29yZS9jc3MvTWVkaWFRdWVyeU1hdGNoZXIuY3BwIFwKKwlX
ZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TWF0Y2hlci5oIFwKIAlXZWJDb3JlL2Nzcy9QYWlyLmggXAog
CVdlYkNvcmUvY3NzL1JlY3QuaCBcCiAJV2ViQ29yZS9jc3MvUkdCQ29sb3IuY3BwIFwKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXgg
YWY2ZDFiYS4uYmJkMDcxNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTE5LDYgKzE5LDcgQEAKICAgICAgICAgICAgICdjc3Mv
Q1NTVmFyaWFibGVzUnVsZS5pZGwnLAogICAgICAgICAgICAgJ2Nzcy9Db3VudGVyLmlkbCcsCiAg
ICAgICAgICAgICAnY3NzL01lZGlhTGlzdC5pZGwnLAorICAgICAgICAgICAgJ2Nzcy9NZWRpYVF1
ZXJ5TGlzdC5pZGwnLAogICAgICAgICAgICAgJ2Nzcy9SZWN0LmlkbCcsCiAgICAgICAgICAgICAn
Y3NzL1JHQkNvbG9yLmlkbCcsCiAgICAgICAgICAgICAnY3NzL1N0eWxlTWVkaWEuaWRsJywKQEAg
LTEwNzAsMTEgKzEwNzEsMTcgQEAKICAgICAgICAgICAgICdjc3MvTWVkaWFMaXN0LmNwcCcsCiAg
ICAgICAgICAgICAnY3NzL01lZGlhTGlzdC5oJywKICAgICAgICAgICAgICdjc3MvTWVkaWFRdWVy
eS5jcHAnLAorICAgICAgICAgICAgJ2Nzcy9NZWRpYVF1ZXJ5LmgnLAogICAgICAgICAgICAgJ2Nz
cy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcCcsCiAgICAgICAgICAgICAnY3NzL01lZGlhUXVlcnlF
dmFsdWF0b3IuaCcsCiAgICAgICAgICAgICAnY3NzL01lZGlhUXVlcnlFeHAuY3BwJywKICAgICAg
ICAgICAgICdjc3MvTWVkaWFRdWVyeUV4cC5oJywKLSAgICAgICAgICAgICdjc3MvTWVkaWFRdWVy
eS5oJywKKyAgICAgICAgICAgICdjc3MvTWVkaWFRdWVyeUxpc3QuY3BwJywKKyAgICAgICAgICAg
ICdjc3MvTWVkaWFRdWVyeUxpc3QuaCcsCisgICAgICAgICAgICAnY3NzL01lZGlhUXVlcnlMaXN0
TGlzdGVuZXIuY3BwJywKKyAgICAgICAgICAgICdjc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5o
JywKKyAgICAgICAgICAgICdjc3MvTWVkaWFRdWVyeU1hdGNoZXIuY3BwJywKKyAgICAgICAgICAg
ICdjc3MvTWVkaWFRdWVyeU1hdGNoZXIuaCcsCiAgICAgICAgICAgICAnY3NzL1BhaXIuaCcsCiAg
ICAgICAgICAgICAnY3NzL1JlY3QuaCcsCiAgICAgICAgICAgICAnY3NzL1JHQkNvbG9yLmNwcCcs
CmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJpIGIvV2ViQ29yZS9XZWJDb3JlLnByaQpp
bmRleCAwNTFmNGQ5Li45MjFkZDIzIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJpCisr
KyBiL1dlYkNvcmUvV2ViQ29yZS5wcmkKQEAgLTg2LDYgKzg2LDcgQEAgSURMX0JJTkRJTkdTICs9
IFwKICAgICBjc3MvQ1NTVmFyaWFibGVzRGVjbGFyYXRpb24uaWRsIFwKICAgICBjc3MvQ1NTVmFy
aWFibGVzUnVsZS5pZGwgXAogICAgIGNzcy9NZWRpYUxpc3QuaWRsIFwKKyAgICBjc3MvTWVkaWFR
dWVyeUxpc3QuaWRsIFwKICAgICBjc3MvUmVjdC5pZGwgXAogICAgIGNzcy9SR0JDb2xvci5pZGwg
XAogICAgIGNzcy9TdHlsZU1lZGlhLmlkbCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUu
cHJvIGIvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCBhOTY0ZDg5Li45YzBiMzdkIDEwMDY0NAot
LS0gYS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTY1
NCw2ICs2NTQsOSBAQCBTT1VSQ0VTICs9IFwKICAgICBjc3MvTWVkaWFRdWVyeS5jcHAgXAogICAg
IGNzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcCBcCiAgICAgY3NzL01lZGlhUXVlcnlFeHAuY3Bw
IFwKKyAgICBjc3MvTWVkaWFRdWVyeUxpc3QuY3BwIFwKKyAgICBjc3MvTWVkaWFRdWVyeUxpc3RM
aXN0ZW5lci5jcHAgXAorICAgIGNzcy9NZWRpYVF1ZXJ5TWF0Y2hlci5jcHAgXAogICAgIGNzcy9S
R0JDb2xvci5jcHAgXAogICAgIGNzcy9TaGFkb3dWYWx1ZS5jcHAgXAogICAgIGNzcy9TdHlsZUJh
c2UuY3BwIFwKQEAgLTE1NTgsOSArMTU2MSwxMiBAQCBIRUFERVJTICs9IFwKICAgICBjc3MvRm9u
dFZhbHVlLmggXAogICAgIGNzcy9NZWRpYUZlYXR1cmVOYW1lcy5oIFwKICAgICBjc3MvTWVkaWFM
aXN0LmggXAorICAgIGNzcy9NZWRpYVF1ZXJ5LmggXAogICAgIGNzcy9NZWRpYVF1ZXJ5RXZhbHVh
dG9yLmggXAogICAgIGNzcy9NZWRpYVF1ZXJ5RXhwLmggXAotICAgIGNzcy9NZWRpYVF1ZXJ5Lmgg
XAorICAgIGNzcy9NZWRpYVF1ZXJ5TGlzdC5oIFwKKyAgICBjc3MvTWVkaWFRdWVyeUxpc3RMaXN0
ZW5lci5oIFwKKyAgICBjc3MvTWVkaWFRdWVyeU1hdGNoZXIuaCBcCiAgICAgY3NzL1JHQkNvbG9y
LmggXAogICAgIGNzcy9TaGFkb3dWYWx1ZS5oIFwKICAgICBjc3MvU3R5bGVCYXNlLmggXApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEw
MDc1NQppbmRleCBmZjNiNjRhLi5lOGIzZjcxCi0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
agpAQCAtMTAwMTksNiArMTAwMTksNjIgQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxl
DQorCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1l
KVxEZXJpdmVkU291cmNlc1xKU01lZGlhUXVlcnlMaXN0LmNwcCINCisJCQkJPg0KKwkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQorCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQor
CQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfSW50ZXJuYWx8V2luMzIi
DQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQor
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfQ2Fp
cm98V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJ
CTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0i
UmVsZWFzZV9DYWlyb3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJ
CQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJ
Lz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQor
CQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIN
CisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJPC9GaWxlPg0KKwkJCTxG
aWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3RO
YW1lKVxEZXJpdmVkU291cmNlc1xKU01lZGlhUXVlcnlMaXN0LmgiDQorCQkJCT4NCisJCQk8L0Zp
bGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2Jq
XCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTTWVtb3J5SW5mby5jcHAiDQogCQkJCT4N
CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uDQpAQCAtMzAyMjcsNiArMzAyODMsMzAgQEAKIAkJCQk+
DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cY3NzXE1lZGlh
UXVlcnlMaXN0LmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGNzc1xNZWRpYVF1ZXJ5TGlzdC5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0K
KwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cY3NzXE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXIuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0
aD0iLi5cY3NzXE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4N
CisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xNZWRpYVF1ZXJ5TWF0Y2hlci5j
cHAiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIu
Llxjc3NcTWVkaWFRdWVyeU1hdGNoZXIuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8Rmls
ZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xQYWlyLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+
DQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwNDI5YTJm
Li40NzVmYzBkIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtNTI4Miw4ICs1MjgyLDE2IEBACiAJCUQyM0NBNTVEMEFCMEVBQUUwMDUxMDhBNSAvKiBKU1Jh
bmdlRXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBEMjNDQTU1QzBBQjBFQUFFMDA1MTA4QTUgLyogSlNSYW5nZUV4Y2VwdGlvbi5oICovOyB9
OwogCQlEMjNDQTU1RjBBQjBFQUI2MDA1MTA4QTUgLyogSlNSYW5nZUV4Y2VwdGlvbi5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMjNDQTU1RTBBQjBF
QUI2MDA1MTA4QTUgLyogSlNSYW5nZUV4Y2VwdGlvbi5jcHAgKi87IH07CiAJCUQyM0NBNTZDMEFC
MEVCOEQwMDUxMDhBNSAvKiBSYW5nZUV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDIzQ0E1NkIwQUIwRUI4RDAwNTEwOEE1IC8qIFJhbmdl
RXhjZXB0aW9uLmggKi87IH07CisJCUQzNDA2MjlCMTI1M0JDOEMwMDlFNDI1OSAvKiBNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEQzNDA2MjlBMTI1M0JDOEMwMDlFNDI1OSAvKiBNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyLmNwcCAqLzsgfTsKIAkJRDM5RDAwNkQxMUY4RTMwODAwNjA0MUYyIC8qIFBvcHVwTWVudU1h
Yy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDM5RDAw
NkMxMUY4RTMwODAwNjA0MUYyIC8qIFBvcHVwTWVudU1hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUQzOUQwMDlEMTFGOTA3RTYwMDYwNDFGMiAv
KiBTZWFyY2hQb3B1cE1lbnVNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEQzOUQwMDlDMTFGOTA3RTYwMDYwNDFGMiAvKiBTZWFyY2hQb3B1cE1lbnVN
YWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlE
M0E5NEEzODEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeUxpc3QuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNBOTRBMzExMjJEQUJBQzAwQTM3
QkJDIC8qIE1lZGlhUXVlcnlMaXN0LmNwcCAqLzsgfTsKKwkJRDNBOTRBMzkxMjJEQUJBQzAwQTM3
QkJDIC8qIE1lZGlhUXVlcnlMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBEM0E5NEEzMjEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeUxpc3Qu
aCAqLzsgfTsKKwkJRDNBOTRBM0IxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQz
QTk0QTM0MTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggKi87IH07
CisJCUQzQTk0QTQ2MTIyREM0MEYwMEEzN0JCQyAvKiBKU01lZGlhUXVlcnlMaXN0LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQTk0QTQyMTIyREM0
MEYwMEEzN0JCQyAvKiBKU01lZGlhUXVlcnlMaXN0LmNwcCAqLzsgfTsKKwkJRDNBOTRBNDcxMjJE
QzQwRjAwQTM3QkJDIC8qIEpTTWVkaWFRdWVyeUxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQTk0QTQzMTIyREM0MEYwMEEzN0JCQyAvKiBKU01l
ZGlhUXVlcnlMaXN0LmggKi87IH07CisJCUQzQUExMEYzMTIzQTk4QUEwMDkyMTUyQiAvKiBNZWRp
YVF1ZXJ5TWF0Y2hlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBEM0FBMTBGMTEyM0E5OEFBMDA5MjE1MkIgLyogTWVkaWFRdWVyeU1hdGNoZXIuY3Bw
ICovOyB9OworCQlEM0FBMTBGNDEyM0E5OEFBMDA5MjE1MkIgLyogTWVkaWFRdWVyeU1hdGNoZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQUExMEYy
MTIzQTk4QUEwMDkyMTUyQiAvKiBNZWRpYVF1ZXJ5TWF0Y2hlci5oICovOyB9OwogCQlEOEI2MTUy
RjEwMzI0OTUxMDBDODU1NEEgLyogQ29va2llLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBEOEI2MTUyRTEwMzI0OTUxMDBDODU1NEEgLyogQ29va2llLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJREIyM0My
Q0IwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERCMjNDMkM5MEE1MDhEMjkwMDI0
ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAgKi87IH07CiAJCURCMjNDMkNDMEE1MDhE
MjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREIyM0MyQ0EwQTUwOEQyOTAwMjQ4OUVCIC8qIElu
ZGVudE91dGRlbnRDb21tYW5kLmggKi87IH07CkBAIC0xMTI4MSw4ICsxMTI4OSwxOCBAQAogCQlE
MjNDQTU1QzBBQjBFQUFFMDA1MTA4QTUgLyogSlNSYW5nZUV4Y2VwdGlvbi5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNSYW5nZUV4Y2VwdGlvbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlEMjNDQTU1RTBBQjBFQUI2MDA1MTA4QTUgLyogSlNSYW5nZUV4Y2Vw
dGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNSYW5nZUV4
Y2VwdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQyM0NBNTZCMEFCMEVC
OEQwMDUxMDhBNSAvKiBSYW5nZUV4Y2VwdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUmFuZ2VFeGNlcHRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RDM0MDYyOUExMjUzQkM4QzAwOUU0MjU5IC8qIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFRdWVyeUxpc3RMaXN0ZW5l
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQzOUQwMDZDMTFGOEUzMDgwMDYw
NDFGMiAvKiBQb3B1cE1lbnVNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UG9wdXBNZW51TWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQzOUQwMDlDMTFG
OTA3RTYwMDYwNDFGMiAvKiBTZWFyY2hQb3B1cE1lbnVNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU2VhcmNoUG9wdXBNZW51TWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUQzQTk0QTMxMTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVF1ZXJ5TGlzdC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQzQTk0QTMyMTIyREFCQUMwMEEzN0JCQyAv
KiBNZWRpYVF1ZXJ5TGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRp
YVF1ZXJ5TGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEM0E5NEEzMzEyMkRB
QkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeUxpc3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IE1lZGlhUXVlcnlMaXN0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDNBOTRB
MzQxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlEM0E5NEEzNTEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFR
dWVyeUxpc3RMaXN0ZW5lci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTWVkaWFRdWVyeUxp
c3RMaXN0ZW5lci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQzQTk0QTQyMTIy
REM0MEYwMEEzN0JCQyAvKiBKU01lZGlhUXVlcnlMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVkaWFRdWVyeUxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlEM0E5NEE0MzEyMkRDNDBGMDBBMzdCQkMgLyogSlNNZWRpYVF1ZXJ5TGlz
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU01lZGlhUXVlcnlMaXN0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQzQUExMEYxMTIzQTk4QUEwMDkyMTUyQiAv
KiBNZWRpYVF1ZXJ5TWF0Y2hlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBNZWRpYVF1ZXJ5TWF0Y2hlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUQzQUExMEYyMTIzQTk4QUEwMDkyMTUyQiAvKiBNZWRpYVF1ZXJ5TWF0Y2hlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVF1ZXJ5TWF0Y2hlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlEOEI2MTUyRTEwMzI0OTUxMDBDODU1NEEgLyogQ29va2llLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvb2tpZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlEQjIzQzJDOTBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVu
dENvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluZGVu
dE91dGRlbnRDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREIyM0My
Q0EwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBJbmRlbnRPdXRkZW50Q29tbWFuZC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTU2MTksNiArMTU2MzcsOCBAQAogCQkJCUJDNjg2QzdBMEUw
QzMzMDEwMERFOEEwOCAvKiBKU0NTU1ZhcmlhYmxlc1J1bGUuY3BwICovLAogCQkJCUJDNjg2QzdC
MEUwQzMzMDEwMERFOEEwOCAvKiBKU0NTU1ZhcmlhYmxlc1J1bGUuaCAqLywKIAkJCQlCQzNDMzlC
NDBDMEQzRDhEMDA1RjREN0EgLyogSlNNZWRpYUxpc3QuY3BwICovLAorCQkJCUQzQTk0QTQyMTIy
REM0MEYwMEEzN0JCQyAvKiBKU01lZGlhUXVlcnlMaXN0LmNwcCAqLywKKwkJCQlEM0E5NEE0MzEy
MkRDNDBGMDBBMzdCQkMgLyogSlNNZWRpYVF1ZXJ5TGlzdC5oICovLAogCQkJCUJDM0MzOUI1MEMw
RDNEOEQwMDVGNEQ3QSAvKiBKU01lZGlhTGlzdC5oICovLAogCQkJCUJDRkUyRjBGMEMxQjU4Mzcw
MDIwMjM1RiAvKiBKU1JlY3QuY3BwICovLAogCQkJCUJDRkUyRjEwMEMxQjU4MzcwMDIwMjM1RiAv
KiBKU1JlY3QuaCAqLywKQEAgLTE3NjA3LDYgKzE3NjI3LDE0IEBACiAJCQkJNEUxOTU5MjYwQTM5
REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnlFdmFsdWF0b3IuaCAqLywKIAkJCQk0RTE5NTkyNzBB
MzlEQUNDMDAyMjBGRTUgLyogTWVkaWFRdWVyeUV4cC5jcHAgKi8sCiAJCQkJNEUxOTU5MjgwQTM5
REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnlFeHAuaCAqLywKKwkJCQlEM0E5NEEzMTEyMkRBQkFD
MDBBMzdCQkMgLyogTWVkaWFRdWVyeUxpc3QuY3BwICovLAorCQkJCUQzQTk0QTMyMTIyREFCQUMw
MEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdC5oICovLAorCQkJCUQzQTk0QTMzMTIyREFCQUMwMEEz
N0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdC5pZGwgKi8sCisJCQkJRDNBOTRBMzQxMjJEQUJBQzAwQTM3
QkJDIC8qIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCAqLywKKwkJCQlEMzQwNjI5QTEyNTNCQzhD
MDA5RTQyNTkgLyogTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgKi8sCisJCQkJRDNBOTRBMzUx
MjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaWRsICovLAorCQkJCUQz
QUExMEYxMTIzQTk4QUEwMDkyMTUyQiAvKiBNZWRpYVF1ZXJ5TWF0Y2hlci5jcHAgKi8sCisJCQkJ
RDNBQTEwRjIxMjNBOThBQTAwOTIxNTJCIC8qIE1lZGlhUXVlcnlNYXRjaGVyLmggKi8sCiAJCQkJ
QTgwRTZDRDEwQTE5ODlDQTAwN0ZCOEM1IC8qIFBhaXIuaCAqLywKIAkJCQk5M0NBNEM5RjA5REY5
M0ZBMDBERjg2NzcgLyogcXVpcmtzLmNzcyAqLywKIAkJCQlCQzQzNjhFNzBDMjI2RTMyMDA1RUZC
NUYgLyogUmVjdC5oICovLApAQCAtMjEwODIsNiArMjExMTAsMTAgQEAKIAkJCQk5N0RENEQ4NzBG
REY0RDZFMDBFQ0Y5QTQgLyogWFNTQXVkaXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEZBM0I5
MEIxMjVDRDEyMjAwMzAwQkFEIC8qIEluc3BlY3RvclN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5NzI4QzMxNDEyNjhFNDM5MDA0MUU4OUIgLyogTWFya3VwQWNjdW11bGF0b3IuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUQzQTk0QTM5MTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJRDNBOTRBM0IxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUQzQTk0QTQ3MTIyREM0MEYwMEEz
N0JCQyAvKiBKU01lZGlhUXVlcnlMaXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQlEM0FBMTBGNDEy
M0E5OEFBMDA5MjE1MkIgLyogTWVkaWFRdWVyeU1hdGNoZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
KTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAt
MjM2MzEsNiArMjM2NjMsMTAgQEAKIAkJCQk0RkEzQjkwQTEyNUNEMTIyMDAzMDBCQUQgLyogSW5z
cGVjdG9yU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTcyOEMzMTMxMjY4RTQzOTAwNDFF
ODlCIC8qIE1hcmt1cEFjY3VtdWxhdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdBMUYyQjUy
MTI2QzYxQjIwMDA2QTdFNiAvKiBJbnNwZWN0b3JDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJRDNBOTRBMzgxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0LmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUQzQTk0QTQ2MTIyREM0MEYwMEEzN0JCQyAvKiBKU01lZGlhUXVlcnlMaXN0
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUQzQUExMEYzMTIzQTk4QUEwMDkyMTUyQiAvKiBNZWRp
YVF1ZXJ5TWF0Y2hlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlEMzQwNjI5QjEyNTNCQzhDMDA5
RTQyNTkgLyogTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7
CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUv
YmluZGluZ3MvZ29iamVjdC9HTlVtYWtlZmlsZS5hbQppbmRleCBkODA4ZTE4Li4xYzZiOGY4IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvR05VbWFrZWZpbGUuYW0KKysrIGIv
V2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dOVW1ha2VmaWxlLmFtCkBAIC0xOTQsNiArMTk0LDgg
QEAgd2Via2l0Z3RrX2dkb21fYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvd2Vi
a2l0L1dlYktpdERPTU1lZGlhRXJyb3JQcml2YXRlLmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtp
dC9XZWJLaXRET01NZWRpYUxpc3QuY3BwIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0
RE9NTWVkaWFMaXN0UHJpdmF0ZS5oIFwKKwlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9N
TWVkaWFRdWVyeUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NTWVk
aWFRdWVyeUxpc3RQcml2YXRlLmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01N
ZW1vcnlJbmZvLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTU1lbW9yeUlu
Zm9Qcml2YXRlLmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01NZXNzYWdlUG9y
dC5jcHAgXApAQCAtMjUyLDYgKzI1NCw3IEBAIHdlYmtpdGd0a19idWlsdF9oX2FwaSArPSBcCiAJ
RGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTUNTU1N0eWxlU2hlZXQuaCBcCiAJRGVyaXZl
ZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTUNTU1ZhbHVlLmggXAogCURlcml2ZWRTb3VyY2VzL3dl
YmtpdC9XZWJLaXRET01NZWRpYUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktp
dERPTU1lZGlhUXVlcnlMaXN0LmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01T
dHlsZU1lZGlhLmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01TdHlsZVNoZWV0
LmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01TdHlsZVNoZWV0TGlzdC5oIFwK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVj
dC5wbSBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQpp
bmRleCA2YTFkMTE1Li5kODZhMGM0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0KKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCkBAIC0yMTAsOCArMjEwLDExIEBAIHN1YiBTa2lwRnVu
Y3Rpb24gewogCiAgICAgIyBTa2lwIGZ1bmN0aW9ucyB0aGF0IGhhdmUgWyJDYWxsYmFjayJdIHBh
cmFtZXRlcnMsIGJlY2F1c2UgdGhpcwogICAgICMgY29kZSBnZW5lcmF0b3IgZG9lc24ndCBrbm93
IGhvdyB0byBhdXRvLWdlbmVyYXRlIGNhbGxiYWNrcy4KKyAgICAjIFNraXAgZnVuY3Rpb25zIHRo
YXQgaGF2ZSAiTWVkaWFRdWVyeUxpc3RMaXN0ZW5lciIgcGFyYW1ldGVycywgYmVjYXVzZSB0aGlz
CisgICAgIyBjb2RlIGdlbmVyYXRvciBkb2Vzbid0IGtub3cgaG93IHRvIGF1dG8tZ2VuZXJhdGUg
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci4KICAgICBmb3JlYWNoIG15ICRwYXJhbSAoQHskZnVuY3Rp
b24tPnBhcmFtZXRlcnN9KSB7Ci0gICAgICAgIGlmICgkcGFyYW0tPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJDYWxsYmFjayJ9KSB7CisgICAgICAgIGlmICgkcGFyYW0tPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJDYWxsYmFjayJ9IHx8CisgICAgICAgICAgICAkcGFyYW0tPnR5cGUgZXEgIk1lZGlhUXVl
cnlMaXN0TGlzdGVuZXIiKSB7CiAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgfQogICAg
IH0KQEAgLTYwMCw3ICs2MDMsOCBAQCBFT0YKICAgICBwdXNoKEB0eHRTZXRQcm9wcywgJHR4dFNl
dFByb3BzKTsKIAogICAgIGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQHJlYWRhYmxlUHJvcGVydGll
cykgewotICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlIG5lICJFdmVudExp
c3RlbmVyIikgeworICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlIG5lICJF
dmVudExpc3RlbmVyIiAmJgorICAgICAgICAgICAgJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBl
IG5lICJNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIikgewogICAgICAgICAgICAgR2VuZXJhdGVQcm9w
ZXJ0eSgkYXR0cmlidXRlLCAkaW50ZXJmYWNlTmFtZSwgXEB3cml0ZWFibGVQcm9wZXJ0aWVzKTsK
ICAgICAgICAgfQogICAgIH0KQEAgLTc2Nyw2ICs3NzEsNyBAQCBzdWIgZ2V0SW5jbHVkZUhlYWRl
ciB7CiAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBzaG9ydCI7CiAgICAgcmV0
dXJuICIiIGlmICR0eXBlIGVxICJET01UaW1lU3RhbXAiOwogICAgIHJldHVybiAiIiBpZiAkdHlw
ZSBlcSAiRXZlbnRMaXN0ZW5lciI7CisgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyIjsKICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGNo
YXIiOwogICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAiRE9NU3RyaW5nIjsKICAgICByZXR1cm4g
IiIgaWYgJHR5cGUgZXEgImZsb2F0IjsKQEAgLTgwNiw2ICs4MTEsMTAgQEAgc3ViIEdlbmVyYXRl
RnVuY3Rpb24gewogCiAgICAgbXkgJGRlY2FtZWxpemUgPSBGaXhVcERlY2FtZWxpemVkTmFtZShk
ZWNhbWVsaXplKCRpbnRlcmZhY2VOYW1lKSk7CiAKKyAgICBpZiAoJG9iamVjdCBlcSAiTWVkaWFR
dWVyeUxpc3RMaXN0ZW5lciIpIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlmIChT
a2lwRnVuY3Rpb24oJGZ1bmN0aW9uLCAkZGVjYW1lbGl6ZSwgJHByZWZpeCkpIHsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KQEAgLTgyNyw3ICs4MzYsNyBAQCBzdWIgR2VuZXJhdGVGdW5jdGlvbiB7
CiAKICAgICBmb3JlYWNoIG15ICRwYXJhbSAoQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9KSB7CiAg
ICAgICAgIG15ICRwYXJhbUlETFR5cGUgPSAkcGFyYW0tPnR5cGU7Ci0gICAgICAgIGlmICgkcGFy
YW1JRExUeXBlIGVxICJFdmVudExpc3RlbmVyIikgeworICAgICAgICBpZiAoJHBhcmFtSURMVHlw
ZSBlcSAiRXZlbnRMaXN0ZW5lciIgfHwgJHBhcmFtSURMVHlwZSBlcSAiTWVkaWFRdWVyeUxpc3RM
aXN0ZW5lciIpIHsKICAgICAgICAgICAgIHB1c2goQGhCb2R5LCAiXG4vKiBUT0RPOiBldmVudCBm
dW5jdGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CiAgICAgICAgICAgICBwdXNoKEBjQm9k
eSwgIlxuLyogVE9ETzogZXZlbnQgZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOwog
ICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTA4MCw3ICsxMDg5LDkgQEAgc3ViIEdlbmVyYXRlRnVu
Y3Rpb25zIHsKIAogICAgIFRPUDoKICAgICBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEB7JGRhdGFO
b2RlLT5hdHRyaWJ1dGVzfSkgewotICAgICAgICBpZiAoU2tpcEF0dHJpYnV0ZSgkYXR0cmlidXRl
KSB8fCAkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUgZXEgIkV2ZW50TGlzdGVuZXIiKSB7Cisg
ICAgICAgIGlmIChTa2lwQXR0cmlidXRlKCRhdHRyaWJ1dGUpIHx8CisgICAgICAgICAgICAkYXR0
cmlidXRlLT5zaWduYXR1cmUtPnR5cGUgZXEgIkV2ZW50TGlzdGVuZXIiIHx8CisgICAgICAgICAg
ICAkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUgZXEgIk1lZGlhUXVlcnlMaXN0TGlzdGVuZXIi
KSB7CiAgICAgICAgICAgICBuZXh0IFRPUDsKICAgICAgICAgfQogICAgICAgICAKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IGZlMjliODAuLjIxZTU2
NTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0KKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAt
Niw2ICs2LDcgQEAKICMgQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMgQ29weXJpZ2h0IChDKSAyMDA5IENh
bWVyb24gTWNDb3JtYWNrIDxjYW1AbWNjLmlkLmF1PgogIyBDb3B5cmlnaHQgKEMpIFJlc2VhcmNo
IEluIE1vdGlvbiBMaW1pdGVkIDIwMTAuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdo
dCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykK
ICMKICMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgogIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwpAQCAtMjgyLDYgKzI4MywxMCBAQCBzdWIgQWRkSW5jbHVkZXNGb3JU
eXBlCiAgICAgaWYgKCR0eXBlIGVxICJEb2N1bWVudCIpIHsKICAgICAgICAgJGltcGxJbmNsdWRl
c3siTm9kZUZpbHRlci5oIn0gPSAxOwogICAgIH0KKworICAgIGlmICgkdHlwZSBlcSAiTWVkaWFR
dWVyeUxpc3RMaXN0ZW5lciIpIHsKKyAgICAgICAgJGltcGxJbmNsdWRlc3siTWVkaWFRdWVyeUxp
c3RMaXN0ZW5lci5oIn0gPSAxOworICAgIH0KIH0KIAogc3ViIEFkZEluY2x1ZGVzRm9yU1ZHQW5p
bWF0ZWRUeXBlCkBAIC0yMzc0LDYgKzIzNzksNyBAQCBteSAlbmF0aXZlVHlwZSA9ICgKICAgICAi
dW5zaWduZWQgc2hvcnQiID0+ICJ1bnNpZ25lZCBzaG9ydCIsCiAgICAgImxvbmcgbG9uZyIgPT4g
ImxvbmcgbG9uZyIsCiAgICAgInVuc2lnbmVkIGxvbmcgbG9uZyIgPT4gInVuc2lnbmVkIGxvbmcg
bG9uZyIsCisgICAgIk1lZGlhUXVlcnlMaXN0TGlzdGVuZXIiID0+ICJSZWZQdHI8TWVkaWFRdWVy
eUxpc3RMaXN0ZW5lcj4iCiApOwogCiBzdWIgR2V0TmF0aXZlVHlwZQpAQCAtMjQyMCw2ICsyNDI2
LDExIEBAIHN1YiBKU1ZhbHVlVG9OYXRpdmUKICAgICAgICAgcmV0dXJuICIkdmFsdWUiOwogICAg
IH0KIAorICAgIGlmICgkdHlwZSBlcSAiTWVkaWFRdWVyeUxpc3RMaXN0ZW5lciIpIHsKKyAgICAg
ICAgJGltcGxJbmNsdWRlc3siTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oIn0gPSAxOworICAgICAg
ICByZXR1cm4gIk1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OmNyZWF0ZSgiIC4gJHZhbHVlIC4iKSI7
CisgICAgfQorCiAgICAgaWYgKCR0eXBlIGVxICJTZXJpYWxpemVkU2NyaXB0VmFsdWUiIG9yICR0
eXBlIGVxICJhbnkiKSB7CiAgICAgICAgICRpbXBsSW5jbHVkZXN7IlNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZS5oIn0gPSAxOwogICAgICAgICByZXR1cm4gIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3Jl
YXRlKGV4ZWMsICR2YWx1ZSkiOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JWOC5wbSBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9yVjgucG0KaW5kZXggMThlODBlNC4uOTliM2MzOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCkBAIC02LDYgKzYsNyBAQAogIyBDb3B5cmlnaHQgKEMp
IDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KICMgQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAy
MDA5IEdvb2dsZSBJbmMuCiAjIENvcHlyaWdodCAoQykgMjAwOSBDYW1lcm9uIE1jQ29ybWFjayA8
Y2FtQG1jYy5pZC5hdT4KKyMgQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogIwogIyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAjIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yODY3LDYgKzI4
NjgsOCBAQCBzdWIgR2V0TmF0aXZlVHlwZQogCiAgICAgcmV0dXJuICJSZWZQdHI8JHt0eXBlfT4i
IGlmIElzUmVmUHRyVHlwZSgkdHlwZSkgYW5kIG5vdCAkaXNQYXJhbWV0ZXI7CiAKKyAgICByZXR1
cm4gIlJlZlB0cjxNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyPiIgaWYgJHR5cGUgZXEgIk1lZGlhUXVl
cnlMaXN0TGlzdGVuZXIiOworCiAgICAgIyBEZWZhdWx0LCBhc3N1bWUgbmF0aXZlIHR5cGUgaXMg
YSBwb2ludGVyIHdpdGggc2FtZSB0eXBlIG5hbWUgYXMgaWRsIHR5cGUKICAgICByZXR1cm4gIiR7
dHlwZX0qIjsKIH0KQEAgLTI5NjMsNiArMjk2NiwxMSBAQCBzdWIgSlNWYWx1ZVRvTmF0aXZlCiAg
ICAgICAgICRpbXBsSW5jbHVkZXN7IkZsb2F0UmVjdC5oIn0gPSAxOwogICAgIH0KIAorICAgIGlm
ICgkdHlwZSBlcSAiTWVkaWFRdWVyeUxpc3RMaXN0ZW5lciIpIHsKKyAgICAgICAgJGltcGxJbmNs
dWRlc3siTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oIn0gPSAxOworICAgICAgICByZXR1cm4gIk1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXI6OmNyZWF0ZSgiIC4gJHZhbHVlIC4gIikiOworICAgIH0KKwog
ICAgIGlmICgkdHlwZSBlcSAiU1ZHUG9pbnQiKSB7CiAgICAgICAgICRpbXBsSW5jbHVkZXN7IkZs
b2F0UG9pbnQuaCJ9ID0gMTsKICAgICB9CkBAIC0zMTExLDcgKzMxMTksOCBAQCBteSAlbm9uX3dy
YXBwZXJfdHlwZXMgPSAoCiAgICAgJ05vZGVGaWx0ZXInID0+IDEsCiAgICAgJ0V2ZW50TGlzdGVu
ZXInID0+IDEsCiAgICAgJ0lEQktleScgPT4gMSwKLSAgICAnRGF0ZScgPT4gMQorICAgICdEYXRl
JyA9PiAxLAorICAgICdNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyJyA9PiAxCiApOwogCiAKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0LmNwcCBiL1dlYkNvcmUvY3NzL01lZGlh
UXVlcnlMaXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45M2M0N2Nh
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3QuY3BwCkBAIC0w
LDAgKzEsOTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24g
YW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIk1lZGlhUXVlcnlMaXN0LmgiCisKKyNpbmNsdWRlICJNZWRpYUxpc3QuaCIKKyNp
bmNsdWRlICJNZWRpYVF1ZXJ5RXZhbHVhdG9yLmgiCisjaW5jbHVkZSAiTWVkaWFRdWVyeUxpc3RM
aXN0ZW5lci5oIgorI2luY2x1ZGUgIk1lZGlhUXVlcnlNYXRjaGVyLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdD4gTWVkaWFRdWVyeUxpc3Q6OmNy
ZWF0ZShQYXNzUmVmUHRyPE1lZGlhUXVlcnlNYXRjaGVyPiB2ZWN0b3IsIFBhc3NSZWZQdHI8TWVk
aWFMaXN0PiBtZWRpYSwgYm9vbCBtYXRjaGVzKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcg
TWVkaWFRdWVyeUxpc3QodmVjdG9yLCBtZWRpYSwgbWF0Y2hlcykpOworfQorCitNZWRpYVF1ZXJ5
TGlzdDo6TWVkaWFRdWVyeUxpc3QoUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TWF0Y2hlcj4gdmVjdG9y
LCBQYXNzUmVmUHRyPE1lZGlhTGlzdD4gbWVkaWEsIGJvb2wgbWF0Y2hlcykKKyAgICA6IG1fbWF0
Y2hlcih2ZWN0b3IpCisgICAgLCBtX21lZGlhKG1lZGlhKQorICAgICwgbV9ldmFsdWF0aW9uUm91
bmQobV9tYXRjaGVyLT5ldmFsdWF0aW9uUm91bmQoKSkKKyAgICAsIG1fY2hhbmdlUm91bmQobV9l
dmFsdWF0aW9uUm91bmQgLSAxKSAvLyBtX2V2YWx1YXRpb25Sb3VuZCBhbmQgbV9jaGFuZ2VSb3Vu
ZCBpbml0aWFsIHZhbHVlcyBtdXN0IGJlIGRpZmZlcmVudC4KKyAgICAsIG1fbWF0Y2hlcyhtYXRj
aGVzKQoreworfQorCitNZWRpYVF1ZXJ5TGlzdDo6fk1lZGlhUXVlcnlMaXN0KCkKK3sKK30KKwor
U3RyaW5nIE1lZGlhUXVlcnlMaXN0OjptZWRpYSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbWVk
aWEtPm1lZGlhVGV4dCgpOworfQorCit2b2lkIE1lZGlhUXVlcnlMaXN0OjphZGRMaXN0ZW5lcihQ
YXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+IGxpc3RlbmVyKQoreworICAgIG1fbWF0
Y2hlci0+YWRkTGlzdGVuZXIobGlzdGVuZXIsIHRoaXMpOworfQorCit2b2lkIE1lZGlhUXVlcnlM
aXN0OjpyZW1vdmVMaXN0ZW5lcihQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+IGxp
c3RlbmVyKQoreworICAgIG1fbWF0Y2hlci0+cmVtb3ZlTGlzdGVuZXIobGlzdGVuZXIsIHRoaXMp
OworfQorCit2b2lkIE1lZGlhUXVlcnlMaXN0OjpldmFsdWF0ZShNZWRpYVF1ZXJ5RXZhbHVhdG9y
KiBldmFsdWF0b3IsIGJvb2wmIG5vdGlmaWNhdGlvbk5lZWRlZCkKK3sKKyAgICBpZiAobV9ldmFs
dWF0aW9uUm91bmQgIT0gbV9tYXRjaGVyLT5ldmFsdWF0aW9uUm91bmQoKSAmJiBldmFsdWF0b3Ip
CisgICAgICAgIHNldE1hdGNoZXMoZXZhbHVhdG9yLT5ldmFsKG1fbWVkaWEuZ2V0KCkpKTsKKyAg
ICBub3RpZmljYXRpb25OZWVkZWQgPSBtX2NoYW5nZVJvdW5kID09IG1fbWF0Y2hlci0+ZXZhbHVh
dGlvblJvdW5kKCk7Cit9CisKK3ZvaWQgTWVkaWFRdWVyeUxpc3Q6OnNldE1hdGNoZXMoYm9vbCBu
ZXdWYWx1ZSkKK3sKKyAgICBtX2V2YWx1YXRpb25Sb3VuZCA9IG1fbWF0Y2hlci0+ZXZhbHVhdGlv
blJvdW5kKCk7CisKKyAgICBpZiAobmV3VmFsdWUgPT0gbV9tYXRjaGVzKQorICAgICAgICByZXR1
cm47CisKKyAgICBtX21hdGNoZXMgPSBuZXdWYWx1ZTsKKyAgICBtX2NoYW5nZVJvdW5kID0gbV9l
dmFsdWF0aW9uUm91bmQ7Cit9CisKK2Jvb2wgTWVkaWFRdWVyeUxpc3Q6Om1hdGNoZXMoKQorewor
ICAgIGlmIChtX2V2YWx1YXRpb25Sb3VuZCAhPSBtX21hdGNoZXItPmV2YWx1YXRpb25Sb3VuZCgp
KQorICAgICAgICBzZXRNYXRjaGVzKG1fbWF0Y2hlci0+ZXZhbHVhdGUobV9tZWRpYS5nZXQoKSkp
OworICAgIHJldHVybiBtX21hdGNoZXM7Cit9CisKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3Nz
L01lZGlhUXVlcnlMaXN0LmggYi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc4YjM2MjAKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdC5oCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBD
T01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENP
TVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBNZWRpYVF1ZXJ5TGlzdF9oCisjZGVmaW5lIE1lZGlhUXVlcnlM
aXN0X2gKKworI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTWVkaWFMaXN0OworY2xh
c3MgTWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjsKK2NsYXNzIE1lZGlhUXVlcnlFdmFsdWF0b3I7Citj
bGFzcyBNZWRpYVF1ZXJ5TWF0Y2hlcjsKKworLy8gIE1lZGlhUXVlcnlMaXN0IGludGVyZmFjZSBp
cyBzcGVjaWZpZWQgYXQgaHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3Nzb20tdmlldy8jdGhlLW1l
ZGlhcXVlcnlsaXN0LWludGVyZmFjZQorLy8gIFRoZSBvYmplY3RzIG9mIHRoaXMgY2xhc3MgYXJl
IHJldHVybmVkIGJ5IHdpbmRvdy5tYXRjaE1lZGlhLiBUaGV5IG1heSBiZSB1c2VkIHRvCisvLyAg
cmV0cmlldmUgdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIGdpdmVuIG1lZGlhIHF1ZXJ5IGFuZCB0
byBhZGQvcmVtb3ZlIGxpc3RlbmVycyB0aGF0CisvLyAgd2lsbCBiZSBjYWxsZWQgd2hlbmV2ZXIg
dGhlIHZhbHVlIG9mIHRoZSBxdWVyeSBjaGFuZ2VzLgorCitjbGFzcyBNZWRpYVF1ZXJ5TGlzdCA6
IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhUXVlcnlMaXN0PiB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3Q+IGNyZWF0ZShQYXNzUmVmUHRyPE1lZGlhUXVlcnlN
YXRjaGVyPiwgUGFzc1JlZlB0cjxNZWRpYUxpc3Q+LCBib29sKTsKKyAgICB+TWVkaWFRdWVyeUxp
c3QoKTsKKworICAgIFN0cmluZyBtZWRpYSgpIGNvbnN0OworICAgIGJvb2wgbWF0Y2hlcygpOwor
CisgICAgdm9pZCBhZGRMaXN0ZW5lcihQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+
KTsKKyAgICB2b2lkIHJlbW92ZUxpc3RlbmVyKFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lcj4pOworCisgICAgdm9pZCBldmFsdWF0ZShNZWRpYVF1ZXJ5RXZhbHVhdG9yKiwgYm9vbCYg
bm90aWZpY2F0aW9uTmVlZGVkKTsKKworcHJpdmF0ZToKKyAgICBNZWRpYVF1ZXJ5TGlzdChQYXNz
UmVmUHRyPE1lZGlhUXVlcnlNYXRjaGVyPiwgUGFzc1JlZlB0cjxNZWRpYUxpc3Q+LCBib29sIG1h
dGNoZXMpOworICAgIHZvaWQgc2V0TWF0Y2hlcyhib29sKTsKKworICAgIFJlZlB0cjxNZWRpYVF1
ZXJ5TWF0Y2hlcj4gbV9tYXRjaGVyOworICAgIFJlZlB0cjxNZWRpYUxpc3Q+IG1fbWVkaWE7Cisg
ICAgaW50IG1fZXZhbHVhdGlvblJvdW5kOyAvLyBJbmRpY2F0ZXMgaWYgdGhlIHF1ZXJ5IGhhcyBi
ZWVuIGV2YWx1YXRlZCBhZnRlciB0aGUgbGFzdCBzdHlsZSBzZWxlY3RvciBjaGFuZ2UuCisgICAg
aW50IG1fY2hhbmdlUm91bmQ7IC8vIFVzZWQgdG8ga25vdyBpZiB0aGUgcXVlcnkgaGFzIGNoYW5n
ZWQgaW4gdGhlIGxhc3Qgc3R5bGUgc2VsZWN0b3IgY2hhbmdlLgorICAgIGJvb2wgbV9tYXRjaGVz
OworfTsKKworfQorCisjZW5kaWYgLy8gTWVkaWFRdWVyeUxpc3RfaApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9jc3MvTWVkaWFRdWVyeUxpc3QuaWRsIGIvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3Qu
aWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0MjRhNzkKLS0tIC9kZXYv
bnVsbAorKysgYi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdC5pZGwKQEAgLTAsMCArMSwzMyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRz
IHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgdmlldyB7CisgICAgaW50ZXJmYWNlIE1l
ZGlhUXVlcnlMaXN0IHsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBtZWRp
YTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gbWF0Y2hlczsKKyAgICAgICAg
dm9pZCBhZGRMaXN0ZW5lcihpbiBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIGxpc3RlbmVyKTsKKyAg
ICAgICAgdm9pZCByZW1vdmVMaXN0ZW5lcihpbiBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIGxpc3Rl
bmVyKTsKKyAgICB9OworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3RM
aXN0ZW5lci5jcHAgYi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NTk2OTk3Ci0tLSAvZGV2L251bGwKKysr
IGIvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKQEAgLTAsMCArMSw1NSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRz
IHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oIgorI2luY2x1ZGUgIk1lZGlhUXVlcnlMaXN0LmgiCisj
aW5jbHVkZSAiU2NyaXB0RnVuY3Rpb25DYWxsLmgiCisKKyNpZiBVU0UoSlNDKQorI2luY2x1ZGUg
IkpTTWVkaWFRdWVyeUxpc3QuaCIKKyNlbHNlCisjaW5jbHVkZSAiVjhNZWRpYVF1ZXJ5TGlzdC5o
IgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyOjpxdWVyeUNoYW5nZWQoU2NyaXB0U3RhdGUqIHN0YXRlLCBNZWRpYVF1ZXJ5TGlzdCog
cXVlcnkpCit7CisgICAgU2NyaXB0Q2FsbGJhY2sgY2FsbGJhY2soc3RhdGUsIG1fdmFsdWUpOwor
I2lmIFVTRShKU0MpCisgICAgY2FsbGJhY2suYXBwZW5kQXJndW1lbnQodG9KUyhzdGF0ZSwgcXVl
cnkpKTsKKyNlbHNlCisgICAgY2FsbGJhY2suYXBwZW5kQXJndW1lbnQodG9WOChxdWVyeSkpOwor
I2VuZGlmCisgICAgY2FsbGJhY2suY2FsbCgpOworfQorCitib29sIE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXI6OmlzRXF1YWxUbyhTY3JpcHRTdGF0ZSogc3RhdGUsIGNvbnN0IE1lZGlhUXVlcnlMaXN0
TGlzdGVuZXIqIG90aGVyKQoreworICAgIHJldHVybiBvdGhlciAmJiBvdGhlci0+bV92YWx1ZS5p
c0VxdWFsKHN0YXRlLCBtX3ZhbHVlKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3Mv
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oIGIvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3RMaXN0
ZW5lci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBhNzEzOWIKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgKQEAgLTAs
MCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBh
bmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE1lZGlhUXVlcnlMaXN0
TGlzdGVuZXJfaAorI2RlZmluZSBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyX2gKKworI2luY2x1ZGUg
IlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSAiU2NyaXB0U3RhdGUuaCIKKyNpbmNsdWRlICJT
Y3JpcHRWYWx1ZS5oIgorCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBNZWRpYVF1ZXJ5TGlzdDsKKworLy8gIFNlZSBodHRwOi8vZGV2
LnczLm9yZy9jc3N3Zy9jc3NvbS12aWV3LyN0aGUtbWVkaWFxdWVyeWxpc3QtaW50ZXJmYWNlCisK
K2NsYXNzIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFR
dWVyeUxpc3RMaXN0ZW5lcj4gY3JlYXRlKFNjcmlwdFZhbHVlIHZhbHVlKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKHZhbHVlKSk7Cisg
ICAgfQorICAgIHZvaWQgcXVlcnlDaGFuZ2VkKFNjcmlwdFN0YXRlKiwgTWVkaWFRdWVyeUxpc3Qq
KTsKKyAgICBib29sIGlzRXF1YWxUbyhTY3JpcHRTdGF0ZSosIGNvbnN0IE1lZGlhUXVlcnlMaXN0
TGlzdGVuZXIqKTsKKworcHJpdmF0ZToKKyAgICBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKFNjcmlw
dFZhbHVlIHZhbHVlKSA6IG1fdmFsdWUodmFsdWUpIHsgfQorCisgICAgU2NyaXB0VmFsdWUgbV92
YWx1ZTsKK307CisKK30KKworI2VuZGlmIC8vIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJfaApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5pZGwgYi9XZWJDb3Jl
L2Nzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi42Y2U4YWVjCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9jc3MvTWVkaWFR
dWVyeUxpc3RMaXN0ZW5lci5pZGwKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVS
LCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIs
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCittb2R1bGUgdmlldyB7CisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgTm9TdGF0aWNUYWJs
ZXMsCisgICAgICAgIE9iakNQcm90b2NvbCwKKyAgICAgICAgUHVyZUludGVyZmFjZSwKKyAgICAg
ICAgT21pdENvbnN0cnVjdG9yCisgICAgXSBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIHsKKyAgICAg
ICAgdm9pZCBxdWVyeUNoYW5nZWQoaW4gTWVkaWFRdWVyeUxpc3QgbGlzdCk7CisgICAgfTsKK30K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlNYXRjaGVyLmNwcCBiL1dlYkNvcmUv
Y3NzL01lZGlhUXVlcnlNYXRjaGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi44MGFiYWUwCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeU1h
dGNoZXIuY3BwCkBAIC0wLDAgKzEsMTc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5v
a2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRpYVF1ZXJ5TWF0Y2hlci5oIgorCisjaW5jbHVk
ZSAiQ1NTU3R5bGVTZWxlY3Rvci5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAi
RWxlbWVudC5oIgorI2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIk1lZGlhTGlzdC5o
IgorI2luY2x1ZGUgIk1lZGlhUXVlcnlFdmFsdWF0b3IuaCIKKyNpbmNsdWRlICJNZWRpYVF1ZXJ5
TGlzdC5oIgorI2luY2x1ZGUgIk1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitNZWRpYVF1ZXJ5TWF0Y2hlcjo6TGlzdGVuZXI6Okxpc3RlbmVyKFBhc3NS
ZWZQdHI8TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4gbGlzdGVuZXIsIFBhc3NSZWZQdHI8TWVkaWFR
dWVyeUxpc3Q+IHF1ZXJ5KQorICAgIDogbV9saXN0ZW5lcihsaXN0ZW5lcikKKyAgICAsIG1fcXVl
cnkocXVlcnkpCit7Cit9CisKK01lZGlhUXVlcnlNYXRjaGVyOjpMaXN0ZW5lcjo6fkxpc3RlbmVy
KCkKK3sKK30KKwordm9pZCBNZWRpYVF1ZXJ5TWF0Y2hlcjo6TGlzdGVuZXI6OmV2YWx1YXRlKFNj
cmlwdFN0YXRlKiBzdGF0ZSwgTWVkaWFRdWVyeUV2YWx1YXRvciogZXZhbHVhdG9yKQoreworICAg
IGJvb2wgbm90aWZ5OworICAgIG1fcXVlcnktPmV2YWx1YXRlKGV2YWx1YXRvciwgbm90aWZ5KTsK
KyAgICBpZiAobm90aWZ5KQorICAgICAgICBtX2xpc3RlbmVyLT5xdWVyeUNoYW5nZWQoc3RhdGUs
IG1fcXVlcnkuZ2V0KCkpOworfQorCitNZWRpYVF1ZXJ5TWF0Y2hlcjo6TWVkaWFRdWVyeU1hdGNo
ZXIoRG9jdW1lbnQqIGRvY3VtZW50KQorICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKKyAgICAs
IG1fZXZhbHVhdGlvblJvdW5kKDApCit7CisgICAgQVNTRVJUKG1fZG9jdW1lbnQpOworfQorCitN
ZWRpYVF1ZXJ5TWF0Y2hlcjo6fk1lZGlhUXVlcnlNYXRjaGVyKCkKK3sKK30KKwordm9pZCBNZWRp
YVF1ZXJ5TWF0Y2hlcjo6ZG9jdW1lbnREZXN0cm95ZWQoKQoreworICAgIG1fbGlzdGVuZXJzLmNs
ZWFyKCk7CisgICAgbV9kb2N1bWVudCA9IDA7Cit9CisKK1N0cmluZyBNZWRpYVF1ZXJ5TWF0Y2hl
cjo6bWVkaWFUeXBlKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fZG9jdW1lbnQgfHwgIW1fZG9jdW1l
bnQtPmZyYW1lKCkgfHwgIW1fZG9jdW1lbnQtPmZyYW1lKCktPnZpZXcoKSkKKyAgICAgICAgcmV0
dXJuIFN0cmluZygpOworCisgICAgcmV0dXJuIG1fZG9jdW1lbnQtPmZyYW1lKCktPnZpZXcoKS0+
bWVkaWFUeXBlKCk7Cit9CisKK1Bhc3NPd25QdHI8TWVkaWFRdWVyeUV2YWx1YXRvcj4gTWVkaWFR
dWVyeU1hdGNoZXI6OnByZXBhcmVFdmFsdWF0b3IoKSBjb25zdAoreworICAgIGlmICghbV9kb2N1
bWVudCB8fCAhbV9kb2N1bWVudC0+ZnJhbWUoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBE
b2N1bWVudCogZG9jdW1lbnQgPSBtX2RvY3VtZW50LT5mcmFtZSgpLT5kb2N1bWVudCgpOworICAg
IGlmICghZG9jdW1lbnQpCisgICAgICAgIHJldHVybiAwOworCisgICAgRWxlbWVudCogZG9jdW1l
bnRFbGVtZW50ID0gZG9jdW1lbnQtPmRvY3VtZW50RWxlbWVudCgpOworICAgIGlmICghZG9jdW1l
bnRFbGVtZW50KQorICAgICAgICByZXR1cm4gMDsKKworICAgIENTU1N0eWxlU2VsZWN0b3IqIHN0
eWxlU2VsZWN0b3IgPSBkb2N1bWVudC0+c3R5bGVTZWxlY3RvcigpOworICAgIGlmICghc3R5bGVT
ZWxlY3RvcikKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IHJv
b3RTdHlsZSA9IHN0eWxlU2VsZWN0b3ItPnN0eWxlRm9yRWxlbWVudChkb2N1bWVudEVsZW1lbnQs
IDAgLypkZWZhdWx0UGFyZW50Ki8sIGZhbHNlIC8qYWxsb3dTaGFyaW5nKi8sIHRydWUgLypyZXNv
bHZlRm9yUm9vdERlZmF1bHQqLyk7CisKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IE1lZGlhUXVl
cnlFdmFsdWF0b3IobWVkaWFUeXBlKCksIG1fZG9jdW1lbnQtPmZyYW1lKCksIHJvb3RTdHlsZS5n
ZXQoKSkpOworfQorCitib29sIE1lZGlhUXVlcnlNYXRjaGVyOjpldmFsdWF0ZShNZWRpYUxpc3Qq
IG1lZGlhKQoreworICAgIGlmICghbWVkaWEpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IE93blB0cjxNZWRpYVF1ZXJ5RXZhbHVhdG9yPiBldmFsdWF0b3IocHJlcGFyZUV2YWx1YXRvcigp
KTsKKyAgICByZXR1cm4gZXZhbHVhdG9yICYmIGV2YWx1YXRvci0+ZXZhbChtZWRpYSk7Cit9CisK
K1Bhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3Q+IE1lZGlhUXVlcnlNYXRjaGVyOjptYXRjaE1lZGlh
KGNvbnN0IFN0cmluZyYgcXVlcnkpCit7CisgICAgaWYgKCFtX2RvY3VtZW50KQorICAgICAgICBy
ZXR1cm4gMDsKKworICAgIFJlZlB0cjxNZWRpYUxpc3Q+IG1lZGlhID0gTWVkaWFMaXN0OjpjcmVh
dGUocXVlcnksIGZhbHNlKTsKKyAgICByZXR1cm4gTWVkaWFRdWVyeUxpc3Q6OmNyZWF0ZSh0aGlz
LCBtZWRpYSwgZXZhbHVhdGUobWVkaWEuZ2V0KCkpKTsKK30KKwordm9pZCBNZWRpYVF1ZXJ5TWF0
Y2hlcjo6YWRkTGlzdGVuZXIoUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyPiBsaXN0
ZW5lciwgUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdD4gcXVlcnkpCit7CisgICAgaWYgKCFtX2Rv
Y3VtZW50IHx8ICFtX2RvY3VtZW50LT5mcmFtZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBT
Y3JpcHRTdGF0ZSogZXhlYyA9IG1haW5Xb3JsZFNjcmlwdFN0YXRlKG1fZG9jdW1lbnQtPmZyYW1l
KCkpOworICAgIGlmICghZXhlYykKKyAgICAgICAgcmV0dXJuOworCisgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBtX2xpc3RlbmVycy5zaXplKCk7ICsraSkgeworICAgICAgICBpZiAobV9saXN0
ZW5lcnNbaV0tPmxpc3RlbmVyKCktPmlzRXF1YWxUbyhleGVjLCBsaXN0ZW5lci5nZXQoKSkgJiYg
bV9saXN0ZW5lcnNbaV0tPnF1ZXJ5KCkgPT0gcXVlcnkuZ2V0KCkpCisgICAgICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgbV9saXN0ZW5lcnMuYXBwZW5kKG5ldyBMaXN0ZW5lcihsaXN0ZW5l
ciwgcXVlcnkpKTsKK30KKwordm9pZCBNZWRpYVF1ZXJ5TWF0Y2hlcjo6cmVtb3ZlTGlzdGVuZXIo
UGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyPiBsaXN0ZW5lciwgUGFzc1JlZlB0cjxN
ZWRpYVF1ZXJ5TGlzdD4gcXVlcnkpCit7CisgICAgaWYgKCFtX2RvY3VtZW50IHx8ICFtX2RvY3Vt
ZW50LT5mcmFtZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBTY3JpcHRTdGF0ZSogZXhlYyA9
IG1haW5Xb3JsZFNjcmlwdFN0YXRlKG1fZG9jdW1lbnQtPmZyYW1lKCkpOworICAgIGlmICghZXhl
YykKKyAgICAgICAgcmV0dXJuOworCisgICAgZm9yIChpbnQgaSA9IG1fbGlzdGVuZXJzLnNpemUo
KSAtIDE7IGkgPj0gMDsgLS1pKSB7CisgICAgICAgIGlmIChtX2xpc3RlbmVyc1tpXS0+bGlzdGVu
ZXIoKS0+aXNFcXVhbFRvKGV4ZWMsIGxpc3RlbmVyLmdldCgpKSAmJiBtX2xpc3RlbmVyc1tpXS0+
cXVlcnkoKSA9PSBxdWVyeS5nZXQoKSkgeworICAgICAgICAgICAgbV9saXN0ZW5lcnMucmVtb3Zl
KGkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorfQorCit2b2lkIE1l
ZGlhUXVlcnlNYXRjaGVyOjpzdHlsZVNlbGVjdG9yQ2hhbmdlZCgpCit7CisgICAgQVNTRVJUKG1f
ZG9jdW1lbnQpOworCisgICAgU2NyaXB0U3RhdGUqIGV4ZWMgPSBtYWluV29ybGRTY3JpcHRTdGF0
ZShtX2RvY3VtZW50LT5mcmFtZSgpKTsKKyAgICBpZiAoIWV4ZWMpCisgICAgICAgIHJldHVybjsK
KworICAgICsrbV9ldmFsdWF0aW9uUm91bmQ7CisgICAgT3duUHRyPE1lZGlhUXVlcnlFdmFsdWF0
b3I+IGV2YWx1YXRvciA9IHByZXBhcmVFdmFsdWF0b3IoKTsKKyAgICBpZiAoIWV2YWx1YXRvcikK
KyAgICAgICAgcmV0dXJuOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2xpc3RlbmVy
cy5zaXplKCk7ICsraSkKKyAgICAgICAgbV9saXN0ZW5lcnNbaV0tPmV2YWx1YXRlKGV4ZWMsIGV2
YWx1YXRvci5nZXQoKSk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL01lZGlhUXVl
cnlNYXRjaGVyLmggYi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TWF0Y2hlci5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJkMzQ5YmMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJD
b3JlL2Nzcy9NZWRpYVF1ZXJ5TWF0Y2hlci5oCkBAIC0wLDAgKzEsOTUgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBD
T01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENP
TVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBNZWRpYVF1ZXJ5TWF0Y2hlcl9oCisjZGVmaW5lIE1lZGlhUXVl
cnlNYXRjaGVyX2gKKworI2luY2x1ZGUgIlNjcmlwdFN0YXRlLmgiCisKKyNpbmNsdWRlIDx3dGYv
UGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3Rm
L1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIERvY3VtZW50OworY2xhc3MgTWVkaWFMaXN0OworY2xhc3MgTWVk
aWFRdWVyeUxpc3Q7CitjbGFzcyBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOworY2xhc3MgTWVkaWFR
dWVyeUV2YWx1YXRvcjsKKworLy8gIE1lZGlhUXVlcnlNYXRjaGVyIGNsYXNzIGlzIHJlc3BvbnNp
YmxlIGZvciBrZWVwaW5nIGEgdmVjdG9yIG9mIHBhaXJzCisvLyAgTWVkaWFRdWVyeUxpc3QgeCBN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLiBJdCBpcyByZXNwb25zaWJsZSBmb3IgZXZhbHVhdGluZyB0
aGUgcXVlcmllcworLy8gIHdoZW5ldmVyIGl0IGlzIG5lZWRlZCBhbmQgdG8gY2FsbCB0aGUgbGlz
dGVuZXJzIGlmIHRoZSBjb3JyZXNwb25kaW5nIHF1ZXJ5IGhhcyBjaGFuZ2VkLgorLy8gVGhlIGxp
c3RlbmVycyBtdXN0IGJlIGNhbGxlZCBpbiB0aGUgdmVyeSBzYW1lIG9yZGVyIGluIHdoaWNoIHRo
ZXkgaGF2ZSBiZWVuIGFkZGVkLgorCitjbGFzcyBNZWRpYVF1ZXJ5TWF0Y2hlciA6IHB1YmxpYyBS
ZWZDb3VudGVkPE1lZGlhUXVlcnlNYXRjaGVyPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NS
ZWZQdHI8TWVkaWFRdWVyeU1hdGNoZXI+IGNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpIHsgcmV0
dXJuIGFkb3B0UmVmKG5ldyBNZWRpYVF1ZXJ5TWF0Y2hlcihkb2N1bWVudCkpOyB9CisgICAgfk1l
ZGlhUXVlcnlNYXRjaGVyKCk7CisgICAgdm9pZCBkb2N1bWVudERlc3Ryb3llZCgpOworCisgICAg
dm9pZCBhZGRMaXN0ZW5lcihQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+LCBQYXNz
UmVmUHRyPE1lZGlhUXVlcnlMaXN0Pik7CisgICAgdm9pZCByZW1vdmVMaXN0ZW5lcihQYXNzUmVm
UHRyPE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+LCBQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0Pik7
CisKKyAgICBQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0PiBtYXRjaE1lZGlhKGNvbnN0IFN0cmlu
ZyYpOworCisgICAgaW50IGV2YWx1YXRpb25Sb3VuZCgpIGNvbnN0IHsgcmV0dXJuIG1fZXZhbHVh
dGlvblJvdW5kOyB9CisgICAgdm9pZCBzdHlsZVNlbGVjdG9yQ2hhbmdlZCgpOworICAgIGJvb2wg
ZXZhbHVhdGUoTWVkaWFMaXN0Kik7CisKK3ByaXZhdGU6CisgICAgY2xhc3MgTGlzdGVuZXIgewor
ICAgIHB1YmxpYzoKKyAgICAgICAgTGlzdGVuZXIoUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyPiwgUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdD4pOworICAgICAgICB+TGlzdGVuZXIo
KTsKKworICAgICAgICB2b2lkIGV2YWx1YXRlKFNjcmlwdFN0YXRlKiwgTWVkaWFRdWVyeUV2YWx1
YXRvciopOworCisgICAgICAgIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqIGxpc3RlbmVyKCkgeyBy
ZXR1cm4gbV9saXN0ZW5lci5nZXQoKTsgfQorICAgICAgICBNZWRpYVF1ZXJ5TGlzdCogcXVlcnko
KSB7IHJldHVybiBtX3F1ZXJ5LmdldCgpOyB9CisKKyAgICBwcml2YXRlOgorICAgICAgICBSZWZQ
dHI8TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4gbV9saXN0ZW5lcjsKKyAgICAgICAgUmVmUHRyPE1l
ZGlhUXVlcnlMaXN0PiBtX3F1ZXJ5OworICAgIH07CisKKyAgICBNZWRpYVF1ZXJ5TWF0Y2hlcihE
b2N1bWVudCopOworICAgIFBhc3NPd25QdHI8TWVkaWFRdWVyeUV2YWx1YXRvcj4gcHJlcGFyZUV2
YWx1YXRvcigpIGNvbnN0OworICAgIFN0cmluZyBtZWRpYVR5cGUoKSBjb25zdDsKKworICAgIERv
Y3VtZW50KiBtX2RvY3VtZW50OworICAgIFZlY3RvcjxPd25QdHI8TGlzdGVuZXI+ID4gbV9saXN0
ZW5lcnM7CisKKyAgICAvLyBUaGlzIHZhbHVlIGlzIGluY3JlbWVudGVkIGF0IHN0eWxlIHNlbGVj
dG9yIGNoYW5nZXMuCisgICAgLy8gSXQgaXMgdXNlZCB0byBhdm9pZCBldmFsdWF0aW5nIHF1ZXJp
ZXMgbW9yZSB0aGVuIG9uY2UgYW5kIHRvIG1ha2Ugc3VyZQorICAgIC8vIHRoYXQgYSBtZWRpYSBx
dWVyeSByZXN1bHQgY2hhbmdlIGlzIG5vdGlmaWVkIGV4YWN0bHkgb25jZS4KKyAgICBpbnQgbV9l
dmFsdWF0aW9uUm91bmQ7Cit9OworCit9CisKKyNlbmRpZiAvLyBNZWRpYVF1ZXJ5TWF0Y2hlcl9o
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKaW5kZXggZTg5ZWI3Mi4uMWMyMGU5YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNiw2ICs2LDcg
QEAKICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIw
MDkgVG9yY2ggTW9iaWxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9y
Y2htb2JpbGUuY29tLykKICAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0
aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICoKICAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC05
MSw2ICs5Miw4IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5j
bHVkZSAiS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJN
ZWRpYVF1ZXJ5TGlzdC5oIgorI2luY2x1ZGUgIk1lZGlhUXVlcnlNYXRjaGVyLmgiCiAjaW5jbHVk
ZSAiTWVzc2FnZUV2ZW50LmgiCiAjaW5jbHVkZSAiTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIk1v
dXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMuaCIKQEAgLTU2NSw2ICs1NjgsMTYgQEAgRG9jdW1l
bnQ6On5Eb2N1bWVudCgpCiAgICAgICAgIG1fc3R5bGVTaGVldHMtPmRvY3VtZW50RGVzdHJveWVk
KCk7CiAKICAgICBtX3dlYWtSZWZlcmVuY2UtPmNsZWFyKCk7CisKKyAgICBpZiAobV9tZWRpYVF1
ZXJ5TWF0Y2hlcikKKyAgICAgICAgbV9tZWRpYVF1ZXJ5TWF0Y2hlci0+ZG9jdW1lbnREZXN0cm95
ZWQoKTsKK30KKworTWVkaWFRdWVyeU1hdGNoZXIqIERvY3VtZW50OjptZWRpYVF1ZXJ5TWF0Y2hl
cigpCit7CisgICAgaWYgKCFtX21lZGlhUXVlcnlNYXRjaGVyKQorICAgICAgICBtX21lZGlhUXVl
cnlNYXRjaGVyID0gTWVkaWFRdWVyeU1hdGNoZXI6OmNyZWF0ZSh0aGlzKTsKKyAgICByZXR1cm4g
bV9tZWRpYVF1ZXJ5TWF0Y2hlci5nZXQoKTsKIH0KIAogI2lmIFVTRShKU0MpCkBAIC0yODM1LDYg
KzI4NDgsOSBAQCB2b2lkIERvY3VtZW50OjpzdHlsZVNlbGVjdG9yQ2hhbmdlZChTdHlsZVNlbGVj
dG9yVXBkYXRlRmxhZyB1cGRhdGVGbGFnKQogICAgICAgICBpZiAodmlldygpKQogICAgICAgICAg
ICAgdmlldygpLT5zY2hlZHVsZVJlbGF5b3V0KCk7CiAgICAgfQorCisgICAgaWYgKG1fbWVkaWFR
dWVyeU1hdGNoZXIpCisgICAgICAgIG1fbWVkaWFRdWVyeU1hdGNoZXItPnN0eWxlU2VsZWN0b3JD
aGFuZ2VkKCk7CiB9CiAKIHZvaWQgRG9jdW1lbnQ6OmFkZFN0eWxlU2hlZXRDYW5kaWRhdGVOb2Rl
KE5vZGUqIG5vZGUsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggYTk4OTAxZS4uYjI3
ODNhZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCkBAIC01LDYgKzUsNyBAQAogICogICAgICAgICAgIChDKSAyMDA2IEFsZXhl
eSBQcm9za3VyeWFrb3YgKGFwQHdlYmtpdC5vcmcpCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIw
MDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5IFRvcmNoIE1vYmlsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuIChodHRwOi8vd3d3LnRvcmNobW9iaWxlLmNvbS8pCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTkzLDYgKzk0LDggQEAgY2xhc3MgSW50UG9pbnQ7
CiBjbGFzcyBET01XcmFwcGVyV29ybGQ7CiBjbGFzcyBKU05vZGU7CiBjbGFzcyBNZWRpYUNhblN0
YXJ0TGlzdGVuZXI7CitjbGFzcyBNZWRpYVF1ZXJ5TGlzdDsKK2NsYXNzIE1lZGlhUXVlcnlNYXRj
aGVyOwogY2xhc3MgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0czsKIGNsYXNzIE5vZGVGaWx0
ZXI7CiBjbGFzcyBOb2RlSXRlcmF0b3I7CkBAIC0yMDIsNiArMjA1LDggQEAgcHVibGljOgogICAg
IH0KICAgICB2aXJ0dWFsIH5Eb2N1bWVudCgpOwogCisgICAgTWVkaWFRdWVyeU1hdGNoZXIqIG1l
ZGlhUXVlcnlNYXRjaGVyKCk7CisKICAgICB1c2luZyBDb250YWluZXJOb2RlOjpyZWY7CiAgICAg
dXNpbmcgQ29udGFpbmVyTm9kZTo6ZGVyZWY7CiAKQEAgLTEzMzQsNiArMTMzOSw4IEBAIHByaXZh
dGU6CiAgICAgVGltZXI8RG9jdW1lbnQ+IG1fbG9hZEV2ZW50RGVsYXlUaW1lcjsKIAogICAgIFZp
ZXdwb3J0QXJndW1lbnRzIG1fdmlld3BvcnRBcmd1bWVudHM7CisKKyAgICBSZWZQdHI8TWVkaWFR
dWVyeU1hdGNoZXI+IG1fbWVkaWFRdWVyeU1hdGNoZXI7CiB9OwogCiBpbmxpbmUgYm9vbCBEb2N1
bWVudDo6aGFzRWxlbWVudFdpdGhJZChBdG9taWNTdHJpbmdJbXBsKiBpZCkgY29uc3QKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
dy5jcHAKaW5kZXggOWQ2YzYxMC4uNmVlMzI5YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTEsNSArMSw2
IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlv
biBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtNjUsNyArNjYsOCBAQAogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlv
bi5oIgogI2luY2x1ZGUgIktVUkwuaCIKICNpbmNsdWRlICJMb2NhdGlvbi5oIgotI2luY2x1ZGUg
IlN0eWxlTWVkaWEuaCIKKyNpbmNsdWRlICJNZWRpYVF1ZXJ5TGlzdC5oIgorI2luY2x1ZGUgIk1l
ZGlhUXVlcnlNYXRjaGVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZUV2ZW50LmgiCiAjaW5jbHVkZSAi
TmF2aWdhdG9yLmgiCiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uQ2VudGVyLmgiCkBAIC04MSw2ICs4
Myw3IEBACiAjaW5jbHVkZSAiU3RvcmFnZS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VBcmVhLmgiCiAj
aW5jbHVkZSAiU3RvcmFnZU5hbWVzcGFjZS5oIgorI2luY2x1ZGUgIlN0eWxlTWVkaWEuaCIKICNp
bmNsdWRlICJTdWRkZW5UZXJtaW5hdGlvbi5oIgogI2luY2x1ZGUgIldlYktpdFBvaW50LmgiCiAj
aW5jbHVkZSA8YWxnb3JpdGhtPgpAQCAtNDA5LDYgKzQxMiwxMSBAQCBTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBET01XaW5kb3c6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdAogICAgIHJl
dHVybiBkb2N1bWVudCgpOwogfQogCitQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0PiBET01XaW5k
b3c6Om1hdGNoTWVkaWEoY29uc3QgU3RyaW5nJiBtZWRpYSkKK3sKKyAgICByZXR1cm4gZG9jdW1l
bnQoKSA/IGRvY3VtZW50KCktPm1lZGlhUXVlcnlNYXRjaGVyKCktPm1hdGNoTWVkaWEobWVkaWEp
IDogMDsKK30KKwogdm9pZCBET01XaW5kb3c6OmRpc2Nvbm5lY3RGcmFtZSgpCiB7CiAgICAgbV9m
cmFtZSA9IDA7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmggYi9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmgKaW5kZXggZTk1OGIzOC4uNzBhNjQ4NCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5oCisrKyBiL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaApAQCAt
MSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDkgQXBwbGUg
SW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBD
b3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtNTgsMTAgKzU5LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICBjbGFzcyBIaXN0b3J5OwogICAgIGNsYXNzIElEQkZhY3Rvcnk7CiAgICAgY2xhc3MgTG9jYXRp
b247Ci0gICAgY2xhc3MgU3R5bGVNZWRpYTsKKyAgICBjbGFzcyBNZWRpYVF1ZXJ5TGlzdDsKICAg
ICBjbGFzcyBOYXZpZ2F0b3I7CiAgICAgY2xhc3MgTm9kZTsKICAgICBjbGFzcyBOb3RpZmljYXRp
b25DZW50ZXI7CisgICAgY2xhc3MgU3R5bGVNZWRpYTsKIAogI2lmIEVOQUJMRShXRUJfVElNSU5H
KQogICAgIGNsYXNzIFBlcmZvcm1hbmNlOwpAQCAtOTcsNiArOTksOCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKICAgICAgICAgdm9pZCBjbGVhcigpOwogCisgICAgICAgIFBhc3NSZWZQdHI8TWVk
aWFRdWVyeUxpc3Q+IG1hdGNoTWVkaWEoY29uc3QgU3RyaW5nJik7CisKICNpZiBFTkFCTEUoT1JJ
RU5UQVRJT05fRVZFTlRTKQogICAgICAgICAvLyBUaGlzIGlzIHRoZSBpbnRlcmZhY2Ugb3JpZW50
YXRpb24gaW4gZGVncmVlcy4gU29tZSBleGFtcGxlcyBhcmU6CiAgICAgICAgIC8vICAwIGlzIHN0
cmFpZ2h0IHVwOyAtOTAgaXMgd2hlbiB0aGUgZGV2aWNlIGlzIHJvdGF0ZWQgOTAgY2xvY2t3aXNl
OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwgYi9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmlkbAppbmRleCAwZTgzNTU2Li5lMmJjNDVkIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmlkbAorKysgYi9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbApAQCAt
MTQwLDcgKzE0MCwxMCBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIERvY3VtZW50IGRvY3VtZW50OwogCiAgICAgICAgIC8vIENTU09NIFZpZXcgTW9kdWxlCisK
KyAgICAgICAgLy8gc3R5bGVNZWRpYSBoYXMgYmVlbiByZW1vdmVkIGZyb20gdGhlIGNzc29tLXZp
ZXcgc3BlY2lmaWNhdGlvbi4KICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFN0eWxlTWVkaWEg
c3R5bGVNZWRpYTsKKyAgICAgICAgTWVkaWFRdWVyeUxpc3QgbWF0Y2hNZWRpYShpbiBET01TdHJp
bmcgcXVlcnkpOwogCiAgICAgICAgIC8vIERPTSBMZXZlbCAyIFN0eWxlIEludGVyZmFjZQogICAg
ICAgICBDU1NTdHlsZURlY2xhcmF0aW9uIGdldENvbXB1dGVkU3R5bGUoaW4gRWxlbWVudCBlbGVt
ZW50LAotLSAKMS43LjIuMgoK
</data>
<flag name="review"
          id="61221"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71513</attachid>
            <date>2010-10-21 17:28:25 -0700</date>
            <delta_ts>2010-10-26 13:04:23 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-Implement-CSSOM-View-matchMedia-interface.patch</filename>
            <type>text/plain</type>
            <size>103006</size>
            <attacher name="Luiz Agostini">luiz</attacher>
            
              <data encoding="base64">RnJvbSA3MDBkMmQyYjAyMTk2MTYyZWYwNzY5YTY2NjhhN2VkZTE4MWYwYjVmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWl6IEFnb3N0aW5pIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IFRodSwgMjEgT2N0IDIwMTAgMjE6MTg6NTIgLTAzMDAKU3ViamVjdDogW1BB
VENIXSBJbXBsZW1lbnQgQ1NTT00gVmlldyBtYXRjaE1lZGlhIGludGVyZmFjZQogaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3MjA1CgpSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KCldlYkNvcmU6CgpOZXcgaW50ZXJmYWNlcyBtYXkgYmUgdXNlZCB0byBldmFsdWF0
ZSBtZWRpYSBxdWVyaWVzIGFuZCB0byBhc3NvY2lhdGUgbGlzdGVuZXJzCnRvIG1lZGlhIHF1ZXJp
ZXMuIFRob3NlIGxpc3RlbmVycyBhcmUgY2FsbGVkIHdoZW5ldmVyIHRoZSBhc3NvY2lhdGVkIHF1
ZXJ5IGNoYW5nZXMuClNwZWNpZmljYXRpb24gbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9kZXYudzMu
b3JnL2Nzc3dnL2Nzc29tLXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2UKCm9wZXJh
dG9yPT0gYWRkZWQgdG8gSlMgdmVyc2lvbiBvZiBTY3JpcHRWYWx1ZS4KTWV0aG9kIGlzRnVuY3Rp
b24gYWRkZWQgdG8gSlMgYW5kIFY4IHZlcnNpb25zIG9mIFNjcmlwdFZhbHVlLgoKKiBiaW5kaW5n
cy9qcy9TY3JpcHRWYWx1ZS5jcHA6CihXZWJDb3JlOjpTY3JpcHRWYWx1ZTo6aXNGdW5jdGlvbik6
CiogYmluZGluZ3MvanMvU2NyaXB0VmFsdWUuaDoKKFdlYkNvcmU6OlNjcmlwdFZhbHVlOjpvcGVy
YXRvcj09KToKKiBiaW5kaW5ncy92OC9TY3JpcHRWYWx1ZS5oOgooV2ViQ29yZTo6U2NyaXB0VmFs
dWU6OmlzRnVuY3Rpb24pOgoKU29tZSBjaGFuZ2VzIHdlcmUgbmVlZGVkIHRvIHRoZSBjb2RlIGdl
bmVyYXRvcnMgdG8gaGFuZGxlIHR5cGUgTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci4KCiogYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbToKKiBiaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbToKKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbToK
ClNvbWUgY2hhbmdlcyB0byB0aGUgYmluZGluZ3MgdGVzdCByZXN1bHRzIHRoYXQgd2VyZSBwcmV2
aW91c2x5IGFkZGVkLgoKKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01U
ZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHA6CiogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dP
YmplY3QvV2ViS2l0RE9NVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaDoKKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHA6CihXZWJDb3Jl
Ojpqc1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBlRnVuY3Rpb25NZXRob2QpOgoq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNw
cDoKKFdlYkNvcmU6OlRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVySW50ZXJuYWw6Om1ldGhvZENh
bGxiYWNrKToKKFdlYkNvcmU6OkNvbmZpZ3VyZVY4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJU
ZW1wbGF0ZSk6CgpOZXcgaW50ZXJmYWNlczoKCiogY3NzL01lZGlhUXVlcnlMaXN0LmNwcDogQWRk
ZWQuCiogY3NzL01lZGlhUXVlcnlMaXN0Lmg6IEFkZGVkLgoqIGNzcy9NZWRpYVF1ZXJ5TGlzdC5p
ZGw6IEFkZGVkLgoKKiBjc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHA6IEFkZGVkLgoqIGNz
cy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmg6IEFkZGVkLgoqIGNzcy9NZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyLmlkbDogQWRkZWQuCgpUbyBhdm9pZCBhZGRpbmcgY29kZSB0byBjbGFzc2VzIERPTVdp
bmRvdyBhbmQgRG9jdW1lbnQgYSBuZXcgY2xhc3MgTWVkaWFRdWVyeU1hdGNoZXIgd2FzIGNyZWF0
ZWQuCgoqIGNzcy9NZWRpYVF1ZXJ5TWF0Y2hlci5jcHA6IEFkZGVkLgoqIGNzcy9NZWRpYVF1ZXJ5
TWF0Y2hlci5oOiBBZGRlZC4KCkRvY3VtZW50IGFuZCBET01XaW5kb3cgaGF2ZSBjaGFuZ2VkIHRv
IHN1cHBvcnQgbmV3IGZlYXR1cmVzLiBET01XaW5kb3cgaXMgdGhlIGNsYXNzIHRoYXQKcHVibGlz
aGVzIG1ldGhvZHMgbWF0Y2hNZWRpYSBidXQgZm9yIHBhZ2UgY2FjaGUgdG8gd29yayBwcm9wZXJs
eSAgdGhlIHJlZmVyZW5jZSB0byB0aGUKTWVkaWFRdWVyeU1hdGNoZXIgbXVzdCBiZSBpbiBEb2N1
bWVudC4KCiogZG9tL0RvY3VtZW50LmNwcDoKKFdlYkNvcmU6OkRvY3VtZW50Ojp+RG9jdW1lbnQp
OgooV2ViQ29yZTo6RG9jdW1lbnQ6Om1lZGlhUXVlcnlNYXRjaGVyKToKKFdlYkNvcmU6OkRvY3Vt
ZW50OjpzdHlsZVNlbGVjdG9yQ2hhbmdlZCk6CiogZG9tL0RvY3VtZW50Lmg6CiogcGFnZS9ET01X
aW5kb3cuY3BwOgooV2ViQ29yZTo6RE9NV2luZG93OjptYXRjaE1lZGlhKToKKiBwYWdlL0RPTVdp
bmRvdy5oOgoqIHBhZ2UvRE9NV2luZG93LmlkbDoKCkJ1aWxkIHN5c3RlbXMKCiogQ01ha2VMaXN0
cy50eHQ6CiogRGVyaXZlZFNvdXJjZXMubWFrZToKKiBHTlVtYWtlZmlsZS5hbToKKiBXZWJDb3Jl
Lmd5cGk6CiogV2ViQ29yZS5wcmk6CiogV2ViQ29yZS5wcm86CiogV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2o6CiogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgoqIGJpbmRp
bmdzL2dvYmplY3QvR05VbWFrZWZpbGUuYW06CgpUZXN0czogZmFzdC9tZWRpYS9tZWRpYS1xdWVy
eS1saXN0LTAxLmh0bWwKICAgICAgIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMi5odG1s
CiAgICAgICBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMuaHRtbAogICAgICAgZmFzdC9t
ZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA0Lmh0bWwKICAgICAgIGZhc3QvbWVkaWEvbWVkaWEtcXVl
cnktbGlzdC0wNS5odG1sCiAgICAgICBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDYuaHRt
bAogICAgICAgZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA3Lmh0bWwKCkxheW91dFRlc3Rz
OgoKTmV3IHByb3BlcnR5IG1hdGNoTWVkaWEgd2FzIGFkZGVkIHRvIHdpbmRvdy4KCiogZmFzdC9k
b20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dDoKKiBmYXN0L2RvbS9XaW5k
b3cvd2luZG93LXByb3BlcnR5LWRlc2NyaXB0b3JzLWV4cGVjdGVkLnR4dDoKCndpbmRvdy5tYXRj
aE1lZGlhIGFuZCBNZWRpYVF1ZXJ5TGlzdCB0ZXN0cy4KCiogZmFzdC9tZWRpYS9tZWRpYS1xdWVy
eS1saXN0LTAxLWV4cGVjdGVkLnR4dDogQWRkZWQuCiogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1s
aXN0LTAxLmh0bWw6IEFkZGVkLgoKVGhlIGZvbGxvd2luZyB0ZXN0cyBkZXBlbmQgb24gTGF5b3V0
VGVzdENvbnRyb2xsZXI6OnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCkgdG8gd29yay4KQXMgaXQg
aXMgb25seSBpbXBsZW1lbnRlZCBieSBRdCBhbmQgR3RrIHRoZSB0ZXN0cyBuZWVkZWQgdG8gYmUg
c2tpcHBlZCBpbiBhbGwgb3RoZXIgcGxhdGZvcm1zLgoKKiBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5
LWxpc3QtMDItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKiBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxp
c3QtMDIuaHRtbDogQWRkZWQuCiogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAzLWV4cGVj
dGVkLnR4dDogQWRkZWQuCiogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAzLmh0bWw6IEFk
ZGVkLgoqIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNC1leHBlY3RlZC50eHQ6IEFkZGVk
LgoqIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNC5odG1sOiBBZGRlZC4KKiBmYXN0L21l
ZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKiBmYXN0L21lZGlh
L21lZGlhLXF1ZXJ5LWxpc3QtMDUuaHRtbDogQWRkZWQuCiogZmFzdC9tZWRpYS9tZWRpYS1xdWVy
eS1saXN0LTA2LWV4cGVjdGVkLnR4dDogQWRkZWQuCiogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1s
aXN0LTA2Lmh0bWw6IEFkZGVkLgoqIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgoqIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNy5odG1sOiBB
ZGRlZC4KKiBwbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CiogcGxhdGZv
cm0vbWFjL1NraXBwZWQ6CiogcGxhdGZvcm0vd2luL1NraXBwZWQ6Ci0tLQogTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDM2ICsrKysrCiAuLi4v
ZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dCB8ICAgIDEgKwog
Li4uL3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy1leHBlY3RlZC50eHQgICAgICAgfCAgICAx
ICsKIC4uLi9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDEtZXhwZWN0ZWQudHh0ICAgIHwg
ICAxNSArKwogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAxLmh0bWwg
ICAgfCAgIDUyICsrKysrKwogLi4uL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMi1leHBl
Y3RlZC50eHQgICAgfCAgIDI1ICsrKwogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVy
eS1saXN0LTAyLmh0bWwgICAgfCAgIDYzICsrKysrKysrCiAuLi4vZmFzdC9tZWRpYS9tZWRpYS1x
dWVyeS1saXN0LTAzLWV4cGVjdGVkLnR4dCAgICB8ICAgNDEgKysrKysKIExheW91dFRlc3RzL2Zh
c3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMy5odG1sICAgIHwgICA3MiArKysrKysrKysKIC4u
Li9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDQtZXhwZWN0ZWQudHh0ICAgIHwgICAyNSAr
KysKIExheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNC5odG1sICAgIHwg
ICA3NSArKysrKysrKysKIC4uLi9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDUtZXhwZWN0
ZWQudHh0ICAgIHwgICAgNyArCiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxp
c3QtMDUuaHRtbCAgICB8ICAgNDcgKysrKysrCiAuLi4vZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1s
aXN0LTA2LWV4cGVjdGVkLnR4dCAgICB8ICAgIDcgKwogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9t
ZWRpYS1xdWVyeS1saXN0LTA2Lmh0bWwgICAgfCAgIDM2ICsrKysrCiAuLi4vZmFzdC9tZWRpYS9t
ZWRpYS1xdWVyeS1saXN0LTA3LWV4cGVjdGVkLnR4dCAgICB8ICAgIDcgKwogTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA3Lmh0bWwgICAgfCAgIDQ5ICsrKysrKwogLi4u
L3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dCAgICAgICAgfCAgICA4ICst
CiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZCAgICAgICAgICAgICAgICAgICB8ICAg
IDggKy0KIExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkICAgICAgICAgICAgICAgICAg
IHwgICAgOCArLQogV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgICA0ICsKIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgICA4NiArKysrKysrKysrCiBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2Ug
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKy0KIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMCArLQogV2ViQ29yZS9XZWJDb3JlLmd5
cGkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA5ICstCiBXZWJDb3JlL1dlYkNv
cmUucHJpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogV2ViQ29yZS9X
ZWJDb3JlLnBybyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA4ICstCiBXZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qICAgICAgICAgICAgICB8ICAgODAgKysr
KysrKysrKwogV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogICAgICAg
ICAgfCAgIDM2ICsrKysrCiBXZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvR05VbWFrZWZpbGUuYW0g
ICAgICAgICAgICB8ICAgIDMgKwogV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRWYWx1ZS5jcHAg
ICAgICAgICAgICAgICAgfCAgICA3ICsKIFdlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0VmFsdWUu
aCAgICAgICAgICAgICAgICAgIHwgICAgMyArCiBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckdPYmplY3QucG0gICB8ICAgMTkgKystCiBXZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtICAgICAgICB8ICAgMTEgKysKIFdlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0gICAgICAgIHwgICAxMSArKy0KIC4uLi9XZWJLaXRE
T01UZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgICAgICAgIHwgICAxNyAtLQogLi4uL0dP
YmplY3QvV2ViS2l0RE9NVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCAgfCAgICAzIC0KIC4u
Li90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwICAgICAgIHwgICAgNCAr
LQogLi4uL3Rlc3QvVjgvVjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgICAgICAgfCAg
IDE1ICstCiBXZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdFZhbHVlLmggICAgICAgICAgICAgICAg
ICB8ICAgIDUgKwogV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3QuY3BwICAgICAgICAgICAgICAg
ICAgICAgfCAgMTAwICsrKysrKysrKysrKwogV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3QuaCAg
ICAgICAgICAgICAgICAgICAgICAgfCAgIDcyICsrKysrKysrKwogV2ViQ29yZS9jc3MvTWVkaWFR
dWVyeUxpc3QuaWRsICAgICAgICAgICAgICAgICAgICAgfCAgIDMzICsrKysKIFdlYkNvcmUvY3Nz
L01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwICAgICAgICAgICAgIHwgICA1NiArKysrKysrCiBX
ZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggICAgICAgICAgICAgICB8ICAgNjAg
KysrKysrKwogV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5pZGwgICAgICAgICAg
ICAgfCAgIDM1ICsrKysKIFdlYkNvcmUvY3NzL01lZGlhUXVlcnlNYXRjaGVyLmNwcCAgICAgICAg
ICAgICAgICAgIHwgIDE2NiArKysrKysrKysrKysrKysrKysrKwogV2ViQ29yZS9jc3MvTWVkaWFR
dWVyeU1hdGNoZXIuaCAgICAgICAgICAgICAgICAgICAgfCAgIDk1ICsrKysrKysrKysrCiBXZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTYgKysK
IFdlYkNvcmUvZG9tL0RvY3VtZW50LmggICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg
NyArCiBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAgMTAgKy0KIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuaCAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgICAgNiArLQogV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgICAzICsKIDUzIGZpbGVzIGNoYW5nZWQsIDE1MzMgaW5zZXJ0aW9ucygrKSwg
NDUgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YS9tZWRpYS1xdWVyeS1saXN0LTAxLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExh
eW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMS5odG1sCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAyLWV4cGVj
dGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEt
cXVlcnktbGlzdC0wMi5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAzLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0
IExheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMy5odG1sCiBjcmVhdGUg
bW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA0LWV4
cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVk
aWEtcXVlcnktbGlzdC0wNC5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA1LWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAw
NjQ0IExheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNS5odG1sCiBjcmVh
dGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA2
LWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvbWVkaWEv
bWVkaWEtcXVlcnktbGlzdC0wNi5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA3LWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUg
MTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNy5odG1sCiBt
b2RlIGNoYW5nZSAxMDA2NDQgPT4gMTAwNzU1IFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2oKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdC5j
cHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdC5oCiBjcmVh
dGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3QuaWRsCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKIGNyZWF0ZSBt
b2RlIDEwMDY0NCBXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgKIGNyZWF0ZSBt
b2RlIDEwMDY0NCBXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmlkbAogY3JlYXRl
IG1vZGUgMTAwNjQ0IFdlYkNvcmUvY3NzL01lZGlhUXVlcnlNYXRjaGVyLmNwcAogY3JlYXRlIG1v
ZGUgMTAwNjQ0IFdlYkNvcmUvY3NzL01lZGlhUXVlcnlNYXRjaGVyLmgKCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMmE1ZDYy
Zi4uOTIwYjIwOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEwLTEwLTIxICBMdWl6IEFnb3N0
aW5pICA8bHVpei5hZ29zdGluaUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBDU1NPTSBWaWV3IG1hdGNoTWVk
aWEgaW50ZXJmYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zNzIwNQorCisgICAgICAgIE5ldyBwcm9wZXJ0eSBtYXRjaE1lZGlhIHdhcyBhZGRlZCB0
byB3aW5kb3cuCisKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHkt
ZGVzY3JpcHRvcnMtZXhwZWN0ZWQudHh0OgorCisgICAgICAgIHdpbmRvdy5tYXRjaE1lZGlhIGFu
ZCBNZWRpYVF1ZXJ5TGlzdCB0ZXN0cy4KKworICAgICAgICAqIGZhc3QvbWVkaWEvbWVkaWEtcXVl
cnktbGlzdC0wMS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWEvbWVk
aWEtcXVlcnktbGlzdC0wMS5odG1sOiBBZGRlZC4KKworICAgICAgICBUaGUgZm9sbG93aW5nIHRl
c3RzIGRlcGVuZCBvbiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0Vmlld01vZGVNZWRpYUZlYXR1
cmUoKSB0byB3b3JrLgorICAgICAgICBBcyBpdCBpcyBvbmx5IGltcGxlbWVudGVkIGJ5IFF0IGFu
ZCBHdGsgdGhlIHRlc3RzIG5lZWRlZCB0byBiZSBza2lwcGVkIGluIGFsbCBvdGhlciBwbGF0Zm9y
bXMuCisKKyAgICAgICAgKiBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDItZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDIuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAzLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAz
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNC1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlz
dC0wNC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3Qt
MDUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5
LWxpc3QtMDUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1s
aXN0LTA2LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYS9tZWRpYS1x
dWVyeS1saXN0LTA2Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWEvbWVkaWEtcXVl
cnktbGlzdC0wNy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWEvbWVk
aWEtcXVlcnktbGlzdC0wNy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1
bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1NraXBwZWQ6
CisgICAgICAgICogcGxhdGZvcm0vd2luL1NraXBwZWQ6CisKIDIwMTAtMTAtMjEgIEFuZGVycyBD
YXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFt
IFJvYmVuLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1w
cm9wZXJ0aWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5k
b3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKaW5kZXggOGQ0YTQwZC4uYTU0MDEwYWYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0
aWVzLWV4cGVjdGVkLnR4dApAQCAtMjI4Niw2ICsyMjg2LDcgQEAgd2luZG93LmxvY2F0aW9uYmFy
LnZpc2libGUgW2Jvb2xlYW5dCiB3aW5kb3cubG9nIFtmdW5jdGlvbl0KIHdpbmRvdy5sb2dQcm9w
ZXJ0aWVzIFtmdW5jdGlvbl0KIHdpbmRvdy5sb2dWYWx1ZSBbZnVuY3Rpb25dCit3aW5kb3cubWF0
Y2hNZWRpYSBbZnVuY3Rpb25dCiB3aW5kb3cubWVudWJhciBbb2JqZWN0IEJhckluZm9dCiB3aW5k
b3cubWVudWJhci52aXNpYmxlIFtib29sZWFuXQogd2luZG93Lm1vdmVCeSBbZnVuY3Rpb25dCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnR5LWRl
c2NyaXB0b3JzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5k
b3ctcHJvcGVydHktZGVzY3JpcHRvcnMtZXhwZWN0ZWQudHh0CmluZGV4IGJiYmY0ZjcuLmEwOWMy
NmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVy
dHktZGVzY3JpcHRvcnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dp
bmRvdy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMtZXhwZWN0ZWQudHh0CkBAIC01MDYsNiAr
NTA2LDcgQEAgUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ2dl
dE1hdGNoZWRDU1NSdWxlcycpIGlzIHVuZGVmaW5lZC4KIFBBU1MgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcih3aW5kb3csICdnZXRTZWxlY3Rpb24nKSBpcyB1bmRlZmluZWQuCiBQQVNT
IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnaGFzT3duUHJvcGVydHkn
KSBpcyB1bmRlZmluZWQuCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2lu
ZG93LCAnaXNQcm90b3R5cGVPZicpIGlzIHVuZGVmaW5lZC4KK1BBU1MgT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdtYXRjaE1lZGlhJykgaXMgdW5kZWZpbmVkLgogUEFT
UyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ21vdmVCeScpIGlzIHVu
ZGVmaW5lZC4KIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdt
b3ZlVG8nKSBpcyB1bmRlZmluZWQuCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3Iod2luZG93LCAnb3BlbicpIGlzIHVuZGVmaW5lZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRlYmEzZjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDEtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTUgQEAKK1Rlc3QgdGhlIE1lZGlhUXVlcnlMaXN0IGludGVyZmFjZTogaHR0cDovL2Rl
di53My5vcmcvY3Nzd2cvY3Nzb20tdmlldy8jdGhlLW1lZGlhcXVlcnlsaXN0LWludGVyZmFjZS4K
KworInNjcmVlbiIgZXZhbHVhdGVzIHRvIHRydWU6IFBBU1MKKyJwcm9qZWN0aW9uIiBldmFsdWF0
ZXMgdG8gZmFsc2U6IFBBU1MKKyJhbGwgYW5kIChjb2xvcikiIGV2YWx1YXRlcyB0byB0cnVlOiBQ
QVNTCisibm90IHByb2plY3Rpb24gYW5kIChjb2xvcikiIGV2YWx1YXRlcyB0byB0cnVlOiBQQVNT
CisiKGNvbG9yKSIgZXZhbHVhdGVzIHRvIHRydWU6IFBBU1MKKyIoY29sb3IiIGV2YWx1YXRlcyB0
byBmYWxzZTogUEFTUworImNvbG9yIiBldmFsdWF0ZXMgdG8gZmFsc2U6IFBBU1MKKyJnYXJiYWdl
IiBldmFsdWF0ZXMgdG8gZmFsc2U6IFBBU1MKKyIobWluLWRldmljZS13aWR0aDogMTAwcHgpIiBl
dmFsdWF0ZXMgdG8gdHJ1ZTogUEFTUworIihtaW4tZGV2aWNlLXdpZHRoOiA1MDAwMHB4KSIgZXZh
bHVhdGVzIHRvIGZhbHNlOiBQQVNTCisiKC13ZWJraXQtYW5pbWF0aW9uOiAxKSIgZXZhbHVhdGVz
IHRvIHRydWU6IFBBU1MKKyIoLXdlYmtpdC10cmFuc2Zvcm0tMmQpIiBldmFsdWF0ZXMgdG8gdHJ1
ZTogUEFTUworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5
LWxpc3QtMDEuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0w
MS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzZGNjNjcKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDEu
aHRtbApAQCAtMCwwICsxLDUyIEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPlRlc3QgQ1NTT00g
VmlldyBtb2R1bGU6IE1lZGlhUXVlcnlMaXN0IGludGVyZmFjZTwvdGl0bGU+Cis8c3R5bGUgdHlw
ZT0idGV4dC9jc3MiPgorCis8L3N0eWxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IGNoYXJzZXQ9InV0Zi04Ij4KKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQor
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyAgICBmdW5jdGlv
biBsb2cobSkKKyAgICB7CisgICAgICAgIHZhciByZXN1bHRzID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3Jlc3VsdHMnKTsKKyAgICAgICAgcmVzdWx0cy5pbm5lckhUTUwgKz0gbSArICc8YnI+
JzsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0UXVlcnkocXVlcnksIGV4cGVjdGVkKQorICAg
IHsKKyAgICAgICAgdmFyIGlzVHJ1ZSA9IHdpbmRvdy5tYXRjaE1lZGlhKHF1ZXJ5KS5tYXRjaGVz
OworICAgICAgICB2YXIgbWVzc2FnZSA9ICdcIicgKyBxdWVyeSArICdcIiBldmFsdWF0ZXMgdG8g
JyArIChpc1RydWUgPyAndHJ1ZScgOiAnZmFsc2UnKTsKKyAgICAgICAgbWVzc2FnZSArPSAoaXNU
cnVlID09IGV4cGVjdGVkKSA/ICc6IFBBU1MnIDogJzogRkFJTCc7CisgICAgICAgIGxvZyhtZXNz
YWdlKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0cygpCisgICAgeworICAgICAgICB0
ZXN0UXVlcnkoJ3NjcmVlbicsIHRydWUpOworICAgICAgICB0ZXN0UXVlcnkoJ3Byb2plY3Rpb24n
LCBmYWxzZSk7CisKKyAgICAgICAgdGVzdFF1ZXJ5KCdhbGwgYW5kIChjb2xvciknLCB0cnVlKTsK
KyAgICAgICAgdGVzdFF1ZXJ5KCdub3QgcHJvamVjdGlvbiBhbmQgKGNvbG9yKScsIHRydWUpOwor
ICAgICAgICB0ZXN0UXVlcnkoJyhjb2xvciknLCB0cnVlKTsKKyAgICAgICAgdGVzdFF1ZXJ5KCco
Y29sb3InLCBmYWxzZSk7CisgICAgICAgIHRlc3RRdWVyeSgnY29sb3InLCBmYWxzZSk7CisKKyAg
ICAgICAgdGVzdFF1ZXJ5KCdnYXJiYWdlJywgZmFsc2UpOworCisgICAgICAgIHRlc3RRdWVyeSgn
KG1pbi1kZXZpY2Utd2lkdGg6IDEwMHB4KScsIHRydWUpOworICAgICAgICB0ZXN0UXVlcnkoJyht
aW4tZGV2aWNlLXdpZHRoOiA1MDAwMHB4KScsIGZhbHNlKTsKKworICAgICAgICB0ZXN0UXVlcnko
Jygtd2Via2l0LWFuaW1hdGlvbjogMSknLCB0cnVlKTsKKyAgICAgICAgdGVzdFF1ZXJ5KCcoLXdl
YmtpdC10cmFuc2Zvcm0tMmQpJywgdHJ1ZSk7CisgICAgfQorCis8L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5IG9ubG9hZD0icnVuVGVzdHMoKSI+CisgICAgPHA+VGVzdCB0aGUgTWVkaWFRdWVyeUxp
c3QgaW50ZXJmYWNlOiA8YSBocmVmPSJodHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9jc3NvbS12aWV3
LyN0aGUtbWVkaWFxdWVyeWxpc3QtaW50ZXJmYWNlIiB0aXRsZT0iQ1NTT00gVmlldyBNb2R1bGUi
Pmh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzc29tLXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1p
bnRlcmZhY2U8L2E+LjwvcD4KKyAgICA8ZGl2IGlkPSJyZXN1bHRzIj4KKyAgICA8L2Rpdj4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEt
cXVlcnktbGlzdC0wMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlh
LXF1ZXJ5LWxpc3QtMDItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjYzNjQzZDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlh
L21lZGlhLXF1ZXJ5LWxpc3QtMDItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjUgQEAKK1Rlc3Qg
dGhlIE1lZGlhUXVlcnlMaXN0IGludGVyZmFjZTogaHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3Nz
b20tdmlldy8jdGhlLW1lZGlhcXVlcnlsaXN0LWludGVyZmFjZS4KKworVGVzdGluZyBhZGRMaXN0
ZW5lciBpbiBkaWZmZXJlbnQgTWVkaWFRdWVyeUxpc3Qgb2JqZWN0cyBhbmQgdGhlIGNhbGxiYWNr
IGNhbGwgc2VxdWVuY2UKKworLS0tLS0tLS0tLS0tLSBtaW5pbWl6ZWQgLS0tLS0tLS0tLS0tLQor
WzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0byBmYWxz
ZQorWzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQpIGNoYW5nZWQgdG8g
dHJ1ZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0
byBmYWxzZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQpIGNoYW5n
ZWQgdG8gdHJ1ZQorLS0tLS0tLS0tLS0tLSBtYXhpbWl6ZWQgLS0tLS0tLS0tLS0tLQorWzFdIC0g
cXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQpIGNoYW5nZWQgdG8gZmFsc2UKK1sx
XSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWF4aW1pemVkKSBjaGFuZ2VkIHRvIHRydWUK
K1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSBjaGFuZ2VkIHRvIGZh
bHNlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1heGltaXplZCkgY2hhbmdlZCB0
byB0cnVlCistLS0tLS0tLS0tLS0tIHdpbmRvd2VkIC0tLS0tLS0tLS0tLS0KK1sxXSAtIHF1ZXJ5
ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQgdG8gdHJ1ZQorWzFdIC0gcXVl
cnkgKC13ZWJraXQtdmlldy1tb2RlOiBtYXhpbWl6ZWQpIGNoYW5nZWQgdG8gZmFsc2UKK1syXSAt
IHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQgdG8gdHJ1ZQorWzJd
IC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtYXhpbWl6ZWQpIGNoYW5nZWQgdG8gZmFsc2UK
Ky0tLS0tLS0tLS0tLS0gZmxvYXRpbmcgLS0tLS0tLS0tLS0tLQorWzFdIC0gcXVlcnkgKC13ZWJr
aXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0byBmYWxzZQorWzFdIC0gcXVlcnkgKC13
ZWJraXQtdmlldy1tb2RlOiBmbG9hdGluZykgY2hhbmdlZCB0byB0cnVlCitbMl0gLSBxdWVyeSAo
LXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFuZ2VkIHRvIGZhbHNlCitbMl0gLSBxdWVy
eSAoLXdlYmtpdC12aWV3LW1vZGU6IGZsb2F0aW5nKSBjaGFuZ2VkIHRvIHRydWUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAyLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDIuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MDkzY2ExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAyLmh0bWwKQEAgLTAsMCArMSw2
MyBAQAorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5UZXN0IENTU09NIFZpZXcgbW9kdWxlOiBNZWRp
YVF1ZXJ5TGlzdCBpbnRlcmZhY2U8L3RpdGxlPgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKwor
PC9zdHlsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+
CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgICAgZnVuY3Rpb24gbG9nKG0pIHsKKyAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdHMnKS5pbm5lckhUTUwgKz0gbSArICc8
YnI+JzsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjYWxsYmFjazEocXVlcnkpIHsKKyAgICAgICAg
bG9nKCJbMV0gLSBxdWVyeSAiICsgcXVlcnkubWVkaWEgKyAiIGNoYW5nZWQgdG8gIiArIChxdWVy
eS5tYXRjaGVzID8gInRydWUiIDogImZhbHNlIikpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNh
bGxiYWNrMihxdWVyeSkgeworICAgICAgICBsb2coIlsyXSAtIHF1ZXJ5ICIgKyBxdWVyeS5tZWRp
YSArICIgY2hhbmdlZCB0byAiICsgKHF1ZXJ5Lm1hdGNoZXMgPyAidHJ1ZSIgOiAiZmFsc2UiKSk7
CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdHMoKQorICAgIHsKKyAgICAgICAgaWYgKCF3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoIndpbmRvd2Vk
Iik7CisKKyAgICAgICAgd2luZG93ZWRRdWVyeSA9IHdpbmRvdy5tYXRjaE1lZGlhKCIoLXdlYmtp
dC12aWV3LW1vZGU6IHdpbmRvd2VkKSIpOworICAgICAgICBmbG9hdGluZ1F1ZXJ5ID0gd2luZG93
Lm1hdGNoTWVkaWEoIigtd2Via2l0LXZpZXctbW9kZTogZmxvYXRpbmcpIik7CisgICAgICAgIG1p
bmltaXplZFF1ZXJ5ID0gd2luZG93Lm1hdGNoTWVkaWEoIigtd2Via2l0LXZpZXctbW9kZTogbWlu
aW1pemVkKSIpOworICAgICAgICBtYXhpbWl6ZWRRdWVyeSA9IHdpbmRvdy5tYXRjaE1lZGlhKCIo
LXdlYmtpdC12aWV3LW1vZGU6IG1heGltaXplZCkiKTsKKworICAgICAgICB3aW5kb3dlZFF1ZXJ5
LmFkZExpc3RlbmVyKGNhbGxiYWNrMSk7CisgICAgICAgIGZsb2F0aW5nUXVlcnkuYWRkTGlzdGVu
ZXIoY2FsbGJhY2sxKTsKKyAgICAgICAgbWluaW1pemVkUXVlcnkuYWRkTGlzdGVuZXIoY2FsbGJh
Y2sxKTsKKyAgICAgICAgbWF4aW1pemVkUXVlcnkuYWRkTGlzdGVuZXIoY2FsbGJhY2sxKTsKKwor
ICAgICAgICB3aW5kb3dlZFF1ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNrMik7CisgICAgICAgIGZs
b2F0aW5nUXVlcnkuYWRkTGlzdGVuZXIoY2FsbGJhY2syKTsKKyAgICAgICAgbWluaW1pemVkUXVl
cnkuYWRkTGlzdGVuZXIoY2FsbGJhY2syKTsKKyAgICAgICAgbWF4aW1pemVkUXVlcnkuYWRkTGlz
dGVuZXIoY2FsbGJhY2syKTsKKworICAgICAgICBsb2coIi0tLS0tLS0tLS0tLS0gbWluaW1pemVk
IC0tLS0tLS0tLS0tLS0iKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Vmlld01v
ZGVNZWRpYUZlYXR1cmUoIm1pbmltaXplZCIpOworICAgICAgICBsb2coIi0tLS0tLS0tLS0tLS0g
bWF4aW1pemVkIC0tLS0tLS0tLS0tLS0iKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
c2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoIm1heGltaXplZCIpOworICAgICAgICBsb2coIi0tLS0t
LS0tLS0tLS0gd2luZG93ZWQgLS0tLS0tLS0tLS0tLSIpOworICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSgid2luZG93ZWQiKTsKKyAgICAgICAgbG9n
KCItLS0tLS0tLS0tLS0tIGZsb2F0aW5nIC0tLS0tLS0tLS0tLS0iKTsKKyAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoImZsb2F0aW5nIik7CisgICAg
fQorCis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdHMoKSI+CisgICAg
PHA+VGVzdCB0aGUgTWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlOiA8YSBocmVmPSJodHRwOi8vZGV2
LnczLm9yZy9jc3N3Zy9jc3NvbS12aWV3LyN0aGUtbWVkaWFxdWVyeWxpc3QtaW50ZXJmYWNlIiB0
aXRsZT0iQ1NTT00gVmlldyBNb2R1bGUiPmh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzc29tLXZp
ZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2U8L2E+LjwvcD4KKyAgICA8cD5UZXN0aW5n
IGFkZExpc3RlbmVyIGluIGRpZmZlcmVudCBNZWRpYVF1ZXJ5TGlzdCBvYmplY3RzIGFuZCB0aGUg
Y2FsbGJhY2sgY2FsbCBzZXF1ZW5jZTwvcD4KKyAgICA8ZGl2IGlkPSJyZXN1bHRzIj4KKyAgICA8
L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVk
aWEvbWVkaWEtcXVlcnktbGlzdC0wMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21l
ZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmYyNGUyMDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDEg
QEAKK1Rlc3QgdGhlIE1lZGlhUXVlcnlMaXN0IGludGVyZmFjZTogaHR0cDovL2Rldi53My5vcmcv
Y3Nzd2cvY3Nzb20tdmlldy8jdGhlLW1lZGlhcXVlcnlsaXN0LWludGVyZmFjZS4KKworVGVzdGlu
ZyByZW1vdmVMaXN0ZW5lciBpbiBkaWZmZXJlbnQgTWVkaWFRdWVyeUxpc3Qgb2JqZWN0cyBhbmQg
dGhlIGNhbGxiYWNrIGNhbGwgc2VxdWVuY2UKKworYWRkaW5nIHdpbmRvd2VkWzFdLCBtaW5pbWl6
ZWRbMV0sIHdpbmRvd2VkWzJdIGFuZCBtaW5pbWl6ZWRbMl0KKworLS0tLS0tLS0tLS0tLSBtaW5p
bWl6ZWQgLS0tLS0tLS0tLS0tLQorWzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5k
b3dlZCkgY2hhbmdlZCB0byBmYWxzZQorWzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBt
aW5pbWl6ZWQpIGNoYW5nZWQgdG8gdHJ1ZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2Rl
OiB3aW5kb3dlZCkgY2hhbmdlZCB0byBmYWxzZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1t
b2RlOiBtaW5pbWl6ZWQpIGNoYW5nZWQgdG8gdHJ1ZQorLS0tLS0tLS0tLS0tLSB3aW5kb3dlZCAt
LS0tLS0tLS0tLS0tCitbMV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBj
aGFuZ2VkIHRvIHRydWUKK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVk
KSBjaGFuZ2VkIHRvIGZhbHNlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRv
d2VkKSBjaGFuZ2VkIHRvIHRydWUKK1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWlu
aW1pemVkKSBjaGFuZ2VkIHRvIGZhbHNlCisKKworcmVtb3Zpbmcgd2luZG93ZWRbMV0gYW5kIG1p
bmltaXplZFsyXQorCistLS0tLS0tLS0tLS0tIG1pbmltaXplZCAtLS0tLS0tLS0tLS0tCitbMV0g
LSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCkgY2hhbmdlZCB0byB0cnVlCitb
Ml0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFuZ2VkIHRvIGZhbHNl
CistLS0tLS0tLS0tLS0tIHdpbmRvd2VkIC0tLS0tLS0tLS0tLS0KK1sxXSAtIHF1ZXJ5ICgtd2Vi
a2l0LXZpZXctbW9kZTogbWluaW1pemVkKSBjaGFuZ2VkIHRvIGZhbHNlCitbMl0gLSBxdWVyeSAo
LXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFuZ2VkIHRvIHRydWUKKworCithZGRpbmcg
d2luZG93ZWRbMV0gYW5kIG1pbmltaXplZFsyXQorCistLS0tLS0tLS0tLS0tIG1pbmltaXplZCAt
LS0tLS0tLS0tLS0tCitbMV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCkg
Y2hhbmdlZCB0byB0cnVlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2Vk
KSBjaGFuZ2VkIHRvIGZhbHNlCitbMV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRv
d2VkKSBjaGFuZ2VkIHRvIGZhbHNlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1p
bmltaXplZCkgY2hhbmdlZCB0byB0cnVlCistLS0tLS0tLS0tLS0tIHdpbmRvd2VkIC0tLS0tLS0t
LS0tLS0KK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSBjaGFuZ2Vk
IHRvIGZhbHNlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFu
Z2VkIHRvIHRydWUKK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNo
YW5nZWQgdG8gdHJ1ZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQp
IGNoYW5nZWQgdG8gZmFsc2UKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9t
ZWRpYS1xdWVyeS1saXN0LTAzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1
ZXJ5LWxpc3QtMDMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MzNi
ZGRlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVy
eS1saXN0LTAzLmh0bWwKQEAgLTAsMCArMSw3MiBAQAorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5U
ZXN0IENTU09NIFZpZXcgbW9kdWxlOiBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U8L3RpdGxlPgor
PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKworPC9zdHlsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisg
ICAgZnVuY3Rpb24gbG9nKG0pIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jl
c3VsdHMnKS5pbm5lckhUTUwgKz0gbSArICc8YnI+JzsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBj
YWxsYmFjazEocXVlcnkpIHsKKyAgICAgICAgbG9nKCJbMV0gLSBxdWVyeSAiICsgcXVlcnkubWVk
aWEgKyAiIGNoYW5nZWQgdG8gIiArIChxdWVyeS5tYXRjaGVzID8gInRydWUiIDogImZhbHNlIikp
OworICAgIH0KKworICAgIGZ1bmN0aW9uIGNhbGxiYWNrMihxdWVyeSkgeworICAgICAgICBsb2co
IlsyXSAtIHF1ZXJ5ICIgKyBxdWVyeS5tZWRpYSArICIgY2hhbmdlZCB0byAiICsgKHF1ZXJ5Lm1h
dGNoZXMgPyAidHJ1ZSIgOiAiZmFsc2UiKSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVz
dHMoKQorICAgIHsKKyAgICAgICAgaWYgKCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisg
ICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Vmll
d01vZGVNZWRpYUZlYXR1cmUoIndpbmRvd2VkIik7CisKKyAgICAgICAgd2luZG93ZWRRdWVyeSA9
IHdpbmRvdy5tYXRjaE1lZGlhKCIoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSIpOworICAg
ICAgICBtaW5pbWl6ZWRRdWVyeSA9IHdpbmRvdy5tYXRjaE1lZGlhKCIoLXdlYmtpdC12aWV3LW1v
ZGU6IG1pbmltaXplZCkiKTsKKworICAgICAgICBsb2coImFkZGluZyB3aW5kb3dlZFsxXSwgbWlu
aW1pemVkWzFdLCB3aW5kb3dlZFsyXSBhbmQgbWluaW1pemVkWzJdPGJyPiIpOworICAgICAgICB3
aW5kb3dlZFF1ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNrMSk7CisgICAgICAgIG1pbmltaXplZFF1
ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNrMSk7CisgICAgICAgIHdpbmRvd2VkUXVlcnkuYWRkTGlz
dGVuZXIoY2FsbGJhY2syKTsKKyAgICAgICAgbWluaW1pemVkUXVlcnkuYWRkTGlzdGVuZXIoY2Fs
bGJhY2syKTsKKworICAgICAgICBsb2coIi0tLS0tLS0tLS0tLS0gbWluaW1pemVkIC0tLS0tLS0t
LS0tLS0iKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZl
YXR1cmUoIm1pbmltaXplZCIpOworICAgICAgICBsb2coIi0tLS0tLS0tLS0tLS0gd2luZG93ZWQg
LS0tLS0tLS0tLS0tLSIpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9k
ZU1lZGlhRmVhdHVyZSgid2luZG93ZWQiKTsKKworICAgICAgICBsb2coIjxicj48YnI+cmVtb3Zp
bmcgd2luZG93ZWRbMV0gYW5kIG1pbmltaXplZFsyXTxicj4iKTsKKyAgICAgICAgd2luZG93ZWRR
dWVyeS5yZW1vdmVMaXN0ZW5lcihjYWxsYmFjazEpOworICAgICAgICBtaW5pbWl6ZWRRdWVyeS5y
ZW1vdmVMaXN0ZW5lcihjYWxsYmFjazIpOworCisgICAgICAgIGxvZygiLS0tLS0tLS0tLS0tLSBt
aW5pbWl6ZWQgLS0tLS0tLS0tLS0tLSIpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5z
ZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSgibWluaW1pemVkIik7CisgICAgICAgIGxvZygiLS0tLS0t
LS0tLS0tLSB3aW5kb3dlZCAtLS0tLS0tLS0tLS0tIik7CisgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCJ3aW5kb3dlZCIpOworCisgICAgICAgIGxv
ZygiPGJyPjxicj5hZGRpbmcgd2luZG93ZWRbMV0gYW5kIG1pbmltaXplZFsyXTxicj4iKTsKKyAg
ICAgICAgd2luZG93ZWRRdWVyeS5hZGRMaXN0ZW5lcihjYWxsYmFjazEpOworICAgICAgICBtaW5p
bWl6ZWRRdWVyeS5hZGRMaXN0ZW5lcihjYWxsYmFjazIpOworCisgICAgICAgIGxvZygiLS0tLS0t
LS0tLS0tLSBtaW5pbWl6ZWQgLS0tLS0tLS0tLS0tLSIpOworICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSgibWluaW1pemVkIik7CisgICAgICAgIGxv
ZygiLS0tLS0tLS0tLS0tLSB3aW5kb3dlZCAtLS0tLS0tLS0tLS0tIik7CisgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCJ3aW5kb3dlZCIpOworCisg
ICAgfQorCis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdHMoKSI+Cisg
ICAgPHA+VGVzdCB0aGUgTWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlOiA8YSBocmVmPSJodHRwOi8v
ZGV2LnczLm9yZy9jc3N3Zy9jc3NvbS12aWV3LyN0aGUtbWVkaWFxdWVyeWxpc3QtaW50ZXJmYWNl
IiB0aXRsZT0iQ1NTT00gVmlldyBNb2R1bGUiPmh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzc29t
LXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2U8L2E+LjwvcD4KKyAgICA8cD5UZXN0
aW5nIHJlbW92ZUxpc3RlbmVyIGluIGRpZmZlcmVudCBNZWRpYVF1ZXJ5TGlzdCBvYmplY3RzIGFu
ZCB0aGUgY2FsbGJhY2sgY2FsbCBzZXF1ZW5jZTwvcD4KKyAgICA8ZGl2IGlkPSJyZXN1bHRzIj4K
KyAgICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNhNmQwZGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDQtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMjUgQEAKK1Rlc3QgdGhlIE1lZGlhUXVlcnlMaXN0IGludGVyZmFjZTogaHR0cDovL2Rldi53
My5vcmcvY3Nzd2cvY3Nzb20tdmlldy8jdGhlLW1lZGlhcXVlcnlsaXN0LWludGVyZmFjZS4KKwor
VGVzdGluZyBwYWdlIGNhY2hlCisKKy0tLS0tLS0tLS0tLS0gbWluaW1pemVkIC0tLS0tLS0tLS0t
LS0KK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQgdG8g
ZmFsc2UKK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSBjaGFuZ2Vk
IHRvIHRydWUKK1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5n
ZWQgdG8gZmFsc2UKK1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSBj
aGFuZ2VkIHRvIHRydWUKKy0tLS0tLS0tLS0tLS0gbWF4aW1pemVkIC0tLS0tLS0tLS0tLS0KK1sx
XSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSBjaGFuZ2VkIHRvIGZhbHNl
CitbMV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1heGltaXplZCkgY2hhbmdlZCB0byB0
cnVlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCkgY2hhbmdlZCB0
byBmYWxzZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtYXhpbWl6ZWQpIGNoYW5n
ZWQgdG8gdHJ1ZQorLS0tLS0tLS0tLS0tLSB3aW5kb3dlZCAtLS0tLS0tLS0tLS0tCitbMV0gLSBx
dWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFuZ2VkIHRvIHRydWUKK1sxXSAt
IHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWF4aW1pemVkKSBjaGFuZ2VkIHRvIGZhbHNlCitb
Ml0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFuZ2VkIHRvIHRydWUK
K1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWF4aW1pemVkKSBjaGFuZ2VkIHRvIGZh
bHNlCistLS0tLS0tLS0tLS0tIGZsb2F0aW5nIC0tLS0tLS0tLS0tLS0KK1sxXSAtIHF1ZXJ5ICgt
d2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQgdG8gZmFsc2UKK1sxXSAtIHF1ZXJ5
ICgtd2Via2l0LXZpZXctbW9kZTogZmxvYXRpbmcpIGNoYW5nZWQgdG8gdHJ1ZQorWzJdIC0gcXVl
cnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0byBmYWxzZQorWzJdIC0g
cXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBmbG9hdGluZykgY2hhbmdlZCB0byB0cnVlCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNC5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA0Lmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTg3N2E1YQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNC5odG1sCkBAIC0wLDAg
KzEsNzUgQEAKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+VGVzdCBDU1NPTSBWaWV3IG1vZHVsZTog
TWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CisKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKSB7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdFVzZXNQYWdlQ2FjaGVQ
cmVmZXJlbmNlS2V5IiwgMSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gbG9nKG0pIHsKKyAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdHMnKS5pbm5lckhUTUwgKz0gbSArICc8
YnI+JzsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjYWxsYmFjazEocXVlcnkpIHsKKyAgICAgICAg
bG9nKCJbMV0gLSBxdWVyeSAiICsgcXVlcnkubWVkaWEgKyAiIGNoYW5nZWQgdG8gIiArIChxdWVy
eS5tYXRjaGVzID8gInRydWUiIDogImZhbHNlIikpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNh
bGxiYWNrMihxdWVyeSkgeworICAgICAgICBsb2coIlsyXSAtIHF1ZXJ5ICIgKyBxdWVyeS5tZWRp
YSArICIgY2hhbmdlZCB0byAiICsgKHF1ZXJ5Lm1hdGNoZXMgPyAidHJ1ZSIgOiAiZmFsc2UiKSk7
CisgICAgfQorCisgICAgZnVuY3Rpb24gcGFnZXNob3coZXZ0KQorICAgIHsKKyAgICAgICAgaWYg
KCFldnQucGVyc2lzdGVkKSB7CisgICAgICAgICAgICAvLyB0aGlzIHdpbGwgcnVuIG9ubHkgd2hl
biB0aGUgcGFnZSBpcyBsb2FkZWQgZm9yIHRoZSBmaXJzdCB0aW1lLgorCisgICAgICAgICAgICB3
aW5kb3dlZFF1ZXJ5ID0gd2luZG93Lm1hdGNoTWVkaWEoIigtd2Via2l0LXZpZXctbW9kZTogd2lu
ZG93ZWQpIik7CisgICAgICAgICAgICBmbG9hdGluZ1F1ZXJ5ID0gd2luZG93Lm1hdGNoTWVkaWEo
Iigtd2Via2l0LXZpZXctbW9kZTogZmxvYXRpbmcpIik7CisgICAgICAgICAgICBtaW5pbWl6ZWRR
dWVyeSA9IHdpbmRvdy5tYXRjaE1lZGlhKCIoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCki
KTsKKyAgICAgICAgICAgIG1heGltaXplZFF1ZXJ5ID0gd2luZG93Lm1hdGNoTWVkaWEoIigtd2Vi
a2l0LXZpZXctbW9kZTogbWF4aW1pemVkKSIpOworCisgICAgICAgICAgICB3aW5kb3dlZFF1ZXJ5
LmFkZExpc3RlbmVyKGNhbGxiYWNrMSk7CisgICAgICAgICAgICBmbG9hdGluZ1F1ZXJ5LmFkZExp
c3RlbmVyKGNhbGxiYWNrMSk7CisgICAgICAgICAgICBtaW5pbWl6ZWRRdWVyeS5hZGRMaXN0ZW5l
cihjYWxsYmFjazEpOworICAgICAgICAgICAgbWF4aW1pemVkUXVlcnkuYWRkTGlzdGVuZXIoY2Fs
bGJhY2sxKTsKKworICAgICAgICAgICAgd2luZG93ZWRRdWVyeS5hZGRMaXN0ZW5lcihjYWxsYmFj
azIpOworICAgICAgICAgICAgZmxvYXRpbmdRdWVyeS5hZGRMaXN0ZW5lcihjYWxsYmFjazIpOwor
ICAgICAgICAgICAgbWluaW1pemVkUXVlcnkuYWRkTGlzdGVuZXIoY2FsbGJhY2syKTsKKyAgICAg
ICAgICAgIG1heGltaXplZFF1ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNrMik7CisKKyAgICAgICAg
ICAgIHNldFRpbWVvdXQoJ3dpbmRvdy5sb2NhdGlvbiA9ICJkYXRhOnRleHQvaHRtbCw8c2NyaXB0
Pmhpc3RvcnkuYmFjaygpPCIgKyAiL3NjcmlwdD4iJywgMCk7CisKKyAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgIC8vIGlmIHRoaXMgcG9pbnQgaXMgcmVhY2hlZCB0aGUgcGFnZSBpcyBjb21t
aW5nIGZyb20gdGhlIHBhZ2UgY2FjaGUuCisKKyAgICAgICAgICAgIGxvZygiLS0tLS0tLS0tLS0t
LSBtaW5pbWl6ZWQgLS0tLS0tLS0tLS0tLSIpOworICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoIm1pbmltaXplZCIpOworICAgICAgICAgICAg
bG9nKCItLS0tLS0tLS0tLS0tIG1heGltaXplZCAtLS0tLS0tLS0tLS0tIik7CisgICAgICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSgibWF4aW1pemVk
Iik7CisgICAgICAgICAgICBsb2coIi0tLS0tLS0tLS0tLS0gd2luZG93ZWQgLS0tLS0tLS0tLS0t
LSIpOworICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZl
YXR1cmUoIndpbmRvd2VkIik7CisgICAgICAgICAgICBsb2coIi0tLS0tLS0tLS0tLS0gZmxvYXRp
bmcgLS0tLS0tLS0tLS0tLSIpOworICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0
Vmlld01vZGVNZWRpYUZlYXR1cmUoImZsb2F0aW5nIik7CisKKyAgICAgICAgICAgIHNldFRpbWVv
dXQoZnVuY3Rpb24oKSB7IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIGxheW91dFRl
c3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsgfSwgMCk7CisKKyAgICAgICAgfQorICAgIH0KKwor
ICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoIndpbmRvd2VkIik7CisgICAgICAg
IHdpbmRvdy5vbnBhZ2VzaG93ID0gcGFnZXNob3c7CisgICAgfQorCis8L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorICAgIDxwPlRlc3QgdGhlIE1lZGlhUXVlcnlMaXN0IGludGVyZmFjZTogPGEg
aHJlZj0iaHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3Nzb20tdmlldy8jdGhlLW1lZGlhcXVlcnls
aXN0LWludGVyZmFjZSIgdGl0bGU9IkNTU09NIFZpZXcgTW9kdWxlIj5odHRwOi8vZGV2LnczLm9y
Zy9jc3N3Zy9jc3NvbS12aWV3LyN0aGUtbWVkaWFxdWVyeWxpc3QtaW50ZXJmYWNlPC9hPi48L3A+
CisgICAgPHA+VGVzdGluZyBwYWdlIGNhY2hlPC9wPgorICAgIDxkaXYgaWQ9InJlc3VsdHMiPjwv
ZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YS9tZWRpYS1xdWVyeS1saXN0LTA1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVk
aWEvbWVkaWEtcXVlcnktbGlzdC0wNS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uMDQ3ZTEwNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBA
CitUZXN0IHRoZSBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U6IGh0dHA6Ly9kZXYudzMub3JnL2Nz
c3dnL2Nzc29tLXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2UuCisKK1Rlc3Rpbmcg
bGlzdGVuZXIgY29tcGFyaXNvbi4gVHdvIGNhbGxiYWNrcyBhcmUgZXhwZWN0ZWQuCisKK1sxXSAt
IHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQgdG8gZmFsc2UKK1sy
XSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQgdG8gZmFsc2UK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA1
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDUuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YjY2YjBhCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA1Lmh0bWwKQEAg
LTAsMCArMSw0NyBAQAorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5UZXN0IENTU09NIFZpZXcgbW9k
dWxlOiBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U8L3RpdGxlPgorPHN0eWxlIHR5cGU9InRleHQv
Y3NzIj4KKworPC9zdHlsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0
PSJ1dGYtOCI+CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgICAgZnVuY3Rpb24gbG9nKG0p
IHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdHMnKS5pbm5lckhUTUwg
Kz0gbSArICc8YnI+JzsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjYWxsYmFjazEocXVlcnkpIHsK
KyAgICAgICAgbG9nKCJbMV0gLSBxdWVyeSAiICsgcXVlcnkubWVkaWEgKyAiIGNoYW5nZWQgdG8g
IiArIChxdWVyeS5tYXRjaGVzID8gInRydWUiIDogImZhbHNlIikpOworICAgIH0KKworICAgIGZ1
bmN0aW9uIGNhbGxiYWNrMihxdWVyeSkgeworICAgICAgICBsb2coIlsyXSAtIHF1ZXJ5ICIgKyBx
dWVyeS5tZWRpYSArICIgY2hhbmdlZCB0byAiICsgKHF1ZXJ5Lm1hdGNoZXMgPyAidHJ1ZSIgOiAi
ZmFsc2UiKSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdHMoKQorICAgIHsKKyAgICAg
ICAgaWYgKCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICByZXR1cm47
CisKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUo
IndpbmRvd2VkIik7CisKKyAgICAgICAgdmFyIHF1ZXJ5ID0gd2luZG93Lm1hdGNoTWVkaWEoIigt
d2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIik7CisKKyAgICAgICAgcXVlcnkuYWRkTGlzdGVu
ZXIoY2FsbGJhY2sxKTsKKyAgICAgICAgcXVlcnkuYWRkTGlzdGVuZXIoY2FsbGJhY2sxKTsKKyAg
ICAgICAgcXVlcnkuYWRkTGlzdGVuZXIoY2FsbGJhY2syKTsKKworICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSgibWluaW1pemVkIik7CisgICAgfQor
Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdHMoKSI+CisgICAgPHA+
VGVzdCB0aGUgTWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlOiA8YSBocmVmPSJodHRwOi8vZGV2Lncz
Lm9yZy9jc3N3Zy9jc3NvbS12aWV3LyN0aGUtbWVkaWFxdWVyeWxpc3QtaW50ZXJmYWNlIiB0aXRs
ZT0iQ1NTT00gVmlldyBNb2R1bGUiPmh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzc29tLXZpZXcv
I3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2U8L2E+LjwvcD4KKyAgICA8cD5UZXN0aW5nIGxp
c3RlbmVyIGNvbXBhcmlzb24uIFR3byBjYWxsYmFja3MgYXJlIGV4cGVjdGVkLjwvcD4KKyAgICA8
ZGl2IGlkPSJyZXN1bHRzIj4KKyAgICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNi1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDYtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFjNjU0NjUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDYtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorVGVzdCB0aGUgTWVkaWFRdWVyeUxpc3QgaW50ZXJm
YWNlOiBodHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9jc3NvbS12aWV3LyN0aGUtbWVkaWFxdWVyeWxp
c3QtaW50ZXJmYWNlLgorCitUZXN0aW5nIHF1ZXJpZXMgdGhhdCBoYXZlIG5vIHJlZ2lzdGVyZWQg
bGlzdGVuZXIuCisKK1F1ZXJ5IHJlc3VsdCBiZWZvcmUgY2hhbmdpbmcgdmlldy1tb2RlOiB0cnVl
CitRdWVyeSByZXN1bHQgYWZ0ZXIgY2hhbmdpbmcgdmlldy1tb2RlOiBmYWxzZQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDYuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNi5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU5MTNlNTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDYuaHRtbApAQCAtMCwwICsxLDM2
IEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPlRlc3QgQ1NTT00gVmlldyBtb2R1bGU6IE1lZGlh
UXVlcnlMaXN0IGludGVyZmFjZTwvdGl0bGU+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorCis8
L3N0eWxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4K
KyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyAgICBmdW5jdGlvbiBsb2cobSkgeworICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0cycpLmlubmVySFRNTCArPSBtICsgJzxi
cj4nOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3RzKCkKKyAgICB7CisgICAgICAgIGlm
ICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgcmV0dXJuOworCisg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCJ3aW5k
b3dlZCIpOworCisgICAgICAgIHZhciBxdWVyeSA9IHdpbmRvdy5tYXRjaE1lZGlhKCIoLXdlYmtp
dC12aWV3LW1vZGU6IHdpbmRvd2VkKSIpOworICAgICAgICBsb2coJ1F1ZXJ5IHJlc3VsdCBiZWZv
cmUgY2hhbmdpbmcgdmlldy1tb2RlOiAnICsgcXVlcnkubWF0Y2hlcyk7CisgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCJtaW5pbWl6ZWQiKTsKKyAg
ICAgICAgbG9nKCdRdWVyeSByZXN1bHQgYWZ0ZXIgY2hhbmdpbmcgdmlldy1tb2RlOiAnICsgcXVl
cnkubWF0Y2hlcyk7CisgICAgfQorCis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0i
cnVuVGVzdHMoKSI+CisgICAgPHA+VGVzdCB0aGUgTWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlOiA8
YSBocmVmPSJodHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9jc3NvbS12aWV3LyN0aGUtbWVkaWFxdWVy
eWxpc3QtaW50ZXJmYWNlIiB0aXRsZT0iQ1NTT00gVmlldyBNb2R1bGUiPmh0dHA6Ly9kZXYudzMu
b3JnL2Nzc3dnL2Nzc29tLXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2U8L2E+Ljwv
cD4KKyAgICA8cD5UZXN0aW5nIHF1ZXJpZXMgdGhhdCBoYXZlIG5vIHJlZ2lzdGVyZWQgbGlzdGVu
ZXIuPC9wPgorICAgIDxkaXYgaWQ9InJlc3VsdHMiPgorICAgIDwvZGl2PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0
LTA3LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlz
dC0wNy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGIw
ZTdmOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVl
cnktbGlzdC0wNy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACitUZXN0IHRoZSBNZWRpYVF1
ZXJ5TGlzdCBpbnRlcmZhY2U6IGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzc29tLXZpZXcvI3Ro
ZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2UuCisKK0ludmFsaWQgbGlzdGVuZXJzLiBUd28gY2Fs
bGJhY2tzIGFyZSBleHBlY3RlZC4KKworWzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiB3
aW5kb3dlZCkgY2hhbmdlZCB0byBmYWxzZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2Rl
OiB3aW5kb3dlZCkgY2hhbmdlZCB0byBmYWxzZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVk
aWEvbWVkaWEtcXVlcnktbGlzdC0wNy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjAzNDQyNjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlh
L21lZGlhLXF1ZXJ5LWxpc3QtMDcuaHRtbApAQCAtMCwwICsxLDQ5IEBACis8aHRtbD4KKzxoZWFk
PgorPHRpdGxlPlRlc3QgQ1NTT00gVmlldyBtb2R1bGU6IE1lZGlhUXVlcnlMaXN0IGludGVyZmFj
ZTwvdGl0bGU+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorCis8L3N0eWxlPgorPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNU
ZXh0KCk7CisKKyAgICBmdW5jdGlvbiBsb2cobSkgeworICAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgncmVzdWx0cycpLmlubmVySFRNTCArPSBtICsgJzxicj4nOworICAgIH0KKworICAg
IGZ1bmN0aW9uIGNhbGxiYWNrMShxdWVyeSkgeworICAgICAgICBsb2coIlsxXSAtIHF1ZXJ5ICIg
KyBxdWVyeS5tZWRpYSArICIgY2hhbmdlZCB0byAiICsgKHF1ZXJ5Lm1hdGNoZXMgPyAidHJ1ZSIg
OiAiZmFsc2UiKSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gY2FsbGJhY2syKHF1ZXJ5KSB7Cisg
ICAgICAgIGxvZygiWzJdIC0gcXVlcnkgIiArIHF1ZXJ5Lm1lZGlhICsgIiBjaGFuZ2VkIHRvICIg
KyAocXVlcnkubWF0Y2hlcyA/ICJ0cnVlIiA6ICJmYWxzZSIpKTsKKyAgICB9CisKKyAgICBmdW5j
dGlvbiBydW5UZXN0cygpCisgICAgeworICAgICAgICBpZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSgid2luZG93ZWQiKTsKKworICAgICAgICB2YXIg
cXVlcnkgPSB3aW5kb3cubWF0Y2hNZWRpYSgiKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCki
KTsKKworICAgICAgICBxdWVyeS5hZGRMaXN0ZW5lcihjYWxsYmFjazEpOworICAgICAgICBxdWVy
eS5hZGRMaXN0ZW5lcig1KTsKKyAgICAgICAgcXVlcnkuYWRkTGlzdGVuZXIoJ2NpbmNvJyk7Cisg
ICAgICAgIHF1ZXJ5LmFkZExpc3RlbmVyKFsxLDJdKTsKKyAgICAgICAgcXVlcnkuYWRkTGlzdGVu
ZXIoY2FsbGJhY2syKTsKKworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9k
ZU1lZGlhRmVhdHVyZSgibWluaW1pemVkIik7CisgICAgfQorCis8L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5IG9ubG9hZD0icnVuVGVzdHMoKSI+CisgICAgPHA+VGVzdCB0aGUgTWVkaWFRdWVyeUxp
c3QgaW50ZXJmYWNlOiA8YSBocmVmPSJodHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9jc3NvbS12aWV3
LyN0aGUtbWVkaWFxdWVyeWxpc3QtaW50ZXJmYWNlIiB0aXRsZT0iQ1NTT00gVmlldyBNb2R1bGUi
Pmh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzc29tLXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1p
bnRlcmZhY2U8L2E+LjwvcD4KKyAgICA8cD5JbnZhbGlkIGxpc3RlbmVycy4gVHdvIGNhbGxiYWNr
cyBhcmUgZXhwZWN0ZWQuPC9wPgorICAgIDxkaXYgaWQ9InJlc3VsdHMiPgorICAgIDwvZGl2Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vdGVzdF9leHBlY3RhdGlvbnMudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
dGVzdF9leHBlY3RhdGlvbnMudHh0CmluZGV4IDJjOTBhNWYuLmM4NGRlNTAgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKQEAg
LTIzNjgsOCArMjM2OCwxNCBAQCBCVUczODU3OCA6IHBsdWdpbnMvb3ZlcnJpZGUtbm9kZS1tZXRo
b2QuaHRtbCA9IFRFWFQKIEJVRzM4NjUzIE1BQyA6IGVkaXRpbmcvc2VsZWN0aW9uL2ZpbmQteWVu
c2lnbi1hbmQtYmFja3NsYXNoLmh0bWwgPSBURVhUCiBCVUczODY1NiA6IGZhc3QvbWVkaWEvcHJp
bnQtcmVzdG9yZXMtcHJldmlvdXMtbWVkaWF0eXBlLmh0bWwgPSBURVhUCiAKLS8vIE5lZWRzIGxh
eW91dFRlc3RDb250cm9sbGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCkgKGltcGxlbWVudGVk
IG9uIFF0IG9ubHkpCisvLyBOZWVkcyBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9kZU1l
ZGlhRmVhdHVyZSgpCiBCVUc0MDY4MCBTS0lQIDogZmFzdC9tZWRpYS92aWV3LW1vZGUtbWVkaWEt
ZmVhdHVyZS5odG1sID0gRkFJTAorQlVHNDA2ODAgU0tJUCA6IGZhc3QvbWVkaWEvbWVkaWEtcXVl
cnktbGlzdC0wMi5odG1sID0gRkFJTAorQlVHNDA2ODAgU0tJUCA6IGZhc3QvbWVkaWEvbWVkaWEt
cXVlcnktbGlzdC0wMy5odG1sID0gRkFJTAorQlVHNDA2ODAgU0tJUCA6IGZhc3QvbWVkaWEvbWVk
aWEtcXVlcnktbGlzdC0wNC5odG1sID0gRkFJTAorQlVHNDA2ODAgU0tJUCA6IGZhc3QvbWVkaWEv
bWVkaWEtcXVlcnktbGlzdC0wNS5odG1sID0gRkFJTAorQlVHNDA2ODAgU0tJUCA6IGZhc3QvbWVk
aWEvbWVkaWEtcXVlcnktbGlzdC0wNi5odG1sID0gRkFJTAorQlVHNDA2ODAgU0tJUCA6IGZhc3Qv
bWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNy5odG1sID0gRkFJTAogCiAvLyBVbmtub3duIGZsYWtp
bmVzcy4KIEJVRzM4NzA2IDogc3ZnL2N1c3RvbS9kZWVwLWR5bmFtaWMtdXBkYXRlcy5zdmcgPSBJ
TUFHRStURVhUIElNQUdFIFBBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKaW5kZXggYjE2MGRi
YS4uNjc4NzZiZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKQEAgLTEyNCw4ICsxMjQsMTQg
QEAgaHR0cC90ZXN0cy9wbHVnaW5zL3BsdWdpbi1kb2N1bWVudC1oYXMtZm9jdXMuaHRtbAogIyBN
aXNzZXMgc2V0TWVkaWFUeXBlKCkgYW5kIGltcGxlbWVudGF0aW9uCiBmYXN0L21lZGlhL3ByaW50
LXJlc3RvcmVzLXByZXZpb3VzLW1lZGlhdHlwZS5odG1sCiAKLSMgdmlldyBtb2RlIG1lZGlhIGZl
YXR1cmUKKyMgTmVlZHMgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1
cmUoKQogZmFzdC9tZWRpYS92aWV3LW1vZGUtbWVkaWEtZmVhdHVyZS5odG1sCitmYXN0L21lZGlh
L21lZGlhLXF1ZXJ5LWxpc3QtMDIuaHRtbAorZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAz
Lmh0bWwKK2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNC5odG1sCitmYXN0L21lZGlhL21l
ZGlhLXF1ZXJ5LWxpc3QtMDUuaHRtbAorZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA2Lmh0
bWwKK2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNy5odG1sCiAKICMgVGVzdCBpcyBmbGFr
eSBhbmQgdGh1cyBub3QgdXNlZnVsIHVudGlsIGZpeGVkLgogIyBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzY2NDIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL3dpbi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKaW5kZXgg
ZDkyZmU2Ni4uZjRmMTk5YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Nr
aXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKQEAgLTg2NCw4ICs4
NjQsMTQgQEAgZmFzdC9kb20vSFRNTE1ldGVyRWxlbWVudC9tZXRlci1wZXJjZW50LXNpemUuaHRt
bAogZmFzdC9kb20vSFRNTE1ldGVyRWxlbWVudC9tZXRlci1zdHlsZXMuaHRtbAogZmFzdC9kb20v
SFRNTE1ldGVyRWxlbWVudC9tZXRlci1zdHlsZXMtY2hhbmdpbmctcHNldWRvLmh0bWwKIAotIyB2
aWV3IG1vZGUgbWVkaWEgZmVhdHVyZQorIyBOZWVkcyBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRW
aWV3TW9kZU1lZGlhRmVhdHVyZSgpCiBmYXN0L21lZGlhL3ZpZXctbW9kZS1tZWRpYS1mZWF0dXJl
Lmh0bWwKK2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMi5odG1sCitmYXN0L21lZGlhL21l
ZGlhLXF1ZXJ5LWxpc3QtMDMuaHRtbAorZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA0Lmh0
bWwKK2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNS5odG1sCitmYXN0L21lZGlhL21lZGlh
LXF1ZXJ5LWxpc3QtMDYuaHRtbAorZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA3Lmh0bWwK
IAogIyBOZWVkIGV4cGVjdGF0aW9ucy4gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zNjQ2MQogZmFzdC9yZXBhaW50L292ZXJmbG93LXNjcm9sbC1ib2R5LWFwcGVh
ci5odG1sCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAppbmRleCA0MmUzNDRhLi45ODg1ZDFjIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CisrKyBiL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTEzMSw2ICsxMzEs
NyBAQCBTRVQoV2ViQ29yZV9JRExfRklMRVMKICAgICBjc3MvQ1NTVmFyaWFibGVzRGVjbGFyYXRp
b24uaWRsCiAgICAgY3NzL0NTU1ZhcmlhYmxlc1J1bGUuaWRsCiAgICAgY3NzL01lZGlhTGlzdC5p
ZGwKKyAgICBjc3MvTWVkaWFRdWVyeUxpc3QuaWRsCiAgICAgY3NzL1JlY3QuaWRsCiAgICAgY3Nz
L1JHQkNvbG9yLmlkbAogICAgIGNzcy9TdHlsZU1lZGlhLmlkbApAQCAtNzY3LDYgKzc2OCw5IEBA
IFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBjc3MvTWVkaWFRdWVyeS5jcHAKICAgICBjc3MvTWVk
aWFRdWVyeUV2YWx1YXRvci5jcHAKICAgICBjc3MvTWVkaWFRdWVyeUV4cC5jcHAKKyAgICBjc3Mv
TWVkaWFRdWVyeUxpc3QuY3BwCisgICAgY3NzL01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCisg
ICAgY3NzL01lZGlhUXVlcnlNYXRjaGVyLmNwcAogICAgIGNzcy9SR0JDb2xvci5jcHAKICAgICBj
c3MvU2hhZG93VmFsdWUuY3BwCiAgICAgY3NzL1N0eWxlQmFzZS5jcHAKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWRhZjc5MS4uYzUzZWI5
NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw4OSBAQAorMjAxMC0xMC0yMSAgTHVpeiBBZ29zdGluaSAgPGx1aXouYWdvc3Rp
bmlAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBJbXBsZW1lbnQgQ1NTT00gVmlldyBtYXRjaE1lZGlhIGludGVyZmFjZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzcyMDUKKworICAg
ICAgICBOZXcgaW50ZXJmYWNlcyBtYXkgYmUgdXNlZCB0byBldmFsdWF0ZSBtZWRpYSBxdWVyaWVz
IGFuZCB0byBhc3NvY2lhdGUgbGlzdGVuZXJzCisgICAgICAgIHRvIG1lZGlhIHF1ZXJpZXMuIFRo
b3NlIGxpc3RlbmVycyBhcmUgY2FsbGVkIHdoZW5ldmVyIHRoZSBhc3NvY2lhdGVkIHF1ZXJ5IGNo
YW5nZXMuCisgICAgICAgIFNwZWNpZmljYXRpb24gbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9kZXYu
dzMub3JnL2Nzc3dnL2Nzc29tLXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2UKKwor
ICAgICAgICBvcGVyYXRvcj09IGFkZGVkIHRvIEpTIHZlcnNpb24gb2YgU2NyaXB0VmFsdWUuCisg
ICAgICAgIE1ldGhvZCBpc0Z1bmN0aW9uIGFkZGVkIHRvIEpTIGFuZCBWOCB2ZXJzaW9ucyBvZiBT
Y3JpcHRWYWx1ZS4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdFZhbHVlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmlwdFZhbHVlOjppc0Z1bmN0aW9uKToKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9TY3JpcHRWYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0VmFsdWU6Om9w
ZXJhdG9yPT0pOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1NjcmlwdFZhbHVlLmg6CisgICAgICAg
IChXZWJDb3JlOjpTY3JpcHRWYWx1ZTo6aXNGdW5jdGlvbik6CisKKyAgICAgICAgU29tZSBjaGFu
Z2VzIHdlcmUgbmVlZGVkIHRvIHRoZSBjb2RlIGdlbmVyYXRvcnMgdG8gaGFuZGxlIHR5cGUgTWVk
aWFRdWVyeUxpc3RMaXN0ZW5lci4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckdPYmplY3QucG06CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9ySlMucG06CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06
CisKKyAgICAgICAgU29tZSBjaGFuZ2VzIHRvIHRoZSBiaW5kaW5ncyB0ZXN0IHJlc3VsdHMgdGhh
dCB3ZXJlIHByZXZpb3VzbHkgYWRkZWQuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvR09iamVjdC9XZWJLaXRET01UZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHA6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBlRnVuY3Rpb25NZXRob2QpOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVySW50ZXJuYWw6
Om1ldGhvZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbmZpZ3VyZVY4VGVzdE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXJUZW1wbGF0ZSk6CisKKyAgICAgICAgTmV3IGludGVyZmFjZXM6CisK
KyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUxpc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBjc3Mv
TWVkaWFRdWVyeUxpc3QuaDogQWRkZWQuCisgICAgICAgICogY3NzL01lZGlhUXVlcnlMaXN0Lmlk
bDogQWRkZWQuCisKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHA6IEFk
ZGVkLgorICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmg6IEFkZGVkLgorICAg
ICAgICAqIGNzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmlkbDogQWRkZWQuCisKKyAgICAgICAg
VG8gYXZvaWQgYWRkaW5nIGNvZGUgdG8gY2xhc3NlcyBET01XaW5kb3cgYW5kIERvY3VtZW50IGEg
bmV3IGNsYXNzIE1lZGlhUXVlcnlNYXRjaGVyIHdhcyBjcmVhdGVkLgorCisgICAgICAgICogY3Nz
L01lZGlhUXVlcnlNYXRjaGVyLmNwcDogQWRkZWQuCisgICAgICAgICogY3NzL01lZGlhUXVlcnlN
YXRjaGVyLmg6IEFkZGVkLgorCisgICAgICAgIERvY3VtZW50IGFuZCBET01XaW5kb3cgaGF2ZSBj
aGFuZ2VkIHRvIHN1cHBvcnQgbmV3IGZlYXR1cmVzLiBET01XaW5kb3cgaXMgdGhlIGNsYXNzIHRo
YXQKKyAgICAgICAgcHVibGlzaGVzIG1ldGhvZHMgbWF0Y2hNZWRpYSBidXQgZm9yIHBhZ2UgY2Fj
aGUgdG8gd29yayBwcm9wZXJseSAgdGhlIHJlZmVyZW5jZSB0byB0aGUKKyAgICAgICAgTWVkaWFR
dWVyeU1hdGNoZXIgbXVzdCBiZSBpbiBEb2N1bWVudC4KKworICAgICAgICAqIGRvbS9Eb2N1bWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6fkRvY3VtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50OjptZWRpYVF1ZXJ5TWF0Y2hlcik6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6c3R5bGVTZWxlY3RvckNoYW5nZWQpOgorICAgICAgICAqIGRvbS9Eb2N1bWVu
dC5oOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRP
TVdpbmRvdzo6bWF0Y2hNZWRpYSk6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaDoKKyAgICAg
ICAgKiBwYWdlL0RPTVdpbmRvdy5pZGw6CisKKyAgICAgICAgQnVpbGQgc3lzdGVtcworCisgICAg
ICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAg
ICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAg
ICogV2ViQ29yZS5wcmk6CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2dvYmplY3QvR05VbWFrZWZpbGUuYW06
CisKKyAgICAgICAgVGVzdHM6IGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMS5odG1sCisg
ICAgICAgICAgICAgICBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDIuaHRtbAorICAgICAg
ICAgICAgICAgZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAzLmh0bWwKKyAgICAgICAgICAg
ICAgIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNC5odG1sCisgICAgICAgICAgICAgICBm
YXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDUuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9t
ZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA2Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvbWVkaWEv
bWVkaWEtcXVlcnktbGlzdC0wNy5odG1sCisKIDIwMTAtMTAtMjEgIFhpYW9tZWkgSmkgIDx4amlA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIExldmluLgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlCmluZGV4IDM0MmJiN2IuLjhhNjE1MjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZQorKysgYi9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTI2Nyw2
ICsyNjcsOCBAQCBET01fQ0xBU1NFUyA9IFwKICAgICBMb2NhdGlvbiBcCiAgICAgTWVkaWFFcnJv
ciBcCiAgICAgTWVkaWFMaXN0IFwKKyAgICBNZWRpYVF1ZXJ5TGlzdCBcCisgICAgTWVkaWFRdWVy
eUxpc3RMaXN0ZW5lciBcCiAgICAgTWVtb3J5SW5mbyBcCiAgICAgTWVzc2FnZUNoYW5uZWwgXAog
ICAgIE1lc3NhZ2VFdmVudCBcCkBAIC01MDMsNyArNTA1LDcgQEAgRE9NX0NMQVNTRVMgPSBcCiAK
IC5QSE9OWSA6IGFsbAogCi1KU19ET01fSEVBREVSUz0kKGZpbHRlci1vdXQgSlNFdmVudExpc3Rl
bmVyLmggSlNFdmVudFRhcmdldC5oLCQoRE9NX0NMQVNTRVM6JT1KUyUuaCkpCitKU19ET01fSEVB
REVSUz0kKGZpbHRlci1vdXQgSlNNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggSlNFdmVudExpc3Rl
bmVyLmggSlNFdmVudFRhcmdldC5oLCQoRE9NX0NMQVNTRVM6JT1KUyUuaCkpCiAKIFdFQl9ET01f
SEVBREVSUyA6PQogaWZlcSAoJChmaW5kc3RyaW5nIEJVSUxESU5HX1dYLCQoRkVBVFVSRV9ERUZJ
TkVTKSksIEJVSUxESU5HX1dYKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBi
L1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggMWYyNTUwMC4uZTBmYzUyYyAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBA
IC00MjgsNiArNDI4LDggQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTTWVkaWFFcnJvci5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
TWVkaWFMaXN0LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhTGlzdC5oIFwK
KwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFRdWVyeUxpc3QuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTTWVkaWFRdWVyeUxpc3QuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU01lbW9yeUluZm8uY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVtb3J5
SW5mby5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVzc2FnZUNoYW5uZWwuY3BwIFwK
QEAgLTk5OSwxMSArMTAwMSwxNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvY3Nz
L01lZGlhTGlzdC5jcHAgXAogCVdlYkNvcmUvY3NzL01lZGlhTGlzdC5oIFwKIAlXZWJDb3JlL2Nz
cy9NZWRpYVF1ZXJ5LmNwcCBcCisJV2ViQ29yZS9jc3MvTWVkaWFRdWVyeS5oIFwKIAlXZWJDb3Jl
L2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcCBcCiAJV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2
YWx1YXRvci5oIFwKIAlXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwLmNwcCBcCiAJV2ViQ29yZS9j
c3MvTWVkaWFRdWVyeUV4cC5oIFwKLQlXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5LmggXAorCVdlYkNv
cmUvY3NzL01lZGlhUXVlcnlMaXN0LmNwcCBcCisJV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3Qu
aCBcCisJV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgXAorCVdlYkNvcmUv
Y3NzL01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCBcCisJV2ViQ29yZS9jc3MvTWVkaWFRdWVyeU1h
dGNoZXIuY3BwIFwKKwlXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TWF0Y2hlci5oIFwKIAlXZWJDb3Jl
L2Nzcy9QYWlyLmggXAogCVdlYkNvcmUvY3NzL1JlY3QuaCBcCiAJV2ViQ29yZS9jc3MvUkdCQ29s
b3IuY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKaW5kZXggYTFhOTZlMS4uZmYwM2Y1ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTE5LDYgKzE5LDcgQEAKICAg
ICAgICAgICAgICdjc3MvQ1NTVmFyaWFibGVzUnVsZS5pZGwnLAogICAgICAgICAgICAgJ2Nzcy9D
b3VudGVyLmlkbCcsCiAgICAgICAgICAgICAnY3NzL01lZGlhTGlzdC5pZGwnLAorICAgICAgICAg
ICAgJ2Nzcy9NZWRpYVF1ZXJ5TGlzdC5pZGwnLAogICAgICAgICAgICAgJ2Nzcy9SZWN0LmlkbCcs
CiAgICAgICAgICAgICAnY3NzL1JHQkNvbG9yLmlkbCcsCiAgICAgICAgICAgICAnY3NzL1N0eWxl
TWVkaWEuaWRsJywKQEAgLTEwNzAsMTEgKzEwNzEsMTcgQEAKICAgICAgICAgICAgICdjc3MvTWVk
aWFMaXN0LmNwcCcsCiAgICAgICAgICAgICAnY3NzL01lZGlhTGlzdC5oJywKICAgICAgICAgICAg
ICdjc3MvTWVkaWFRdWVyeS5jcHAnLAorICAgICAgICAgICAgJ2Nzcy9NZWRpYVF1ZXJ5LmgnLAog
ICAgICAgICAgICAgJ2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcCcsCiAgICAgICAgICAgICAn
Y3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuaCcsCiAgICAgICAgICAgICAnY3NzL01lZGlhUXVlcnlF
eHAuY3BwJywKICAgICAgICAgICAgICdjc3MvTWVkaWFRdWVyeUV4cC5oJywKLSAgICAgICAgICAg
ICdjc3MvTWVkaWFRdWVyeS5oJywKKyAgICAgICAgICAgICdjc3MvTWVkaWFRdWVyeUxpc3QuY3Bw
JywKKyAgICAgICAgICAgICdjc3MvTWVkaWFRdWVyeUxpc3QuaCcsCisgICAgICAgICAgICAnY3Nz
L01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwJywKKyAgICAgICAgICAgICdjc3MvTWVkaWFRdWVy
eUxpc3RMaXN0ZW5lci5oJywKKyAgICAgICAgICAgICdjc3MvTWVkaWFRdWVyeU1hdGNoZXIuY3Bw
JywKKyAgICAgICAgICAgICdjc3MvTWVkaWFRdWVyeU1hdGNoZXIuaCcsCiAgICAgICAgICAgICAn
Y3NzL1BhaXIuaCcsCiAgICAgICAgICAgICAnY3NzL1JlY3QuaCcsCiAgICAgICAgICAgICAnY3Nz
L1JHQkNvbG9yLmNwcCcsCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJpIGIvV2ViQ29y
ZS9XZWJDb3JlLnByaQppbmRleCAwNTFmNGQ5Li45MjFkZDIzIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L1dlYkNvcmUucHJpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcmkKQEAgLTg2LDYgKzg2LDcgQEAg
SURMX0JJTkRJTkdTICs9IFwKICAgICBjc3MvQ1NTVmFyaWFibGVzRGVjbGFyYXRpb24uaWRsIFwK
ICAgICBjc3MvQ1NTVmFyaWFibGVzUnVsZS5pZGwgXAogICAgIGNzcy9NZWRpYUxpc3QuaWRsIFwK
KyAgICBjc3MvTWVkaWFRdWVyeUxpc3QuaWRsIFwKICAgICBjc3MvUmVjdC5pZGwgXAogICAgIGNz
cy9SR0JDb2xvci5pZGwgXAogICAgIGNzcy9TdHlsZU1lZGlhLmlkbCBcCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL1dlYkNvcmUucHJvIGIvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCBiNmFjNGFlLi44
ZmFkZTllIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1dlYkNvcmUvV2Vi
Q29yZS5wcm8KQEAgLTY1NSw2ICs2NTUsOSBAQCBTT1VSQ0VTICs9IFwKICAgICBjc3MvTWVkaWFR
dWVyeS5jcHAgXAogICAgIGNzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcCBcCiAgICAgY3NzL01l
ZGlhUXVlcnlFeHAuY3BwIFwKKyAgICBjc3MvTWVkaWFRdWVyeUxpc3QuY3BwIFwKKyAgICBjc3Mv
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgXAorICAgIGNzcy9NZWRpYVF1ZXJ5TWF0Y2hlci5j
cHAgXAogICAgIGNzcy9SR0JDb2xvci5jcHAgXAogICAgIGNzcy9TaGFkb3dWYWx1ZS5jcHAgXAog
ICAgIGNzcy9TdHlsZUJhc2UuY3BwIFwKQEAgLTE1NjAsOSArMTU2MywxMiBAQCBIRUFERVJTICs9
IFwKICAgICBjc3MvRm9udFZhbHVlLmggXAogICAgIGNzcy9NZWRpYUZlYXR1cmVOYW1lcy5oIFwK
ICAgICBjc3MvTWVkaWFMaXN0LmggXAorICAgIGNzcy9NZWRpYVF1ZXJ5LmggXAogICAgIGNzcy9N
ZWRpYVF1ZXJ5RXZhbHVhdG9yLmggXAogICAgIGNzcy9NZWRpYVF1ZXJ5RXhwLmggXAotICAgIGNz
cy9NZWRpYVF1ZXJ5LmggXAorICAgIGNzcy9NZWRpYVF1ZXJ5TGlzdC5oIFwKKyAgICBjc3MvTWVk
aWFRdWVyeUxpc3RMaXN0ZW5lci5oIFwKKyAgICBjc3MvTWVkaWFRdWVyeU1hdGNoZXIuaCBcCiAg
ICAgY3NzL1JHQkNvbG9yLmggXAogICAgIGNzcy9TaGFkb3dWYWx1ZS5oIFwKICAgICBjc3MvU3R5
bGVCYXNlLmggXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKb2xkIG1vZGUgMTAw
NjQ0Cm5ldyBtb2RlIDEwMDc1NQppbmRleCBmZDk0MjFjLi41N2FmM2M0Ci0tLSBhL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvagpAQCAtMTAwMTksNiArMTAwMTksNjIgQEAKIAkJCQk+DQogCQkJPC9G
aWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9i
alwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU01lZGlhUXVlcnlMaXN0LmNwcCINCisJ
CQkJPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0K
KwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1
cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IlJlbGVhc2V8V2lu
MzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29s
DQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdf
SW50ZXJuYWx8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4N
CisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQor
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJ
TmFtZT0iRGVidWdfQ2Fpcm98V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIN
CisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJ
CQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlv
bg0KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVD
b25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiDQorCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJ
PC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIp
XG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU01lZGlhUXVlcnlMaXN0LmgiDQor
CQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktp
dE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTTWVtb3J5SW5m
by5jcHAiDQogCQkJCT4NCiAJCQkJPEZpbGVDb25maWd1cmF0aW9uDQpAQCAtMzAyMjMsNiArMzAy
NzksMzAgQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0
aD0iLi5cY3NzXE1lZGlhUXVlcnlMaXN0LmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8
RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xNZWRpYVF1ZXJ5TGlzdC5oIg0KKwkJCQk+
DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cY3NzXE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXIuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQor
CQkJCVJlbGF0aXZlUGF0aD0iLi5cY3NzXE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCINCisJCQkJ
Pg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xNZWRp
YVF1ZXJ5TWF0Y2hlci5jcHAiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxjc3NcTWVkaWFRdWVyeU1hdGNoZXIuaCINCisJCQkJPg0KKwkJCTwv
RmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xQYWlyLmgiDQogCQkJ
CT4NCiAJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCA1NGQxZmU1Li5iNjMxMjMxIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtNTI5Myw4ICs1MjkzLDE2IEBACiAJCUQyM0NBNTVEMEFCMEVBQUUw
MDUxMDhBNSAvKiBKU1JhbmdlRXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBEMjNDQTU1QzBBQjBFQUFFMDA1MTA4QTUgLyogSlNSYW5nZUV4
Y2VwdGlvbi5oICovOyB9OwogCQlEMjNDQTU1RjBBQjBFQUI2MDA1MTA4QTUgLyogSlNSYW5nZUV4
Y2VwdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBEMjNDQTU1RTBBQjBFQUI2MDA1MTA4QTUgLyogSlNSYW5nZUV4Y2VwdGlvbi5jcHAgKi87IH07
CiAJCUQyM0NBNTZDMEFCMEVCOEQwMDUxMDhBNSAvKiBSYW5nZUV4Y2VwdGlvbi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDIzQ0E1NkIwQUIwRUI4RDAw
NTEwOEE1IC8qIFJhbmdlRXhjZXB0aW9uLmggKi87IH07CisJCUQzNDA2MjlCMTI1M0JDOEMwMDlF
NDI1OSAvKiBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzNDA2MjlBMTI1M0JDOEMwMDlFNDI1OSAvKiBNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyLmNwcCAqLzsgfTsKIAkJRDM5RDAwNkQxMUY4RTMwODAwNjA0MUYy
IC8qIFBvcHVwTWVudU1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRDM5RDAwNkMxMUY4RTMwODAwNjA0MUYyIC8qIFBvcHVwTWVudU1hYy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUQzOUQwMDlEMTFG
OTA3RTYwMDYwNDFGMiAvKiBTZWFyY2hQb3B1cE1lbnVNYWMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzOUQwMDlDMTFGOTA3RTYwMDYwNDFGMiAvKiBT
ZWFyY2hQb3B1cE1lbnVNYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQlEM0E5NEEzODEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeUxpc3Qu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNBOTRB
MzExMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0LmNwcCAqLzsgfTsKKwkJRDNBOTRB
MzkxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0E5NEEzMjEyMkRBQkFDMDBBMzdCQkMgLyog
TWVkaWFRdWVyeUxpc3QuaCAqLzsgfTsKKwkJRDNBOTRBM0IxMjJEQUJBQzAwQTM3QkJDIC8qIE1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEQzQTk0QTM0MTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyLmggKi87IH07CisJCUQzQTk0QTQ2MTIyREM0MEYwMEEzN0JCQyAvKiBKU01lZGlhUXVl
cnlMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEQzQTk0QTQyMTIyREM0MEYwMEEzN0JCQyAvKiBKU01lZGlhUXVlcnlMaXN0LmNwcCAqLzsgfTsK
KwkJRDNBOTRBNDcxMjJEQzQwRjAwQTM3QkJDIC8qIEpTTWVkaWFRdWVyeUxpc3QuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQTk0QTQzMTIyREM0MEYw
MEEzN0JCQyAvKiBKU01lZGlhUXVlcnlMaXN0LmggKi87IH07CisJCUQzQUExMEYzMTIzQTk4QUEw
MDkyMTUyQiAvKiBNZWRpYVF1ZXJ5TWF0Y2hlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0FBMTBGMTEyM0E5OEFBMDA5MjE1MkIgLyogTWVkaWFR
dWVyeU1hdGNoZXIuY3BwICovOyB9OworCQlEM0FBMTBGNDEyM0E5OEFBMDA5MjE1MkIgLyogTWVk
aWFRdWVyeU1hdGNoZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEQzQUExMEYyMTIzQTk4QUEwMDkyMTUyQiAvKiBNZWRpYVF1ZXJ5TWF0Y2hlci5oICov
OyB9OwogCQlEOEI2MTUyRjEwMzI0OTUxMDBDODU1NEEgLyogQ29va2llLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEOEI2MTUyRTEwMzI0OTUxMDBDODU1
NEEgLyogQ29va2llLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJREIyM0MyQ0IwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5k
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERCMjND
MkM5MEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAgKi87IH07CiAJ
CURCMjNDMkNDMEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREIyM0MyQ0EwQTUwOEQy
OTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmggKi87IH07CkBAIC0xMTMwNSw4ICsx
MTMxMywxOCBAQAogCQlEMjNDQTU1QzBBQjBFQUFFMDA1MTA4QTUgLyogSlNSYW5nZUV4Y2VwdGlv
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNSYW5nZUV4Y2VwdGlvbi5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMjNDQTU1RTBBQjBFQUI2MDA1MTA4QTUg
LyogSlNSYW5nZUV4Y2VwdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNSYW5nZUV4Y2VwdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUQyM0NBNTZCMEFCMEVCOEQwMDUxMDhBNSAvKiBSYW5nZUV4Y2VwdGlvbi5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmFuZ2VFeGNlcHRpb24uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRDM0MDYyOUExMjUzQkM4QzAwOUU0MjU5IC8qIE1lZGlhUXVlcnlMaXN0
TGlzdGVuZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFR
dWVyeUxpc3RMaXN0ZW5lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQzOUQw
MDZDMTFGOEUzMDgwMDYwNDFGMiAvKiBQb3B1cE1lbnVNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUG9wdXBNZW51TWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUQzOUQwMDlDMTFGOTA3RTYwMDYwNDFGMiAvKiBTZWFyY2hQb3B1cE1lbnVNYWMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VhcmNoUG9wdXBNZW51TWFjLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQzQTk0QTMxMTIyREFCQUMwMEEzN0JCQyAvKiBNZWRp
YVF1ZXJ5TGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRp
YVF1ZXJ5TGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQzQTk0QTMyMTIy
REFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBNZWRpYVF1ZXJ5TGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlEM0E5NEEzMzEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeUxpc3QuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IE1lZGlhUXVlcnlMaXN0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRDNBOTRBMzQxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFRdWVyeUxpc3RMaXN0
ZW5lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEM0E5NEEzNTEyMkRBQkFDMDBB
MzdCQkMgLyogTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUQzQTk0QTQyMTIyREM0MEYwMEEzN0JCQyAvKiBKU01lZGlhUXVlcnlMaXN0LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVkaWFRdWVyeUxpc3QuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEM0E5NEE0MzEyMkRDNDBGMDBBMzdCQkMgLyog
SlNNZWRpYVF1ZXJ5TGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU01l
ZGlhUXVlcnlMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQzQUExMEYxMTIz
QTk4QUEwMDkyMTUyQiAvKiBNZWRpYVF1ZXJ5TWF0Y2hlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVF1ZXJ5TWF0Y2hlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUQzQUExMEYyMTIzQTk4QUEwMDkyMTUyQiAvKiBNZWRpYVF1ZXJ5TWF0
Y2hlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVF1ZXJ5TWF0Y2hl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEOEI2MTUyRTEwMzI0OTUxMDBDODU1
NEEgLyogQ29va2llLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvb2tpZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQjIzQzJDOTBBNTA4RDI5MDAyNDg5RUIg
LyogSW5kZW50T3V0ZGVudENvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEluZGVudE91dGRlbnRDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJREIyM0MyQ0EwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5k
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmRlbnRPdXRkZW50Q29tbWFu
ZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTU2NjIsNiArMTU2ODAsOCBAQAog
CQkJCUJDNjg2QzdBMEUwQzMzMDEwMERFOEEwOCAvKiBKU0NTU1ZhcmlhYmxlc1J1bGUuY3BwICov
LAogCQkJCUJDNjg2QzdCMEUwQzMzMDEwMERFOEEwOCAvKiBKU0NTU1ZhcmlhYmxlc1J1bGUuaCAq
LywKIAkJCQlCQzNDMzlCNDBDMEQzRDhEMDA1RjREN0EgLyogSlNNZWRpYUxpc3QuY3BwICovLAor
CQkJCUQzQTk0QTQyMTIyREM0MEYwMEEzN0JCQyAvKiBKU01lZGlhUXVlcnlMaXN0LmNwcCAqLywK
KwkJCQlEM0E5NEE0MzEyMkRDNDBGMDBBMzdCQkMgLyogSlNNZWRpYVF1ZXJ5TGlzdC5oICovLAog
CQkJCUJDM0MzOUI1MEMwRDNEOEQwMDVGNEQ3QSAvKiBKU01lZGlhTGlzdC5oICovLAogCQkJCUJD
RkUyRjBGMEMxQjU4MzcwMDIwMjM1RiAvKiBKU1JlY3QuY3BwICovLAogCQkJCUJDRkUyRjEwMEMx
QjU4MzcwMDIwMjM1RiAvKiBKU1JlY3QuaCAqLywKQEAgLTE3NjU0LDYgKzE3Njc0LDE0IEBACiAJ
CQkJNEUxOTU5MjYwQTM5REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnlFdmFsdWF0b3IuaCAqLywK
IAkJCQk0RTE5NTkyNzBBMzlEQUNDMDAyMjBGRTUgLyogTWVkaWFRdWVyeUV4cC5jcHAgKi8sCiAJ
CQkJNEUxOTU5MjgwQTM5REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnlFeHAuaCAqLywKKwkJCQlE
M0E5NEEzMTEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeUxpc3QuY3BwICovLAorCQkJCUQz
QTk0QTMyMTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdC5oICovLAorCQkJCUQzQTk0
QTMzMTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdC5pZGwgKi8sCisJCQkJRDNBOTRB
MzQxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCAqLywKKwkJCQlE
MzQwNjI5QTEyNTNCQzhDMDA5RTQyNTkgLyogTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgKi8s
CisJCQkJRDNBOTRBMzUxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIu
aWRsICovLAorCQkJCUQzQUExMEYxMTIzQTk4QUEwMDkyMTUyQiAvKiBNZWRpYVF1ZXJ5TWF0Y2hl
ci5jcHAgKi8sCisJCQkJRDNBQTEwRjIxMjNBOThBQTAwOTIxNTJCIC8qIE1lZGlhUXVlcnlNYXRj
aGVyLmggKi8sCiAJCQkJQTgwRTZDRDEwQTE5ODlDQTAwN0ZCOEM1IC8qIFBhaXIuaCAqLywKIAkJ
CQk5M0NBNEM5RjA5REY5M0ZBMDBERjg2NzcgLyogcXVpcmtzLmNzcyAqLywKIAkJCQlCQzQzNjhF
NzBDMjI2RTMyMDA1RUZCNUYgLyogUmVjdC5oICovLApAQCAtMjExNDEsNiArMjExNjksMTAgQEAK
IAkJCQkwODhBMEUwQzEyNkVGMURCMDA5NzhGN0EgLyogU1ZHUHJvcGVydHlUcmFpdHMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTA4OTAyMUE5MTI2RUY1REUwMDkyRDVFQSAvKiBTVkdBbmltYXRlZExl
bmd0aC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg5MDIxQUQxMjZFRjVFOTAwOTJENUVBIC8qIFNW
R0FuaW1hdGVkTGVuZ3RoTGlzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRDNBOTRBMzkxMjJEQUJB
QzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQlEM0E5NEEz
QjEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJRDNBOTRBNDcxMjJEQzQwRjAwQTM3QkJDIC8qIEpTTWVkaWFRdWVyeUxpc3QuaCBp
biBIZWFkZXJzICovLAorCQkJCUQzQUExMEY0MTIzQTk4QUEwMDkyMTUyQiAvKiBNZWRpYVF1ZXJ5
TWF0Y2hlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQ
b3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yMzY5Miw2ICsyMzcyNCwxMCBAQAogCQkJCTk3
MjhDMzEzMTI2OEU0MzkwMDQxRTg5QiAvKiBNYXJrdXBBY2N1bXVsYXRvci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlFMTg3NzJGMTEyNkUyNjI5MDAzREQ1ODYgLyogTGFuZ3VhZ2UuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJN0ExRjJCNTIxMjZDNjFCMjAwMDZBN0U2IC8qIEluc3BlY3RvckNsaWVu
dC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlEM0E5NEEzODEyMkRBQkFDMDBBMzdCQkMgLyogTWVk
aWFRdWVyeUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRDNBOTRBNDYxMjJEQzQwRjAwQTM3
QkJDIC8qIEpTTWVkaWFRdWVyeUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRDNBQTEwRjMx
MjNBOThBQTAwOTIxNTJCIC8qIE1lZGlhUXVlcnlNYXRjaGVyLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCUQzNDA2MjlCMTI1M0JDOEMwMDlFNDI1OSAvKiBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nl
c3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dO
VW1ha2VmaWxlLmFtIGIvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dOVW1ha2VmaWxlLmFtCmlu
ZGV4IGQ4MDhlMTguLjFjNmI4ZjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvZ29iamVj
dC9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvR05VbWFrZWZp
bGUuYW0KQEAgLTE5NCw2ICsxOTQsOCBAQCB3ZWJraXRndGtfZ2RvbV9idWlsdF9zb3VyY2VzICs9
IFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NTWVkaWFFcnJvclByaXZhdGUuaCBc
CiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTU1lZGlhTGlzdC5jcHAgXAogCURlcml2
ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01NZWRpYUxpc3RQcml2YXRlLmggXAorCURlcml2ZWRT
b3VyY2VzL3dlYmtpdC9XZWJLaXRET01NZWRpYVF1ZXJ5TGlzdC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL3dlYmtpdC9XZWJLaXRET01NZWRpYVF1ZXJ5TGlzdFByaXZhdGUuaCBcCiAJRGVyaXZlZFNv
dXJjZXMvd2Via2l0L1dlYktpdERPTU1lbW9yeUluZm8uY3BwIFwKIAlEZXJpdmVkU291cmNlcy93
ZWJraXQvV2ViS2l0RE9NTWVtb3J5SW5mb1ByaXZhdGUuaCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Vi
a2l0L1dlYktpdERPTU1lc3NhZ2VQb3J0LmNwcCBcCkBAIC0yNTIsNiArMjU0LDcgQEAgd2Via2l0
Z3RrX2J1aWx0X2hfYXBpICs9IFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NQ1NT
U3R5bGVTaGVldC5oIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NQ1NTVmFsdWUu
aCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTU1lZGlhTGlzdC5oIFwKKwlEZXJp
dmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NTWVkaWFRdWVyeUxpc3QuaCBcCiAJRGVyaXZlZFNv
dXJjZXMvd2Via2l0L1dlYktpdERPTVN0eWxlTWVkaWEuaCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Vi
a2l0L1dlYktpdERPTVN0eWxlU2hlZXQuaCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktp
dERPTVN0eWxlU2hlZXRMaXN0LmggXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
Y3JpcHRWYWx1ZS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFZhbHVlLmNwcAppbmRl
eCBhNThlMGM3Li5lNzhlMDNhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Njcmlw
dFZhbHVlLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFZhbHVlLmNwcApAQCAt
ODQsNiArODQsMTMgQEAgYm9vbCBTY3JpcHRWYWx1ZTo6aXNPYmplY3QoKSBjb25zdAogICAgIHJl
dHVybiBtX3ZhbHVlLmdldCgpLmlzT2JqZWN0KCk7CiB9CiAKK2Jvb2wgU2NyaXB0VmFsdWU6Omlz
RnVuY3Rpb24oKSBjb25zdAoreworICAgIENhbGxEYXRhIGNhbGxEYXRhOworICAgIENhbGxUeXBl
IGNhbGxUeXBlID0gZ2V0Q2FsbERhdGEobV92YWx1ZSwgY2FsbERhdGEpOworICAgIHJldHVybiBj
YWxsVHlwZSAhPSBDYWxsVHlwZU5vbmU7Cit9CisKIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPiBTY3JpcHRWYWx1ZTo6c2VyaWFsaXplKFNjcmlwdFN0YXRlKiBzY3JpcHRTdGF0ZSkK
IHsKICAgICByZXR1cm4gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUoc2NyaXB0U3RhdGUs
IGpzVmFsdWUoKSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFZhbHVl
LmggYi9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFZhbHVlLmgKaW5kZXggYjE3MGZjZi4uZTI0
Zjk2OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRWYWx1ZS5oCisrKyBi
L1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0VmFsdWUuaApAQCAtNTcsNiArNTcsOSBAQCBwdWJs
aWM6CiAgICAgYm9vbCBpc09iamVjdCgpIGNvbnN0OwogICAgIGJvb2wgaGFzTm9WYWx1ZSgpIGNv
bnN0IHsgcmV0dXJuIG1fdmFsdWUgPT0gSlNDOjpKU1ZhbHVlKCk7IH0KIAorICAgIGJvb2wgaXNG
dW5jdGlvbigpIGNvbnN0OworICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBTY3JpcHRWYWx1ZSYg
b3RoZXIpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWUgPT0gb3RoZXIubV92YWx1ZTsgfQorCiAgICAg
UGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHNlcmlhbGl6ZShTY3JpcHRTdGF0ZSop
OwogICAgIHN0YXRpYyBTY3JpcHRWYWx1ZSBkZXNlcmlhbGl6ZShTY3JpcHRTdGF0ZSosIFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZSopOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0gYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckdPYmplY3QucG0KaW5kZXggNmExZDExNS4uZDg2YTBjNCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCisrKyBiL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQpAQCAtMjEwLDgg
KzIxMCwxMSBAQCBzdWIgU2tpcEZ1bmN0aW9uIHsKIAogICAgICMgU2tpcCBmdW5jdGlvbnMgdGhh
dCBoYXZlIFsiQ2FsbGJhY2siXSBwYXJhbWV0ZXJzLCBiZWNhdXNlIHRoaXMKICAgICAjIGNvZGUg
Z2VuZXJhdG9yIGRvZXNuJ3Qga25vdyBob3cgdG8gYXV0by1nZW5lcmF0ZSBjYWxsYmFja3MuCisg
ICAgIyBTa2lwIGZ1bmN0aW9ucyB0aGF0IGhhdmUgIk1lZGlhUXVlcnlMaXN0TGlzdGVuZXIiIHBh
cmFtZXRlcnMsIGJlY2F1c2UgdGhpcworICAgICMgY29kZSBnZW5lcmF0b3IgZG9lc24ndCBrbm93
IGhvdyB0byBhdXRvLWdlbmVyYXRlIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuCiAgICAgZm9yZWFj
aCBteSAkcGFyYW0gKEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSkgewotICAgICAgICBpZiAoJHBh
cmFtLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2FsbGJhY2sifSkgeworICAgICAgICBpZiAoJHBh
cmFtLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2FsbGJhY2sifSB8fAorICAgICAgICAgICAgJHBh
cmFtLT50eXBlIGVxICJNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIikgewogICAgICAgICAgICAgcmV0
dXJuIDE7CiAgICAgICAgIH0KICAgICB9CkBAIC02MDAsNyArNjAzLDggQEAgRU9GCiAgICAgcHVz
aChAdHh0U2V0UHJvcHMsICR0eHRTZXRQcm9wcyk7CiAKICAgICBmb3JlYWNoIG15ICRhdHRyaWJ1
dGUgKEByZWFkYWJsZVByb3BlcnRpZXMpIHsKLSAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25h
dHVyZS0+dHlwZSBuZSAiRXZlbnRMaXN0ZW5lciIpIHsKKyAgICAgICAgaWYgKCRhdHRyaWJ1dGUt
PnNpZ25hdHVyZS0+dHlwZSBuZSAiRXZlbnRMaXN0ZW5lciIgJiYKKyAgICAgICAgICAgICRhdHRy
aWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSBuZSAiTWVkaWFRdWVyeUxpc3RMaXN0ZW5lciIpIHsKICAg
ICAgICAgICAgIEdlbmVyYXRlUHJvcGVydHkoJGF0dHJpYnV0ZSwgJGludGVyZmFjZU5hbWUsIFxA
d3JpdGVhYmxlUHJvcGVydGllcyk7CiAgICAgICAgIH0KICAgICB9CkBAIC03NjcsNiArNzcxLDcg
QEAgc3ViIGdldEluY2x1ZGVIZWFkZXIgewogICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAidW5z
aWduZWQgc2hvcnQiOwogICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAiRE9NVGltZVN0YW1wIjsK
ICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgIkV2ZW50TGlzdGVuZXIiOworICAgIHJldHVybiAi
IiBpZiAkdHlwZSBlcSAiTWVkaWFRdWVyeUxpc3RMaXN0ZW5lciI7CiAgICAgcmV0dXJuICIiIGlm
ICR0eXBlIGVxICJ1bnNpZ25lZCBjaGFyIjsKICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgIkRP
TVN0cmluZyI7CiAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJmbG9hdCI7CkBAIC04MDYsNiAr
ODExLDEwIEBAIHN1YiBHZW5lcmF0ZUZ1bmN0aW9uIHsKIAogICAgIG15ICRkZWNhbWVsaXplID0g
Rml4VXBEZWNhbWVsaXplZE5hbWUoZGVjYW1lbGl6ZSgkaW50ZXJmYWNlTmFtZSkpOwogCisgICAg
aWYgKCRvYmplY3QgZXEgIk1lZGlhUXVlcnlMaXN0TGlzdGVuZXIiKSB7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKICAgICBpZiAoU2tpcEZ1bmN0aW9uKCRmdW5jdGlvbiwgJGRlY2FtZWxpemUs
ICRwcmVmaXgpKSB7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC04MjcsNyArODM2LDcgQEAg
c3ViIEdlbmVyYXRlRnVuY3Rpb24gewogCiAgICAgZm9yZWFjaCBteSAkcGFyYW0gKEB7JGZ1bmN0
aW9uLT5wYXJhbWV0ZXJzfSkgewogICAgICAgICBteSAkcGFyYW1JRExUeXBlID0gJHBhcmFtLT50
eXBlOwotICAgICAgICBpZiAoJHBhcmFtSURMVHlwZSBlcSAiRXZlbnRMaXN0ZW5lciIpIHsKKyAg
ICAgICAgaWYgKCRwYXJhbUlETFR5cGUgZXEgIkV2ZW50TGlzdGVuZXIiIHx8ICRwYXJhbUlETFR5
cGUgZXEgIk1lZGlhUXVlcnlMaXN0TGlzdGVuZXIiKSB7CiAgICAgICAgICAgICBwdXNoKEBoQm9k
eSwgIlxuLyogVE9ETzogZXZlbnQgZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOwog
ICAgICAgICAgICAgcHVzaChAY0JvZHksICJcbi8qIFRPRE86IGV2ZW50IGZ1bmN0aW9uICR7ZnVu
Y3Rpb25OYW1lfSAqL1xuXG4iKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTEwODAsNyArMTA4
OSw5IEBAIHN1YiBHZW5lcmF0ZUZ1bmN0aW9ucyB7CiAKICAgICBUT1A6CiAgICAgZm9yZWFjaCBt
eSAkYXR0cmlidXRlIChAeyRkYXRhTm9kZS0+YXR0cmlidXRlc30pIHsKLSAgICAgICAgaWYgKFNr
aXBBdHRyaWJ1dGUoJGF0dHJpYnV0ZSkgfHwgJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlIGVx
ICJFdmVudExpc3RlbmVyIikgeworICAgICAgICBpZiAoU2tpcEF0dHJpYnV0ZSgkYXR0cmlidXRl
KSB8fAorICAgICAgICAgICAgJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlIGVxICJFdmVudExp
c3RlbmVyIiB8fAorICAgICAgICAgICAgJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlIGVxICJN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIikgewogICAgICAgICAgICAgbmV4dCBUT1A7CiAgICAgICAg
IH0KICAgICAgICAgCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bQppbmRleCAwYjU2ZjEzLi5mMDE0NWVhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG0KQEAgLTYsNiArNiw3IEBACiAjIENvcHlyaWdodCAoQykgMjAwNiwg
MjAwNywgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAj
IENvcHlyaWdodCAoQykgMjAwOSBDYW1lcm9uIE1jQ29ybWFjayA8Y2FtQG1jYy5pZC5hdT4KICMg
Q29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDEwLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAjCiAjIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTI4Miw2ICsyODMsMTAg
QEAgc3ViIEFkZEluY2x1ZGVzRm9yVHlwZQogICAgIGlmICgkdHlwZSBlcSAiRG9jdW1lbnQiKSB7
CiAgICAgICAgICRpbXBsSW5jbHVkZXN7Ik5vZGVGaWx0ZXIuaCJ9ID0gMTsKICAgICB9CisKKyAg
ICBpZiAoJHR5cGUgZXEgIk1lZGlhUXVlcnlMaXN0TGlzdGVuZXIiKSB7CisgICAgICAgICRpbXBs
SW5jbHVkZXN7Ik1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCJ9ID0gMTsKKyAgICB9CiB9CiAKIHN1
YiBBZGRJbmNsdWRlc0ZvclNWR0FuaW1hdGVkVHlwZQpAQCAtMjQzMCw2ICsyNDM1LDcgQEAgbXkg
JW5hdGl2ZVR5cGUgPSAoCiAgICAgInVuc2lnbmVkIHNob3J0IiA9PiAidW5zaWduZWQgc2hvcnQi
LAogICAgICJsb25nIGxvbmciID0+ICJsb25nIGxvbmciLAogICAgICJ1bnNpZ25lZCBsb25nIGxv
bmciID0+ICJ1bnNpZ25lZCBsb25nIGxvbmciLAorICAgICJNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
IiA9PiAiUmVmUHRyPE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+IgogKTsKIAogc3ViIEdldE5hdGl2
ZVR5cGUKQEAgLTI0NzYsNiArMjQ4MiwxMSBAQCBzdWIgSlNWYWx1ZVRvTmF0aXZlCiAgICAgICAg
IHJldHVybiAiJHZhbHVlIjsKICAgICB9CiAKKyAgICBpZiAoJHR5cGUgZXEgIk1lZGlhUXVlcnlM
aXN0TGlzdGVuZXIiKSB7CisgICAgICAgICRpbXBsSW5jbHVkZXN7Ik1lZGlhUXVlcnlMaXN0TGlz
dGVuZXIuaCJ9ID0gMTsKKyAgICAgICAgcmV0dXJuICJNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjpj
cmVhdGUoIiAuICR2YWx1ZSAuIikiOworICAgIH0KKwogICAgIGlmICgkdHlwZSBlcSAiU2VyaWFs
aXplZFNjcmlwdFZhbHVlIiBvciAkdHlwZSBlcSAiYW55IikgewogICAgICAgICAkaW1wbEluY2x1
ZGVzeyJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCJ9ID0gMTsKICAgICAgICAgcmV0dXJuICJTZXJp
YWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShleGVjLCAkdmFsdWUpIjsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0gYi9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCmluZGV4IDc1MWUzNTAuLjEzODJhZDcgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KKysr
IGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQpAQCAtNiw2ICs2
LDcgQEAKICMgQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCiAjIENvcHly
aWdodCAoQykgMjAwNywgMjAwOCwgMjAwOSBHb29nbGUgSW5jLgogIyBDb3B5cmlnaHQgKEMpIDIw
MDkgQ2FtZXJvbiBNY0Nvcm1hY2sgPGNhbUBtY2MuaWQuYXU+CisjIENvcHlyaWdodCAoQykgMjAx
MCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICMKICMgVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgogIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYwpAQCAtMjkyOCw2ICsyOTI5LDggQEAgc3ViIEdldE5hdGl2ZVR5cGUKIAogICAgIHJl
dHVybiAiUmVmUHRyPCR7dHlwZX0+IiBpZiBJc1JlZlB0clR5cGUoJHR5cGUpIGFuZCBub3QgJGlz
UGFyYW1ldGVyOwogCisgICAgcmV0dXJuICJSZWZQdHI8TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4i
IGlmICR0eXBlIGVxICJNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIjsKKwogICAgICMgRGVmYXVsdCwg
YXNzdW1lIG5hdGl2ZSB0eXBlIGlzIGEgcG9pbnRlciB3aXRoIHNhbWUgdHlwZSBuYW1lIGFzIGlk
bCB0eXBlCiAgICAgcmV0dXJuICIke3R5cGV9KiI7CiB9CkBAIC0zMDIzLDYgKzMwMjYsMTEgQEAg
c3ViIEpTVmFsdWVUb05hdGl2ZQogICAgICAgICAkaW1wbEluY2x1ZGVzeyJGbG9hdFJlY3QuaCJ9
ID0gMTsKICAgICB9CiAKKyAgICBpZiAoJHR5cGUgZXEgIk1lZGlhUXVlcnlMaXN0TGlzdGVuZXIi
KSB7CisgICAgICAgICRpbXBsSW5jbHVkZXN7Ik1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCJ9ID0g
MTsKKyAgICAgICAgcmV0dXJuICJNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjpjcmVhdGUoIiAuICR2
YWx1ZSAuICIpIjsKKyAgICB9CisKICAgICBpZiAoJHR5cGUgZXEgIlNWR1BvaW50IikgewogICAg
ICAgICAkaW1wbEluY2x1ZGVzeyJGbG9hdFBvaW50LmgifSA9IDE7CiAgICAgfQpAQCAtMzE3MSw3
ICszMTc5LDggQEAgbXkgJW5vbl93cmFwcGVyX3R5cGVzID0gKAogICAgICdOb2RlRmlsdGVyJyA9
PiAxLAogICAgICdFdmVudExpc3RlbmVyJyA9PiAxLAogICAgICdJREJLZXknID0+IDEsCi0gICAg
J0RhdGUnID0+IDEKKyAgICAnRGF0ZScgPT4gMSwKKyAgICAnTWVkaWFRdWVyeUxpc3RMaXN0ZW5l
cicgPT4gMQogKTsKIAogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9HT2JqZWN0L1dlYktpdERPTVRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcCBiL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXIuY3BwCmluZGV4IGFmOTMwMGQuLmY1ZGVkNzkgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXIuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmpl
Y3QvV2ViS2l0RE9NVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCkBAIC0yOCw4ICsyOCw2
IEBACiAjaW5jbHVkZSAiVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCIKICNpbmNsdWRlICJX
ZWJLaXRET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiZ29iamVjdC9Db252ZXJ0VG9VVEY4U3RyaW5n
LmgiCi0jaW5jbHVkZSAid2Via2l0L1dlYktpdERPTU1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCIK
LSNpbmNsdWRlICJ3ZWJraXQvV2ViS2l0RE9NTWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByaXZhdGUu
aCIKICNpbmNsdWRlICJ3ZWJraXQvV2ViS2l0RE9NVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIu
aCIKICNpbmNsdWRlICJ3ZWJraXQvV2ViS2l0RE9NVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQ
cml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0bWFyc2hhbC5oIgpAQCAtNDksMjEgKzQ3LDYgQEAg
Z3BvaW50ZXIga2l0KFdlYkNvcmU6OlRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKiBvYmopCiAg
ICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQgLy8KIAotdm9pZAotd2Via2l0X2RvbV90ZXN0X21l
ZGlhX3F1ZXJ5X2xpc3RfbGlzdGVuZXJfbWV0aG9kKFdlYktpdERPTVRlc3RNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyKiBzZWxmLCBXZWJLaXRET01NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKiBsaXN0ZW5l
cikKLXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgZ19y
ZXR1cm5faWZfZmFpbChzZWxmKTsKLSAgICBXZWJDb3JlOjpUZXN0TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lciAqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgZ19yZXR1cm5faWZfZmFpbChs
aXN0ZW5lcik7Ci0gICAgV2ViQ29yZTo6TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciAqIGNvbnZlcnRl
ZF9saXN0ZW5lciA9IE5VTEw7Ci0gICAgaWYgKGxpc3RlbmVyICE9IE5VTEwpIHsKLSAgICAgICAg
Y29udmVydGVkX2xpc3RlbmVyID0gV2ViS2l0Ojpjb3JlKGxpc3RlbmVyKTsKLSAgICAgICAgZ19y
ZXR1cm5faWZfZmFpbChjb252ZXJ0ZWRfbGlzdGVuZXIpOwotICAgIH0KLSAgICBpdGVtLT5tZXRo
b2QoY29udmVydGVkX2xpc3RlbmVyKTsKLX0KLQogCiBHX0RFRklORV9UWVBFKFdlYktpdERPTVRl
c3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLCB3ZWJraXRfZG9tX3Rlc3RfbWVkaWFfcXVlcnlfbGlz
dF9saXN0ZW5lciwgV0VCS0lUX1RZUEVfRE9NX09CSkVDVCkKIApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0TWVkaWFRdWVyeUxp
c3RMaXN0ZW5lci5oIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJL
aXRET01UZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oCmluZGV4IDk0ZTgyNWUuLjYxMjQzOWIg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0
RE9NVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgK
QEAgLTQ2LDkgKzQ2LDYgQEAgc3RydWN0IF9XZWJLaXRET01UZXN0TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lckNsYXNzIHsKIFdFQktJVF9BUEkgR1R5cGUKIHdlYmtpdF9kb21fdGVzdF9tZWRpYV9xdWVy
eV9saXN0X2xpc3RlbmVyX2dldF90eXBlICh2b2lkKTsKIAotV0VCS0lUX0FQSSB2b2lkCi13ZWJr
aXRfZG9tX3Rlc3RfbWVkaWFfcXVlcnlfbGlzdF9saXN0ZW5lcl9tZXRob2QoV2ViS2l0RE9NVGVz
dE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqIHNlbGYsIFdlYktpdERPTU1lZGlhUXVlcnlMaXN0TGlz
dGVuZXIqIGxpc3RlbmVyKTsKLQogR19FTkRfREVDTFMKIAogI2VuZGlmIC8qIFdlYktpdERPTVRl
c3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyX2ggKi8KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwIGIvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5l
ci5jcHAKaW5kZXggY2RlOTY3Mi4uZTUwNWVkMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKKysrIGIv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lci5jcHAKQEAgLTIzLDcgKzIzLDcgQEAKIAogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIK
ICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKLSNpbmNsdWRlICJKU01lZGlhUXVlcnlMaXN0TGlz
dGVuZXIuaCIKKyNpbmNsdWRlICJNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgiCiAjaW5jbHVkZSAi
VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCIKICNpbmNsdWRlIDxydW50aW1lL0Vycm9yLmg+
CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgpAQCAtMTc0LDcgKzE3NCw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByb3RvdHlwZUZ1
bmN0aW9uTWV0aG9kCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogICAg
IEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxK
U1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKj4oYXNPYmplY3QodGhpc1ZhbHVlKSk7CiAgICAg
VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqIGltcCA9IHN0YXRpY19jYXN0PFRlc3RNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKLSAgICBNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyKiBsaXN0ZW5lciA9IHRvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lcihleGVjLT5hcmd1
bWVudCgwKSk7CisgICAgUmVmUHRyPE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+IGxpc3RlbmVyID0g
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6Y3JlYXRlKGV4ZWMtPmFyZ3VtZW50KDApKTsKICAgICBp
ZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1Y4L1Y4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwIGIvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKaW5kZXgg
MWY3OGYzOS4uZjFjNGUyYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVjgvVjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKKysrIGIvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKQEAg
LTIyLDEzICsyMiwxMyBAQAogI2luY2x1ZGUgIlY4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIu
aCIKIAogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyLmgiCiAjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgogI2luY2x1
ZGUgIlY4QmluZGluZy5oIgogI2luY2x1ZGUgIlY4QmluZGluZ01hY3Jvcy5oIgogI2luY2x1ZGUg
IlY4QmluZGluZ1N0YXRlLmgiCiAjaW5jbHVkZSAiVjhET01XcmFwcGVyLmgiCiAjaW5jbHVkZSAi
VjhJc29sYXRlZENvbnRleHQuaCIKLSNpbmNsdWRlICJWOE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIu
aCIKICNpbmNsdWRlICJWOFByb3h5LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQzLDI4
ICs0MywyNSBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IG1ldGhvZENhbGxiYWNrKGNv
bnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKCJET00uVGVzdE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXIubWV0aG9kIik7CiAgICAgVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXIqIGltcCA9IFY4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OnRvTmF0aXZlKGFyZ3MuSG9s
ZGVyKCkpOwotICAgIEVYQ0VQVElPTl9CTE9DSyhNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKiwgbGlz
dGVuZXIsIFY4TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6SGFzSW5zdGFuY2UoYXJnc1swXSkgPyBW
OE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46
OkNhc3QoYXJnc1swXSkpIDogMCk7CisgICAgRVhDRVBUSU9OX0JMT0NLKFJlZlB0cjxNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyPiwgbGlzdGVuZXIsIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OmNyZWF0
ZShhcmdzWzBdKSk7CiAgICAgaW1wLT5tZXRob2QobGlzdGVuZXIpOwogICAgIHJldHVybiB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4oKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgVGVzdE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXJJbnRlcm5hbAogCitzdGF0aWMgY29uc3QgQmF0Y2hlZENhbGxiYWNrIFRlc3RN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ2FsbGJhY2tzW10gPSB7CisgICAgeyJtZXRob2QiLCBUZXN0
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckludGVybmFsOjptZXRob2RDYWxsYmFja30sCit9Owogc3Rh
dGljIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBDb25maWd1cmVWOFRlc3RN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyVGVtcGxhdGUodjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9u
VGVtcGxhdGU+IGRlc2MpCiB7CiAgICAgdjg6OkxvY2FsPHY4OjpTaWduYXR1cmU+IGRlZmF1bHRT
aWduYXR1cmUgPSBjb25maWd1cmVUZW1wbGF0ZShkZXNjLCAiVGVzdE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXIiLCB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4oKSwgVjhUZXN0TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lcjo6aW50ZXJuYWxGaWVsZENvdW50LAogICAgICAgICAwLCAwLAot
ICAgICAgICAwLCAwKTsKKyAgICAgICAgVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJDYWxsYmFj
a3MsIHNpemVvZihUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNhbGxiYWNrcykgLyBzaXplb2Yo
KlRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ2FsbGJhY2tzKSk7CiAgICAgdjg6OkxvY2FsPHY4
OjpPYmplY3RUZW1wbGF0ZT4gaW5zdGFuY2UgPSBkZXNjLT5JbnN0YW5jZVRlbXBsYXRlKCk7CiAg
ICAgdjg6OkxvY2FsPHY4OjpPYmplY3RUZW1wbGF0ZT4gcHJvdG8gPSBkZXNjLT5Qcm90b3R5cGVU
ZW1wbGF0ZSgpOwogICAgIAogCi0gICAgLy8gQ3VzdG9tIFNpZ25hdHVyZSAnbWV0aG9kJwotICAg
IGNvbnN0IGludCBtZXRob2RBcmdjID0gMTsKLSAgICB2ODo6SGFuZGxlPHY4OjpGdW5jdGlvblRl
bXBsYXRlPiBtZXRob2RBcmd2W21ldGhvZEFyZ2NdID0geyBWOE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXI6OkdldFJhd1RlbXBsYXRlKCkgfTsKLSAgICB2ODo6SGFuZGxlPHY4OjpTaWduYXR1cmU+IG1l
dGhvZFNpZ25hdHVyZSA9IHY4OjpTaWduYXR1cmU6Ok5ldyhkZXNjLCBtZXRob2RBcmdjLCBtZXRo
b2RBcmd2KTsKLSAgICBwcm90by0+U2V0KHY4OjpTdHJpbmc6Ok5ldygibWV0aG9kIiksIHY4OjpG
dW5jdGlvblRlbXBsYXRlOjpOZXcoVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJJbnRlcm5hbDo6
bWV0aG9kQ2FsbGJhY2ssIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpLCBtZXRob2RTaWduYXR1cmUp
KTsKLQogICAgIC8vIEN1c3RvbSB0b1N0cmluZyB0ZW1wbGF0ZQogICAgIGRlc2MtPlNldChnZXRU
b1N0cmluZ05hbWUoKSwgZ2V0VG9TdHJpbmdUZW1wbGF0ZSgpKTsKICAgICByZXR1cm4gZGVzYzsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0VmFsdWUuaCBiL1dlYkNvcmUv
YmluZGluZ3MvdjgvU2NyaXB0VmFsdWUuaAppbmRleCAxNzQzZGEwLi5kNDEyOTAxIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdFZhbHVlLmgKKysrIGIvV2ViQ29yZS9iaW5k
aW5ncy92OC9TY3JpcHRWYWx1ZS5oCkBAIC0xMDAsNiArMTAwLDExIEBAIHB1YmxpYzoKICAgICAg
ICAgcmV0dXJuIG1fdmFsdWUgPT0gdmFsdWUubV92YWx1ZTsKICAgICB9CiAKKyAgICBib29sIGlz
RnVuY3Rpb24oKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fdmFsdWUtPklzRnVuY3Rp
b24oKTsKKyAgICB9CisKICAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgU2NyaXB0VmFsdWUgdmFs
dWUpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gIW9wZXJhdG9yPT0odmFsdWUpOwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3QuY3BwIGIvV2ViQ29yZS9jc3MvTWVk
aWFRdWVyeUxpc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJlNTVh
OTYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdC5jcHAKQEAg
LTAsMCArMSwxMDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIk1lZGlhUXVlcnlMaXN0LmgiCisKKyNpbmNsdWRlICJNZWRpYUxpc3QuaCIK
KyNpbmNsdWRlICJNZWRpYVF1ZXJ5RXZhbHVhdG9yLmgiCisjaW5jbHVkZSAiTWVkaWFRdWVyeUxp
c3RMaXN0ZW5lci5oIgorI2luY2x1ZGUgIk1lZGlhUXVlcnlNYXRjaGVyLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdD4gTWVkaWFRdWVyeUxpc3Q6
OmNyZWF0ZShQYXNzUmVmUHRyPE1lZGlhUXVlcnlNYXRjaGVyPiB2ZWN0b3IsIFBhc3NSZWZQdHI8
TWVkaWFMaXN0PiBtZWRpYSwgYm9vbCBtYXRjaGVzKQoreworICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgTWVkaWFRdWVyeUxpc3QodmVjdG9yLCBtZWRpYSwgbWF0Y2hlcykpOworfQorCitNZWRpYVF1
ZXJ5TGlzdDo6TWVkaWFRdWVyeUxpc3QoUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TWF0Y2hlcj4gdmVj
dG9yLCBQYXNzUmVmUHRyPE1lZGlhTGlzdD4gbWVkaWEsIGJvb2wgbWF0Y2hlcykKKyAgICA6IG1f
bWF0Y2hlcih2ZWN0b3IpCisgICAgLCBtX21lZGlhKG1lZGlhKQorICAgICwgbV9ldmFsdWF0aW9u
Um91bmQobV9tYXRjaGVyLT5ldmFsdWF0aW9uUm91bmQoKSkKKyAgICAsIG1fY2hhbmdlUm91bmQo
bV9ldmFsdWF0aW9uUm91bmQgLSAxKSAvLyBtX2V2YWx1YXRpb25Sb3VuZCBhbmQgbV9jaGFuZ2VS
b3VuZCBpbml0aWFsIHZhbHVlcyBtdXN0IGJlIGRpZmZlcmVudC4KKyAgICAsIG1fbWF0Y2hlcyht
YXRjaGVzKQoreworfQorCitNZWRpYVF1ZXJ5TGlzdDo6fk1lZGlhUXVlcnlMaXN0KCkKK3sKK30K
KworU3RyaW5nIE1lZGlhUXVlcnlMaXN0OjptZWRpYSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
bWVkaWEtPm1lZGlhVGV4dCgpOworfQorCit2b2lkIE1lZGlhUXVlcnlMaXN0OjphZGRMaXN0ZW5l
cihQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+IGxpc3RlbmVyKQoreworICAgIGlm
ICghbGlzdGVuZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1fbWF0Y2hlci0+YWRkTGlzdGVu
ZXIobGlzdGVuZXIsIHRoaXMpOworfQorCit2b2lkIE1lZGlhUXVlcnlMaXN0OjpyZW1vdmVMaXN0
ZW5lcihQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+IGxpc3RlbmVyKQoreworICAg
IGlmICghbGlzdGVuZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1fbWF0Y2hlci0+cmVtb3Zl
TGlzdGVuZXIobGlzdGVuZXIsIHRoaXMpOworfQorCit2b2lkIE1lZGlhUXVlcnlMaXN0OjpldmFs
dWF0ZShNZWRpYVF1ZXJ5RXZhbHVhdG9yKiBldmFsdWF0b3IsIGJvb2wmIG5vdGlmaWNhdGlvbk5l
ZWRlZCkKK3sKKyAgICBpZiAobV9ldmFsdWF0aW9uUm91bmQgIT0gbV9tYXRjaGVyLT5ldmFsdWF0
aW9uUm91bmQoKSAmJiBldmFsdWF0b3IpCisgICAgICAgIHNldE1hdGNoZXMoZXZhbHVhdG9yLT5l
dmFsKG1fbWVkaWEuZ2V0KCkpKTsKKyAgICBub3RpZmljYXRpb25OZWVkZWQgPSBtX2NoYW5nZVJv
dW5kID09IG1fbWF0Y2hlci0+ZXZhbHVhdGlvblJvdW5kKCk7Cit9CisKK3ZvaWQgTWVkaWFRdWVy
eUxpc3Q6OnNldE1hdGNoZXMoYm9vbCBuZXdWYWx1ZSkKK3sKKyAgICBtX2V2YWx1YXRpb25Sb3Vu
ZCA9IG1fbWF0Y2hlci0+ZXZhbHVhdGlvblJvdW5kKCk7CisKKyAgICBpZiAobmV3VmFsdWUgPT0g
bV9tYXRjaGVzKQorICAgICAgICByZXR1cm47CisKKyAgICBtX21hdGNoZXMgPSBuZXdWYWx1ZTsK
KyAgICBtX2NoYW5nZVJvdW5kID0gbV9ldmFsdWF0aW9uUm91bmQ7Cit9CisKK2Jvb2wgTWVkaWFR
dWVyeUxpc3Q6Om1hdGNoZXMoKQoreworICAgIGlmIChtX2V2YWx1YXRpb25Sb3VuZCAhPSBtX21h
dGNoZXItPmV2YWx1YXRpb25Sb3VuZCgpKQorICAgICAgICBzZXRNYXRjaGVzKG1fbWF0Y2hlci0+
ZXZhbHVhdGUobV9tZWRpYS5nZXQoKSkpOworICAgIHJldHVybiBtX21hdGNoZXM7Cit9CisKK30K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0LmggYi9XZWJDb3JlL2Nzcy9N
ZWRpYVF1ZXJ5TGlzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc4YjM2
MjAKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdC5oCkBAIC0w
LDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24g
YW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNZWRpYVF1ZXJ5TGlz
dF9oCisjZGVmaW5lIE1lZGlhUXVlcnlMaXN0X2gKKworI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRy
Lmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgTWVkaWFMaXN0OworY2xhc3MgTWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjsKK2NsYXNz
IE1lZGlhUXVlcnlFdmFsdWF0b3I7CitjbGFzcyBNZWRpYVF1ZXJ5TWF0Y2hlcjsKKworLy8gIE1l
ZGlhUXVlcnlMaXN0IGludGVyZmFjZSBpcyBzcGVjaWZpZWQgYXQgaHR0cDovL2Rldi53My5vcmcv
Y3Nzd2cvY3Nzb20tdmlldy8jdGhlLW1lZGlhcXVlcnlsaXN0LWludGVyZmFjZQorLy8gIFRoZSBv
YmplY3RzIG9mIHRoaXMgY2xhc3MgYXJlIHJldHVybmVkIGJ5IHdpbmRvdy5tYXRjaE1lZGlhLiBU
aGV5IG1heSBiZSB1c2VkIHRvCisvLyAgcmV0cmlldmUgdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhl
IGdpdmVuIG1lZGlhIHF1ZXJ5IGFuZCB0byBhZGQvcmVtb3ZlIGxpc3RlbmVycyB0aGF0CisvLyAg
d2lsbCBiZSBjYWxsZWQgd2hlbmV2ZXIgdGhlIHZhbHVlIG9mIHRoZSBxdWVyeSBjaGFuZ2VzLgor
CitjbGFzcyBNZWRpYVF1ZXJ5TGlzdCA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhUXVlcnlMaXN0
PiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3Q+IGNyZWF0
ZShQYXNzUmVmUHRyPE1lZGlhUXVlcnlNYXRjaGVyPiwgUGFzc1JlZlB0cjxNZWRpYUxpc3Q+LCBi
b29sKTsKKyAgICB+TWVkaWFRdWVyeUxpc3QoKTsKKworICAgIFN0cmluZyBtZWRpYSgpIGNvbnN0
OworICAgIGJvb2wgbWF0Y2hlcygpOworCisgICAgdm9pZCBhZGRMaXN0ZW5lcihQYXNzUmVmUHRy
PE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+KTsKKyAgICB2b2lkIHJlbW92ZUxpc3RlbmVyKFBhc3NS
ZWZQdHI8TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4pOworCisgICAgdm9pZCBldmFsdWF0ZShNZWRp
YVF1ZXJ5RXZhbHVhdG9yKiwgYm9vbCYgbm90aWZpY2F0aW9uTmVlZGVkKTsKKworcHJpdmF0ZToK
KyAgICBNZWRpYVF1ZXJ5TGlzdChQYXNzUmVmUHRyPE1lZGlhUXVlcnlNYXRjaGVyPiwgUGFzc1Jl
ZlB0cjxNZWRpYUxpc3Q+LCBib29sIG1hdGNoZXMpOworICAgIHZvaWQgc2V0TWF0Y2hlcyhib29s
KTsKKworICAgIFJlZlB0cjxNZWRpYVF1ZXJ5TWF0Y2hlcj4gbV9tYXRjaGVyOworICAgIFJlZlB0
cjxNZWRpYUxpc3Q+IG1fbWVkaWE7CisgICAgaW50IG1fZXZhbHVhdGlvblJvdW5kOyAvLyBJbmRp
Y2F0ZXMgaWYgdGhlIHF1ZXJ5IGhhcyBiZWVuIGV2YWx1YXRlZCBhZnRlciB0aGUgbGFzdCBzdHls
ZSBzZWxlY3RvciBjaGFuZ2UuCisgICAgaW50IG1fY2hhbmdlUm91bmQ7IC8vIFVzZWQgdG8ga25v
dyBpZiB0aGUgcXVlcnkgaGFzIGNoYW5nZWQgaW4gdGhlIGxhc3Qgc3R5bGUgc2VsZWN0b3IgY2hh
bmdlLgorICAgIGJvb2wgbV9tYXRjaGVzOworfTsKKworfQorCisjZW5kaWYgLy8gTWVkaWFRdWVy
eUxpc3RfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3QuaWRsIGIvV2Vi
Q29yZS9jc3MvTWVkaWFRdWVyeUxpc3QuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLmU0MjRhNzkKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5
TGlzdC5pZGwKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tp
YSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUg
dmlldyB7CisgICAgaW50ZXJmYWNlIE1lZGlhUXVlcnlMaXN0IHsKKyAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIERPTVN0cmluZyBtZWRpYTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJv
b2xlYW4gbWF0Y2hlczsKKyAgICAgICAgdm9pZCBhZGRMaXN0ZW5lcihpbiBNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyIGxpc3RlbmVyKTsKKyAgICAgICAgdm9pZCByZW1vdmVMaXN0ZW5lcihpbiBNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyIGxpc3RlbmVyKTsKKyAgICB9OworfQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9jc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgYi9XZWJDb3JlL2Nzcy9NZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43
Y2QyODYzCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3RMaXN0
ZW5lci5jcHAKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tp
YSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oIgorCisjaW5j
bHVkZSAiTWVkaWFRdWVyeUxpc3QuaCIKKyNpbmNsdWRlICJTY3JpcHRGdW5jdGlvbkNhbGwuaCIK
KworI2lmIFVTRShKU0MpCisjaW5jbHVkZSAiSlNNZWRpYVF1ZXJ5TGlzdC5oIgorI2Vsc2UKKyNp
bmNsdWRlICJWOE1lZGlhUXVlcnlMaXN0LmgiCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCit2b2lkIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OnF1ZXJ5Q2hhbmdlZChTY3JpcHRTdGF0
ZSogc3RhdGUsIE1lZGlhUXVlcnlMaXN0KiBxdWVyeSkKK3sKKyAgICBTY3JpcHRDYWxsYmFjayBj
YWxsYmFjayhzdGF0ZSwgbV92YWx1ZSk7CisjaWYgVVNFKEpTQykKKyAgICBjYWxsYmFjay5hcHBl
bmRBcmd1bWVudCh0b0pTKHN0YXRlLCBxdWVyeSkpOworI2Vsc2UKKyAgICBjYWxsYmFjay5hcHBl
bmRBcmd1bWVudCh0b1Y4KHF1ZXJ5KSk7CisjZW5kaWYKKyAgICBjYWxsYmFjay5jYWxsKCk7Cit9
CisKK2Jvb2wgTWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6aXNFcXVhbFRvKGNvbnN0IE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXIqIG90aGVyKQoreworICAgIHJldHVybiBvdGhlciAmJiBvdGhlci0+bV92
YWx1ZSA9PSBtX3ZhbHVlOworfQorCit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9NZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyLmggYi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2ViNGViOAotLS0gL2Rldi9udWxs
CisrKyBiL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaApAQCAtMCwwICsxLDYw
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTWVkaWFRdWVyeUxpc3RMaXN0ZW5l
cl9oCisjZGVmaW5lIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJfaAorCisjaW5jbHVkZSAiUGxhdGZv
cm1TdHJpbmcuaCIKKyNpbmNsdWRlICJTY3JpcHRTdGF0ZS5oIgorI2luY2x1ZGUgIlNjcmlwdFZh
bHVlLmgiCisKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIE1lZGlhUXVlcnlMaXN0OworCisvLyAgU2VlIGh0dHA6Ly9kZXYudzMub3Jn
L2Nzc3dnL2Nzc29tLXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2UKKworY2xhc3Mg
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhUXVlcnlMaXN0
TGlzdGVuZXI+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyPiBjcmVhdGUoU2NyaXB0VmFsdWUgdmFsdWUpCisgICAgeworICAgICAgICBpZiAo
IXZhbHVlLmlzRnVuY3Rpb24oKSkKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIodmFsdWUpKTsKKyAgICB9Cisg
ICAgdm9pZCBxdWVyeUNoYW5nZWQoU2NyaXB0U3RhdGUqLCBNZWRpYVF1ZXJ5TGlzdCopOworICAg
IGJvb2wgaXNFcXVhbFRvKGNvbnN0IE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqKTsKKworcHJpdmF0
ZToKKyAgICBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKFNjcmlwdFZhbHVlIHZhbHVlKSA6IG1fdmFs
dWUodmFsdWUpIHsgfQorCisgICAgU2NyaXB0VmFsdWUgbV92YWx1ZTsKK307CisKK30KKworI2Vu
ZGlmIC8vIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3Mv
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5pZGwgYi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42Y2U4YWVjCi0t
LSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5pZGwK
QEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3Jh
dGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgdmlldyB7Cisg
ICAgaW50ZXJmYWNlIFsKKyAgICAgICAgTm9TdGF0aWNUYWJsZXMsCisgICAgICAgIE9iakNQcm90
b2NvbCwKKyAgICAgICAgUHVyZUludGVyZmFjZSwKKyAgICAgICAgT21pdENvbnN0cnVjdG9yCisg
ICAgXSBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIHsKKyAgICAgICAgdm9pZCBxdWVyeUNoYW5nZWQo
aW4gTWVkaWFRdWVyeUxpc3QgbGlzdCk7CisgICAgfTsKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
Y3NzL01lZGlhUXVlcnlNYXRjaGVyLmNwcCBiL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlNYXRjaGVy
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMzNjMGJmCi0tLSAvZGV2
L251bGwKKysrIGIvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeU1hdGNoZXIuY3BwCkBAIC0wLDAgKzEs
MTY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJNZWRpYVF1ZXJ5TWF0Y2hlci5oIgorCisjaW5jbHVkZSAiQ1NTU3R5bGVTZWxlY3Rvci5o
IgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUg
IkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIk1lZGlhTGlzdC5oIgorI2luY2x1ZGUgIk1lZGlhUXVl
cnlFdmFsdWF0b3IuaCIKKyNpbmNsdWRlICJNZWRpYVF1ZXJ5TGlzdC5oIgorI2luY2x1ZGUgIk1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitNZWRpYVF1
ZXJ5TWF0Y2hlcjo6TGlzdGVuZXI6Okxpc3RlbmVyKFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3RM
aXN0ZW5lcj4gbGlzdGVuZXIsIFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3Q+IHF1ZXJ5KQorICAg
IDogbV9saXN0ZW5lcihsaXN0ZW5lcikKKyAgICAsIG1fcXVlcnkocXVlcnkpCit7Cit9CisKK01l
ZGlhUXVlcnlNYXRjaGVyOjpMaXN0ZW5lcjo6fkxpc3RlbmVyKCkKK3sKK30KKwordm9pZCBNZWRp
YVF1ZXJ5TWF0Y2hlcjo6TGlzdGVuZXI6OmV2YWx1YXRlKFNjcmlwdFN0YXRlKiBzdGF0ZSwgTWVk
aWFRdWVyeUV2YWx1YXRvciogZXZhbHVhdG9yKQoreworICAgIGJvb2wgbm90aWZ5OworICAgIG1f
cXVlcnktPmV2YWx1YXRlKGV2YWx1YXRvciwgbm90aWZ5KTsKKyAgICBpZiAobm90aWZ5KQorICAg
ICAgICBtX2xpc3RlbmVyLT5xdWVyeUNoYW5nZWQoc3RhdGUsIG1fcXVlcnkuZ2V0KCkpOworfQor
CitNZWRpYVF1ZXJ5TWF0Y2hlcjo6TWVkaWFRdWVyeU1hdGNoZXIoRG9jdW1lbnQqIGRvY3VtZW50
KQorICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKKyAgICAsIG1fZXZhbHVhdGlvblJvdW5kKDAp
Cit7CisgICAgQVNTRVJUKG1fZG9jdW1lbnQpOworfQorCitNZWRpYVF1ZXJ5TWF0Y2hlcjo6fk1l
ZGlhUXVlcnlNYXRjaGVyKCkKK3sKK30KKwordm9pZCBNZWRpYVF1ZXJ5TWF0Y2hlcjo6ZG9jdW1l
bnREZXN0cm95ZWQoKQoreworICAgIG1fbGlzdGVuZXJzLmNsZWFyKCk7CisgICAgbV9kb2N1bWVu
dCA9IDA7Cit9CisKK1N0cmluZyBNZWRpYVF1ZXJ5TWF0Y2hlcjo6bWVkaWFUeXBlKCkgY29uc3QK
K3sKKyAgICBpZiAoIW1fZG9jdW1lbnQgfHwgIW1fZG9jdW1lbnQtPmZyYW1lKCkgfHwgIW1fZG9j
dW1lbnQtPmZyYW1lKCktPnZpZXcoKSkKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworCisgICAg
cmV0dXJuIG1fZG9jdW1lbnQtPmZyYW1lKCktPnZpZXcoKS0+bWVkaWFUeXBlKCk7Cit9CisKK1Bh
c3NPd25QdHI8TWVkaWFRdWVyeUV2YWx1YXRvcj4gTWVkaWFRdWVyeU1hdGNoZXI6OnByZXBhcmVF
dmFsdWF0b3IoKSBjb25zdAoreworICAgIGlmICghbV9kb2N1bWVudCB8fCAhbV9kb2N1bWVudC0+
ZnJhbWUoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBt
X2RvY3VtZW50LT5mcmFtZSgpLT5kb2N1bWVudCgpOworICAgIGlmICghZG9jdW1lbnQpCisgICAg
ICAgIHJldHVybiAwOworCisgICAgRWxlbWVudCogZG9jdW1lbnRFbGVtZW50ID0gZG9jdW1lbnQt
PmRvY3VtZW50RWxlbWVudCgpOworICAgIGlmICghZG9jdW1lbnRFbGVtZW50KQorICAgICAgICBy
ZXR1cm4gMDsKKworICAgIENTU1N0eWxlU2VsZWN0b3IqIHN0eWxlU2VsZWN0b3IgPSBkb2N1bWVu
dC0+c3R5bGVTZWxlY3RvcigpOworICAgIGlmICghc3R5bGVTZWxlY3RvcikKKyAgICAgICAgcmV0
dXJuIDA7CisKKyAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IHJvb3RTdHlsZSA9IHN0eWxlU2VsZWN0
b3ItPnN0eWxlRm9yRWxlbWVudChkb2N1bWVudEVsZW1lbnQsIDAgLypkZWZhdWx0UGFyZW50Ki8s
IGZhbHNlIC8qYWxsb3dTaGFyaW5nKi8sIHRydWUgLypyZXNvbHZlRm9yUm9vdERlZmF1bHQqLyk7
CisKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IE1lZGlhUXVlcnlFdmFsdWF0b3IobWVkaWFUeXBl
KCksIG1fZG9jdW1lbnQtPmZyYW1lKCksIHJvb3RTdHlsZS5nZXQoKSkpOworfQorCitib29sIE1l
ZGlhUXVlcnlNYXRjaGVyOjpldmFsdWF0ZShNZWRpYUxpc3QqIG1lZGlhKQoreworICAgIGlmICgh
bWVkaWEpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIE93blB0cjxNZWRpYVF1ZXJ5RXZh
bHVhdG9yPiBldmFsdWF0b3IocHJlcGFyZUV2YWx1YXRvcigpKTsKKyAgICByZXR1cm4gZXZhbHVh
dG9yICYmIGV2YWx1YXRvci0+ZXZhbChtZWRpYSk7Cit9CisKK1Bhc3NSZWZQdHI8TWVkaWFRdWVy
eUxpc3Q+IE1lZGlhUXVlcnlNYXRjaGVyOjptYXRjaE1lZGlhKGNvbnN0IFN0cmluZyYgcXVlcnkp
Cit7CisgICAgaWYgKCFtX2RvY3VtZW50KQorICAgICAgICByZXR1cm4gMDsKKworICAgIFJlZlB0
cjxNZWRpYUxpc3Q+IG1lZGlhID0gTWVkaWFMaXN0OjpjcmVhdGUocXVlcnksIGZhbHNlKTsKKyAg
ICByZXR1cm4gTWVkaWFRdWVyeUxpc3Q6OmNyZWF0ZSh0aGlzLCBtZWRpYSwgZXZhbHVhdGUobWVk
aWEuZ2V0KCkpKTsKK30KKwordm9pZCBNZWRpYVF1ZXJ5TWF0Y2hlcjo6YWRkTGlzdGVuZXIoUGFz
c1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyPiBsaXN0ZW5lciwgUGFzc1JlZlB0cjxNZWRp
YVF1ZXJ5TGlzdD4gcXVlcnkpCit7CisgICAgaWYgKCFtX2RvY3VtZW50IHx8ICFtX2RvY3VtZW50
LT5mcmFtZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IG1fbGlzdGVuZXJzLnNpemUoKTsgKytpKSB7CisgICAgICAgIGlmIChtX2xpc3RlbmVyc1tpXS0+
bGlzdGVuZXIoKS0+aXNFcXVhbFRvKGxpc3RlbmVyLmdldCgpKSAmJiBtX2xpc3RlbmVyc1tpXS0+
cXVlcnkoKSA9PSBxdWVyeS5nZXQoKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBtX2xpc3RlbmVycy5hcHBlbmQobmV3IExpc3RlbmVyKGxpc3RlbmVyLCBxdWVyeSkpOworfQor
Cit2b2lkIE1lZGlhUXVlcnlNYXRjaGVyOjpyZW1vdmVMaXN0ZW5lcihQYXNzUmVmUHRyPE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXI+IGxpc3RlbmVyLCBQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0PiBx
dWVyeSkKK3sKKyAgICBpZiAoIW1fZG9jdW1lbnQgfHwgIW1fZG9jdW1lbnQtPmZyYW1lKCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIGZvciAoaW50IGkgPSBtX2xpc3RlbmVycy5zaXplKCkgLSAx
OyBpID49IDA7IC0taSkgeworICAgICAgICBpZiAobV9saXN0ZW5lcnNbaV0tPmxpc3RlbmVyKCkt
PmlzRXF1YWxUbyhsaXN0ZW5lci5nZXQoKSkgJiYgbV9saXN0ZW5lcnNbaV0tPnF1ZXJ5KCkgPT0g
cXVlcnkuZ2V0KCkpIHsKKyAgICAgICAgICAgIG1fbGlzdGVuZXJzLnJlbW92ZShpKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCBNZWRpYVF1ZXJ5TWF0
Y2hlcjo6c3R5bGVTZWxlY3RvckNoYW5nZWQoKQoreworICAgIEFTU0VSVChtX2RvY3VtZW50KTsK
KworICAgIFNjcmlwdFN0YXRlKiBleGVjID0gbWFpbldvcmxkU2NyaXB0U3RhdGUobV9kb2N1bWVu
dC0+ZnJhbWUoKSk7CisgICAgaWYgKCFleGVjKQorICAgICAgICByZXR1cm47CisKKyAgICArK21f
ZXZhbHVhdGlvblJvdW5kOworICAgIE93blB0cjxNZWRpYVF1ZXJ5RXZhbHVhdG9yPiBldmFsdWF0
b3IgPSBwcmVwYXJlRXZhbHVhdG9yKCk7CisgICAgaWYgKCFldmFsdWF0b3IpCisgICAgICAgIHJl
dHVybjsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9saXN0ZW5lcnMuc2l6ZSgpOyAr
K2kpCisgICAgICAgIG1fbGlzdGVuZXJzW2ldLT5ldmFsdWF0ZShleGVjLCBldmFsdWF0b3IuZ2V0
KCkpOworfQorCit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TWF0Y2hlci5o
IGIvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeU1hdGNoZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5iZDM0OWJjCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9jc3MvTWVk
aWFRdWVyeU1hdGNoZXIuaApAQCAtMCwwICsxLDk1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgTWVkaWFRdWVyeU1hdGNoZXJfaAorI2RlZmluZSBNZWRpYVF1ZXJ5TWF0Y2hlcl9o
CisKKyNpbmNsdWRlICJTY3JpcHRTdGF0ZS5oIgorCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
KyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBEb2N1bWVudDsKK2NsYXNzIE1lZGlhTGlzdDsKK2NsYXNzIE1lZGlhUXVlcnlMaXN0
OworY2xhc3MgTWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjsKK2NsYXNzIE1lZGlhUXVlcnlFdmFsdWF0
b3I7CisKKy8vICBNZWRpYVF1ZXJ5TWF0Y2hlciBjbGFzcyBpcyByZXNwb25zaWJsZSBmb3Iga2Vl
cGluZyBhIHZlY3RvciBvZiBwYWlycworLy8gIE1lZGlhUXVlcnlMaXN0IHggTWVkaWFRdWVyeUxp
c3RMaXN0ZW5lci4gSXQgaXMgcmVzcG9uc2libGUgZm9yIGV2YWx1YXRpbmcgdGhlIHF1ZXJpZXMK
Ky8vICB3aGVuZXZlciBpdCBpcyBuZWVkZWQgYW5kIHRvIGNhbGwgdGhlIGxpc3RlbmVycyBpZiB0
aGUgY29ycmVzcG9uZGluZyBxdWVyeSBoYXMgY2hhbmdlZC4KKy8vIFRoZSBsaXN0ZW5lcnMgbXVz
dCBiZSBjYWxsZWQgaW4gdGhlIHZlcnkgc2FtZSBvcmRlciBpbiB3aGljaCB0aGV5IGhhdmUgYmVl
biBhZGRlZC4KKworY2xhc3MgTWVkaWFRdWVyeU1hdGNoZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxN
ZWRpYVF1ZXJ5TWF0Y2hlcj4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlh
UXVlcnlNYXRjaGVyPiBjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KSB7IHJldHVybiBhZG9wdFJl
ZihuZXcgTWVkaWFRdWVyeU1hdGNoZXIoZG9jdW1lbnQpKTsgfQorICAgIH5NZWRpYVF1ZXJ5TWF0
Y2hlcigpOworICAgIHZvaWQgZG9jdW1lbnREZXN0cm95ZWQoKTsKKworICAgIHZvaWQgYWRkTGlz
dGVuZXIoUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyPiwgUGFzc1JlZlB0cjxNZWRp
YVF1ZXJ5TGlzdD4pOworICAgIHZvaWQgcmVtb3ZlTGlzdGVuZXIoUGFzc1JlZlB0cjxNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyPiwgUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdD4pOworCisgICAgUGFz
c1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdD4gbWF0Y2hNZWRpYShjb25zdCBTdHJpbmcmKTsKKworICAg
IGludCBldmFsdWF0aW9uUm91bmQoKSBjb25zdCB7IHJldHVybiBtX2V2YWx1YXRpb25Sb3VuZDsg
fQorICAgIHZvaWQgc3R5bGVTZWxlY3RvckNoYW5nZWQoKTsKKyAgICBib29sIGV2YWx1YXRlKE1l
ZGlhTGlzdCopOworCitwcml2YXRlOgorICAgIGNsYXNzIExpc3RlbmVyIHsKKyAgICBwdWJsaWM6
CisgICAgICAgIExpc3RlbmVyKFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4sIFBh
c3NSZWZQdHI8TWVkaWFRdWVyeUxpc3Q+KTsKKyAgICAgICAgfkxpc3RlbmVyKCk7CisKKyAgICAg
ICAgdm9pZCBldmFsdWF0ZShTY3JpcHRTdGF0ZSosIE1lZGlhUXVlcnlFdmFsdWF0b3IqKTsKKwor
ICAgICAgICBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKiBsaXN0ZW5lcigpIHsgcmV0dXJuIG1fbGlz
dGVuZXIuZ2V0KCk7IH0KKyAgICAgICAgTWVkaWFRdWVyeUxpc3QqIHF1ZXJ5KCkgeyByZXR1cm4g
bV9xdWVyeS5nZXQoKTsgfQorCisgICAgcHJpdmF0ZToKKyAgICAgICAgUmVmUHRyPE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXI+IG1fbGlzdGVuZXI7CisgICAgICAgIFJlZlB0cjxNZWRpYVF1ZXJ5TGlz
dD4gbV9xdWVyeTsKKyAgICB9OworCisgICAgTWVkaWFRdWVyeU1hdGNoZXIoRG9jdW1lbnQqKTsK
KyAgICBQYXNzT3duUHRyPE1lZGlhUXVlcnlFdmFsdWF0b3I+IHByZXBhcmVFdmFsdWF0b3IoKSBj
b25zdDsKKyAgICBTdHJpbmcgbWVkaWFUeXBlKCkgY29uc3Q7CisKKyAgICBEb2N1bWVudCogbV9k
b2N1bWVudDsKKyAgICBWZWN0b3I8T3duUHRyPExpc3RlbmVyPiA+IG1fbGlzdGVuZXJzOworCisg
ICAgLy8gVGhpcyB2YWx1ZSBpcyBpbmNyZW1lbnRlZCBhdCBzdHlsZSBzZWxlY3RvciBjaGFuZ2Vz
LgorICAgIC8vIEl0IGlzIHVzZWQgdG8gYXZvaWQgZXZhbHVhdGluZyBxdWVyaWVzIG1vcmUgdGhl
biBvbmNlIGFuZCB0byBtYWtlIHN1cmUKKyAgICAvLyB0aGF0IGEgbWVkaWEgcXVlcnkgcmVzdWx0
IGNoYW5nZSBpcyBub3RpZmllZCBleGFjdGx5IG9uY2UuCisgICAgaW50IG1fZXZhbHVhdGlvblJv
dW5kOworfTsKKworfQorCisjZW5kaWYgLy8gTWVkaWFRdWVyeU1hdGNoZXJfaApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmlu
ZGV4IGU4OWViNzIuLjFjMjBlOWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTYsNiArNiw3IEBACiAgKiBDb3B5
cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5IFRvcmNoIE1v
YmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIChodHRwOi8vd3d3LnRvcmNobW9iaWxlLmNv
bS8pCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3Ig
aXRzIHN1YnNpZGlhcnkoLWllcykKICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtOTEsNiArOTIsOCBA
QAogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIktleWJv
YXJkRXZlbnQuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTWVkaWFRdWVyeUxp
c3QuaCIKKyNpbmNsdWRlICJNZWRpYVF1ZXJ5TWF0Y2hlci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VF
dmVudC5oIgogI2luY2x1ZGUgIk1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJNb3VzZUV2ZW50V2l0
aEhpdFRlc3RSZXN1bHRzLmgiCkBAIC01NjUsNiArNTY4LDE2IEBAIERvY3VtZW50Ojp+RG9jdW1l
bnQoKQogICAgICAgICBtX3N0eWxlU2hlZXRzLT5kb2N1bWVudERlc3Ryb3llZCgpOwogCiAgICAg
bV93ZWFrUmVmZXJlbmNlLT5jbGVhcigpOworCisgICAgaWYgKG1fbWVkaWFRdWVyeU1hdGNoZXIp
CisgICAgICAgIG1fbWVkaWFRdWVyeU1hdGNoZXItPmRvY3VtZW50RGVzdHJveWVkKCk7Cit9CisK
K01lZGlhUXVlcnlNYXRjaGVyKiBEb2N1bWVudDo6bWVkaWFRdWVyeU1hdGNoZXIoKQoreworICAg
IGlmICghbV9tZWRpYVF1ZXJ5TWF0Y2hlcikKKyAgICAgICAgbV9tZWRpYVF1ZXJ5TWF0Y2hlciA9
IE1lZGlhUXVlcnlNYXRjaGVyOjpjcmVhdGUodGhpcyk7CisgICAgcmV0dXJuIG1fbWVkaWFRdWVy
eU1hdGNoZXIuZ2V0KCk7CiB9CiAKICNpZiBVU0UoSlNDKQpAQCAtMjgzNSw2ICsyODQ4LDkgQEAg
dm9pZCBEb2N1bWVudDo6c3R5bGVTZWxlY3RvckNoYW5nZWQoU3R5bGVTZWxlY3RvclVwZGF0ZUZs
YWcgdXBkYXRlRmxhZykKICAgICAgICAgaWYgKHZpZXcoKSkKICAgICAgICAgICAgIHZpZXcoKS0+
c2NoZWR1bGVSZWxheW91dCgpOwogICAgIH0KKworICAgIGlmIChtX21lZGlhUXVlcnlNYXRjaGVy
KQorICAgICAgICBtX21lZGlhUXVlcnlNYXRjaGVyLT5zdHlsZVNlbGVjdG9yQ2hhbmdlZCgpOwog
fQogCiB2b2lkIERvY3VtZW50OjphZGRTdHlsZVNoZWV0Q2FuZGlkYXRlTm9kZShOb2RlKiBub2Rl
LCBib29sIGNyZWF0ZWRCeVBhcnNlcikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmggYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGE5ODkwMWUuLmIyNzgzYWYgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aApAQCAtNSw2ICs1LDcgQEAKICAqICAgICAgICAgICAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlh
a292IChhcEB3ZWJraXQub3JnKQogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAy
MDA3LCAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
IENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQorICogQ29weXJpZ2h0IChDKSAy
MDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICoKICAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCkBAIC05Myw2ICs5NCw4IEBAIGNsYXNzIEludFBvaW50OwogY2xhc3MgRE9N
V3JhcHBlcldvcmxkOwogY2xhc3MgSlNOb2RlOwogY2xhc3MgTWVkaWFDYW5TdGFydExpc3RlbmVy
OworY2xhc3MgTWVkaWFRdWVyeUxpc3Q7CitjbGFzcyBNZWRpYVF1ZXJ5TWF0Y2hlcjsKIGNsYXNz
IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHM7CiBjbGFzcyBOb2RlRmlsdGVyOwogY2xhc3Mg
Tm9kZUl0ZXJhdG9yOwpAQCAtMjAyLDYgKzIwNSw4IEBAIHB1YmxpYzoKICAgICB9CiAgICAgdmly
dHVhbCB+RG9jdW1lbnQoKTsKIAorICAgIE1lZGlhUXVlcnlNYXRjaGVyKiBtZWRpYVF1ZXJ5TWF0
Y2hlcigpOworCiAgICAgdXNpbmcgQ29udGFpbmVyTm9kZTo6cmVmOwogICAgIHVzaW5nIENvbnRh
aW5lck5vZGU6OmRlcmVmOwogCkBAIC0xMzM0LDYgKzEzMzksOCBAQCBwcml2YXRlOgogICAgIFRp
bWVyPERvY3VtZW50PiBtX2xvYWRFdmVudERlbGF5VGltZXI7CiAKICAgICBWaWV3cG9ydEFyZ3Vt
ZW50cyBtX3ZpZXdwb3J0QXJndW1lbnRzOworCisgICAgUmVmUHRyPE1lZGlhUXVlcnlNYXRjaGVy
PiBtX21lZGlhUXVlcnlNYXRjaGVyOwogfTsKIAogaW5saW5lIGJvb2wgRG9jdW1lbnQ6Omhhc0Vs
ZW1lbnRXaXRoSWQoQXRvbWljU3RyaW5nSW1wbCogaWQpIGNvbnN0CmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4
IGQ3NTZjY2UuLjEyNDE5NzEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3Bw
CisrKyBiL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAq
IENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTY1
LDcgKzY2LDggQEAKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNs
dWRlICJLVVJMLmgiCiAjaW5jbHVkZSAiTG9jYXRpb24uaCIKLSNpbmNsdWRlICJTdHlsZU1lZGlh
LmgiCisjaW5jbHVkZSAiTWVkaWFRdWVyeUxpc3QuaCIKKyNpbmNsdWRlICJNZWRpYVF1ZXJ5TWF0
Y2hlci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VFdmVudC5oIgogI2luY2x1ZGUgIk5hdmlnYXRvci5o
IgogI2luY2x1ZGUgIk5vdGlmaWNhdGlvbkNlbnRlci5oIgpAQCAtODEsNiArODMsNyBAQAogI2lu
Y2x1ZGUgIlN0b3JhZ2UuaCIKICNpbmNsdWRlICJTdG9yYWdlQXJlYS5oIgogI2luY2x1ZGUgIlN0
b3JhZ2VOYW1lc3BhY2UuaCIKKyNpbmNsdWRlICJTdHlsZU1lZGlhLmgiCiAjaW5jbHVkZSAiU3Vk
ZGVuVGVybWluYXRpb24uaCIKICNpbmNsdWRlICJXZWJLaXRQb2ludC5oIgogI2luY2x1ZGUgPGFs
Z29yaXRobT4KQEAgLTQwOSw2ICs0MTIsMTEgQEAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogRE9N
V2luZG93OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QKICAgICByZXR1cm4gZG9jdW1l
bnQoKTsKIH0KIAorUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdD4gRE9NV2luZG93OjptYXRjaE1l
ZGlhKGNvbnN0IFN0cmluZyYgbWVkaWEpCit7CisgICAgcmV0dXJuIGRvY3VtZW50KCkgPyBkb2N1
bWVudCgpLT5tZWRpYVF1ZXJ5TWF0Y2hlcigpLT5tYXRjaE1lZGlhKG1lZGlhKSA6IDA7Cit9CisK
IHZvaWQgRE9NV2luZG93OjpkaXNjb25uZWN0RnJhbWUoKQogewogICAgIG1fZnJhbWUgPSAwOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oIGIvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5oCmluZGV4IDIxNTY3OTEuLjMyZTcyMjQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9E
T01XaW5kb3cuaAorKysgYi9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKQEAgLTEsNSArMSw2IEBA
CiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA5IEFwcGxlIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24g
YW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTU4LDEwICs1OSwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgSGlz
dG9yeTsKICAgICBjbGFzcyBJREJGYWN0b3J5OwogICAgIGNsYXNzIExvY2F0aW9uOwotICAgIGNs
YXNzIFN0eWxlTWVkaWE7CisgICAgY2xhc3MgTWVkaWFRdWVyeUxpc3Q7CiAgICAgY2xhc3MgTmF2
aWdhdG9yOwogICAgIGNsYXNzIE5vZGU7CiAgICAgY2xhc3MgTm90aWZpY2F0aW9uQ2VudGVyOwor
ICAgIGNsYXNzIFN0eWxlTWVkaWE7CiAKICNpZiBFTkFCTEUoV0VCX1RJTUlORykKICAgICBjbGFz
cyBQZXJmb3JtYW5jZTsKQEAgLTk3LDYgKzk5LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAg
ICAgICAgIHZvaWQgY2xlYXIoKTsKIAorICAgICAgICBQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0
PiBtYXRjaE1lZGlhKGNvbnN0IFN0cmluZyYpOworCiAjaWYgRU5BQkxFKE9SSUVOVEFUSU9OX0VW
RU5UUykKICAgICAgICAgLy8gVGhpcyBpcyB0aGUgaW50ZXJmYWNlIG9yaWVudGF0aW9uIGluIGRl
Z3JlZXMuIFNvbWUgZXhhbXBsZXMgYXJlOgogICAgICAgICAvLyAgMCBpcyBzdHJhaWdodCB1cDsg
LTkwIGlzIHdoZW4gdGhlIGRldmljZSBpcyByb3RhdGVkIDkwIGNsb2Nrd2lzZTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5p
ZGwKaW5kZXggMGFlMTA2OS4uMzYyNmQyNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5pZGwKKysrIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKQEAgLTE0MCw3ICsxNDAs
MTAgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBEb2N1bWVu
dCBkb2N1bWVudDsKIAogICAgICAgICAvLyBDU1NPTSBWaWV3IE1vZHVsZQorCisgICAgICAgIC8v
IHN0eWxlTWVkaWEgaGFzIGJlZW4gcmVtb3ZlZCBmcm9tIHRoZSBjc3NvbS12aWV3IHNwZWNpZmlj
YXRpb24uCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTdHlsZU1lZGlhIHN0eWxlTWVkaWE7
CisgICAgICAgIE1lZGlhUXVlcnlMaXN0IG1hdGNoTWVkaWEoaW4gRE9NU3RyaW5nIHF1ZXJ5KTsK
IAogICAgICAgICAvLyBET00gTGV2ZWwgMiBTdHlsZSBJbnRlcmZhY2UKICAgICAgICAgQ1NTU3R5
bGVEZWNsYXJhdGlvbiBnZXRDb21wdXRlZFN0eWxlKGluIEVsZW1lbnQgZWxlbWVudCwKLS0gCjEu
Ny4yLjIKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71932</attachid>
            <date>2010-10-26 13:04:23 -0700</date>
            <delta_ts>2010-11-12 13:05:53 -0800</delta_ts>
            <desc>patch</desc>
            <filename>0001-Implement-CSSOM-View-matchMedia-interface.patch</filename>
            <type>text/plain</type>
            <size>103119</size>
            <attacher name="Luiz Agostini">luiz</attacher>
            
              <data encoding="base64">RnJvbSAzMGI4ZjUzMTlhYjRhYWI2MDM5YTc5NzkwMmRjODQ1OTNiOTg5ZmQ1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWl6IEFnb3N0aW5pIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IFRodSwgMjEgT2N0IDIwMTAgMjE6MTg6NTIgLTAzMDAKU3ViamVjdDogW1BB
VENIXSBJbXBsZW1lbnQgQ1NTT00gVmlldyBtYXRjaE1lZGlhIGludGVyZmFjZQogaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3MjA1CgpSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KCldlYkNvcmU6CgpOZXcgaW50ZXJmYWNlcyBtYXkgYmUgdXNlZCB0byBldmFsdWF0
ZSBtZWRpYSBxdWVyaWVzIGFuZCB0byBhc3NvY2lhdGUgbGlzdGVuZXJzCnRvIG1lZGlhIHF1ZXJp
ZXMuIFRob3NlIGxpc3RlbmVycyBhcmUgY2FsbGVkIHdoZW5ldmVyIHRoZSBhc3NvY2lhdGVkIHF1
ZXJ5IGNoYW5nZXMuClNwZWNpZmljYXRpb24gbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9kZXYudzMu
b3JnL2Nzc3dnL2Nzc29tLXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2UKCm9wZXJh
dG9yPT0gYWRkZWQgdG8gSlMgdmVyc2lvbiBvZiBTY3JpcHRWYWx1ZS4KTWV0aG9kIGlzRnVuY3Rp
b24gYWRkZWQgdG8gSlMgYW5kIFY4IHZlcnNpb25zIG9mIFNjcmlwdFZhbHVlLgoKKiBiaW5kaW5n
cy9qcy9TY3JpcHRWYWx1ZS5jcHA6CihXZWJDb3JlOjpTY3JpcHRWYWx1ZTo6aXNGdW5jdGlvbik6
CiogYmluZGluZ3MvanMvU2NyaXB0VmFsdWUuaDoKKFdlYkNvcmU6OlNjcmlwdFZhbHVlOjpvcGVy
YXRvcj09KToKKiBiaW5kaW5ncy92OC9TY3JpcHRWYWx1ZS5oOgooV2ViQ29yZTo6U2NyaXB0VmFs
dWU6OmlzRnVuY3Rpb24pOgoKU29tZSBjaGFuZ2VzIHdlcmUgbmVlZGVkIHRvIHRoZSBjb2RlIGdl
bmVyYXRvcnMgdG8gaGFuZGxlIHR5cGUgTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci4KCiogYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbToKKiBiaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbToKKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbToK
ClNvbWUgY2hhbmdlcyB0byB0aGUgYmluZGluZ3MgdGVzdCByZXN1bHRzIHRoYXQgd2VyZSBwcmV2
aW91c2x5IGFkZGVkLgoKKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01U
ZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHA6CiogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dP
YmplY3QvV2ViS2l0RE9NVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaDoKKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHA6CihXZWJDb3Jl
Ojpqc1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBlRnVuY3Rpb25NZXRob2QpOgoq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNw
cDoKKFdlYkNvcmU6OlRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVySW50ZXJuYWw6Om1ldGhvZENh
bGxiYWNrKToKKFdlYkNvcmU6OkNvbmZpZ3VyZVY4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJU
ZW1wbGF0ZSk6CgpOZXcgaW50ZXJmYWNlczoKCiogY3NzL01lZGlhUXVlcnlMaXN0LmNwcDogQWRk
ZWQuCiogY3NzL01lZGlhUXVlcnlMaXN0Lmg6IEFkZGVkLgoqIGNzcy9NZWRpYVF1ZXJ5TGlzdC5p
ZGw6IEFkZGVkLgoKKiBjc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHA6IEFkZGVkLgoqIGNz
cy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmg6IEFkZGVkLgoqIGNzcy9NZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyLmlkbDogQWRkZWQuCgpUbyBhdm9pZCBhZGRpbmcgY29kZSB0byBjbGFzc2VzIERPTVdp
bmRvdyBhbmQgRG9jdW1lbnQgYSBuZXcgY2xhc3MgTWVkaWFRdWVyeU1hdGNoZXIgd2FzIGNyZWF0
ZWQuCgoqIGNzcy9NZWRpYVF1ZXJ5TWF0Y2hlci5jcHA6IEFkZGVkLgoqIGNzcy9NZWRpYVF1ZXJ5
TWF0Y2hlci5oOiBBZGRlZC4KCkRvY3VtZW50IGFuZCBET01XaW5kb3cgaGF2ZSBjaGFuZ2VkIHRv
IHN1cHBvcnQgbmV3IGZlYXR1cmVzLiBET01XaW5kb3cgaXMgdGhlIGNsYXNzIHRoYXQKcHVibGlz
aGVzIG1ldGhvZHMgbWF0Y2hNZWRpYSBidXQgZm9yIHBhZ2UgY2FjaGUgdG8gd29yayBwcm9wZXJs
eSAgdGhlIHJlZmVyZW5jZSB0byB0aGUKTWVkaWFRdWVyeU1hdGNoZXIgbXVzdCBiZSBpbiBEb2N1
bWVudC4KCiogZG9tL0RvY3VtZW50LmNwcDoKKFdlYkNvcmU6OkRvY3VtZW50Ojp+RG9jdW1lbnQp
OgooV2ViQ29yZTo6RG9jdW1lbnQ6Om1lZGlhUXVlcnlNYXRjaGVyKToKKFdlYkNvcmU6OkRvY3Vt
ZW50OjpzdHlsZVNlbGVjdG9yQ2hhbmdlZCk6CiogZG9tL0RvY3VtZW50Lmg6CiogcGFnZS9ET01X
aW5kb3cuY3BwOgooV2ViQ29yZTo6RE9NV2luZG93OjptYXRjaE1lZGlhKToKKiBwYWdlL0RPTVdp
bmRvdy5oOgoqIHBhZ2UvRE9NV2luZG93LmlkbDoKCkJ1aWxkIHN5c3RlbXMKCiogQ01ha2VMaXN0
cy50eHQ6CiogRGVyaXZlZFNvdXJjZXMubWFrZToKKiBHTlVtYWtlZmlsZS5hbToKKiBXZWJDb3Jl
Lmd5cGk6CiogV2ViQ29yZS5wcmk6CiogV2ViQ29yZS5wcm86CiogV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2o6CiogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgoqIGJpbmRp
bmdzL2dvYmplY3QvR05VbWFrZWZpbGUuYW06CgpUZXN0czogZmFzdC9tZWRpYS9tZWRpYS1xdWVy
eS1saXN0LTAxLmh0bWwKICAgICAgIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMi5odG1s
CiAgICAgICBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMuaHRtbAogICAgICAgZmFzdC9t
ZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA0Lmh0bWwKICAgICAgIGZhc3QvbWVkaWEvbWVkaWEtcXVl
cnktbGlzdC0wNS5odG1sCiAgICAgICBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDYuaHRt
bAogICAgICAgZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA3Lmh0bWwKCkxheW91dFRlc3Rz
OgoKTmV3IHByb3BlcnR5IG1hdGNoTWVkaWEgd2FzIGFkZGVkIHRvIHdpbmRvdy4KCiogZmFzdC9k
b20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dDoKKiBmYXN0L2RvbS9XaW5k
b3cvd2luZG93LXByb3BlcnR5LWRlc2NyaXB0b3JzLWV4cGVjdGVkLnR4dDoKCndpbmRvdy5tYXRj
aE1lZGlhIGFuZCBNZWRpYVF1ZXJ5TGlzdCB0ZXN0cy4KCiogZmFzdC9tZWRpYS9tZWRpYS1xdWVy
eS1saXN0LTAxLWV4cGVjdGVkLnR4dDogQWRkZWQuCiogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1s
aXN0LTAxLmh0bWw6IEFkZGVkLgoKVGhlIGZvbGxvd2luZyB0ZXN0cyBkZXBlbmQgb24gTGF5b3V0
VGVzdENvbnRyb2xsZXI6OnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCkgdG8gd29yay4KQXMgaXQg
aXMgb25seSBpbXBsZW1lbnRlZCBieSBRdCBhbmQgR3RrIHRoZSB0ZXN0cyBuZWVkZWQgdG8gYmUg
c2tpcHBlZCBpbiBhbGwgb3RoZXIgcGxhdGZvcm1zLgoKKiBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5
LWxpc3QtMDItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKiBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxp
c3QtMDIuaHRtbDogQWRkZWQuCiogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAzLWV4cGVj
dGVkLnR4dDogQWRkZWQuCiogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAzLmh0bWw6IEFk
ZGVkLgoqIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNC1leHBlY3RlZC50eHQ6IEFkZGVk
LgoqIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNC5odG1sOiBBZGRlZC4KKiBmYXN0L21l
ZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKiBmYXN0L21lZGlh
L21lZGlhLXF1ZXJ5LWxpc3QtMDUuaHRtbDogQWRkZWQuCiogZmFzdC9tZWRpYS9tZWRpYS1xdWVy
eS1saXN0LTA2LWV4cGVjdGVkLnR4dDogQWRkZWQuCiogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1s
aXN0LTA2Lmh0bWw6IEFkZGVkLgoqIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgoqIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNy5odG1sOiBB
ZGRlZC4KKiBwbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CiogcGxhdGZv
cm0vbWFjL1NraXBwZWQ6CiogcGxhdGZvcm0vd2luL1NraXBwZWQ6Ci0tLQogTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDM2ICsrKysrCiAuLi4v
ZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dCB8ICAgIDEgKwog
Li4uL3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy1leHBlY3RlZC50eHQgICAgICAgfCAgICAx
ICsKIC4uLi9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDEtZXhwZWN0ZWQudHh0ICAgIHwg
ICAxNSArKwogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAxLmh0bWwg
ICAgfCAgIDUyICsrKysrKwogLi4uL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMi1leHBl
Y3RlZC50eHQgICAgfCAgIDI1ICsrKwogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVy
eS1saXN0LTAyLmh0bWwgICAgfCAgIDYzICsrKysrKysrCiAuLi4vZmFzdC9tZWRpYS9tZWRpYS1x
dWVyeS1saXN0LTAzLWV4cGVjdGVkLnR4dCAgICB8ICAgNDEgKysrKysKIExheW91dFRlc3RzL2Zh
c3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMy5odG1sICAgIHwgICA3MiArKysrKysrKysKIC4u
Li9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDQtZXhwZWN0ZWQudHh0ICAgIHwgICAyNSAr
KysKIExheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNC5odG1sICAgIHwg
ICA3NSArKysrKysrKysKIC4uLi9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDUtZXhwZWN0
ZWQudHh0ICAgIHwgICAgNyArCiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxp
c3QtMDUuaHRtbCAgICB8ICAgNDcgKysrKysrCiAuLi4vZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1s
aXN0LTA2LWV4cGVjdGVkLnR4dCAgICB8ICAgIDcgKwogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9t
ZWRpYS1xdWVyeS1saXN0LTA2Lmh0bWwgICAgfCAgIDM2ICsrKysrCiAuLi4vZmFzdC9tZWRpYS9t
ZWRpYS1xdWVyeS1saXN0LTA3LWV4cGVjdGVkLnR4dCAgICB8ICAgIDcgKwogTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA3Lmh0bWwgICAgfCAgIDQ5ICsrKysrKwogLi4u
L3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dCAgICAgICAgfCAgICA4ICst
CiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZCAgICAgICAgICAgICAgICAgICB8ICAg
IDggKy0KIExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkICAgICAgICAgICAgICAgICAg
IHwgICAgOCArLQogV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgICA0ICsKIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgICA4NiArKysrKysrKysrCiBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2Ug
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKy0KIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMCArLQogV2ViQ29yZS9XZWJDb3JlLmd5
cGkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA5ICstCiBXZWJDb3JlL1dlYkNv
cmUucHJpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogV2ViQ29yZS9X
ZWJDb3JlLnBybyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA4ICstCiBXZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qICAgICAgICAgICAgICB8ICAgODAgKysr
KysrKysrKwogV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogICAgICAg
ICAgfCAgIDM2ICsrKysrCiBXZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvR05VbWFrZWZpbGUuYW0g
ICAgICAgICAgICB8ICAgIDMgKwogV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRWYWx1ZS5jcHAg
ICAgICAgICAgICAgICAgfCAgICA3ICsKIFdlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0VmFsdWUu
aCAgICAgICAgICAgICAgICAgIHwgICAgMyArCiBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckdPYmplY3QucG0gICB8ICAgMTkgKystCiBXZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtICAgICAgICB8ICAgMTEgKysKIFdlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0gICAgICAgIHwgICAxMSArKy0KIC4uLi9XZWJLaXRE
T01UZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgICAgICAgIHwgICAxNyAtLQogLi4uL0dP
YmplY3QvV2ViS2l0RE9NVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCAgfCAgICAzIC0KIC4u
Li90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwICAgICAgIHwgICAgNCAr
LQogLi4uL3Rlc3QvVjgvVjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgICAgICAgfCAg
IDE1ICstCiBXZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdFZhbHVlLmggICAgICAgICAgICAgICAg
ICB8ICAgIDUgKwogV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3QuY3BwICAgICAgICAgICAgICAg
ICAgICAgfCAgMTAwICsrKysrKysrKysrKwogV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3QuaCAg
ICAgICAgICAgICAgICAgICAgICAgfCAgIDcyICsrKysrKysrKwogV2ViQ29yZS9jc3MvTWVkaWFR
dWVyeUxpc3QuaWRsICAgICAgICAgICAgICAgICAgICAgfCAgIDMzICsrKysKIFdlYkNvcmUvY3Nz
L01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwICAgICAgICAgICAgIHwgICA1NiArKysrKysrCiBX
ZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggICAgICAgICAgICAgICB8ICAgNjAg
KysrKysrKwogV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5pZGwgICAgICAgICAg
ICAgfCAgIDM1ICsrKysKIFdlYkNvcmUvY3NzL01lZGlhUXVlcnlNYXRjaGVyLmNwcCAgICAgICAg
ICAgICAgICAgIHwgIDE2NiArKysrKysrKysrKysrKysrKysrKwogV2ViQ29yZS9jc3MvTWVkaWFR
dWVyeU1hdGNoZXIuaCAgICAgICAgICAgICAgICAgICAgfCAgIDk1ICsrKysrKysrKysrCiBXZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTYgKysK
IFdlYkNvcmUvZG9tL0RvY3VtZW50LmggICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg
NyArCiBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAgMTAgKy0KIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuaCAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgICAgNiArLQogV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgICAzICsKIDUzIGZpbGVzIGNoYW5nZWQsIDE1MzMgaW5zZXJ0aW9ucygrKSwg
NDUgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YS9tZWRpYS1xdWVyeS1saXN0LTAxLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExh
eW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMS5odG1sCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAyLWV4cGVj
dGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEt
cXVlcnktbGlzdC0wMi5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAzLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0
IExheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMy5odG1sCiBjcmVhdGUg
bW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA0LWV4
cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVk
aWEtcXVlcnktbGlzdC0wNC5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA1LWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAw
NjQ0IExheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNS5odG1sCiBjcmVh
dGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA2
LWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvbWVkaWEv
bWVkaWEtcXVlcnktbGlzdC0wNi5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA3LWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUg
MTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNy5odG1sCiBt
b2RlIGNoYW5nZSAxMDA2NDQgPT4gMTAwNzU1IFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2oKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdC5j
cHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdC5oCiBjcmVh
dGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3QuaWRsCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKIGNyZWF0ZSBt
b2RlIDEwMDY0NCBXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgKIGNyZWF0ZSBt
b2RlIDEwMDY0NCBXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmlkbAogY3JlYXRl
IG1vZGUgMTAwNjQ0IFdlYkNvcmUvY3NzL01lZGlhUXVlcnlNYXRjaGVyLmNwcAogY3JlYXRlIG1v
ZGUgMTAwNjQ0IFdlYkNvcmUvY3NzL01lZGlhUXVlcnlNYXRjaGVyLmgKCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOTlhNmMy
MC4uYjdkMmRlZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEwLTEwLTIxICBMdWl6IEFnb3N0
aW5pICA8bHVpei5hZ29zdGluaUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBDU1NPTSBWaWV3IG1hdGNoTWVk
aWEgaW50ZXJmYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zNzIwNQorCisgICAgICAgIE5ldyBwcm9wZXJ0eSBtYXRjaE1lZGlhIHdhcyBhZGRlZCB0
byB3aW5kb3cuCisKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHkt
ZGVzY3JpcHRvcnMtZXhwZWN0ZWQudHh0OgorCisgICAgICAgIHdpbmRvdy5tYXRjaE1lZGlhIGFu
ZCBNZWRpYVF1ZXJ5TGlzdCB0ZXN0cy4KKworICAgICAgICAqIGZhc3QvbWVkaWEvbWVkaWEtcXVl
cnktbGlzdC0wMS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWEvbWVk
aWEtcXVlcnktbGlzdC0wMS5odG1sOiBBZGRlZC4KKworICAgICAgICBUaGUgZm9sbG93aW5nIHRl
c3RzIGRlcGVuZCBvbiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0Vmlld01vZGVNZWRpYUZlYXR1
cmUoKSB0byB3b3JrLgorICAgICAgICBBcyBpdCBpcyBvbmx5IGltcGxlbWVudGVkIGJ5IFF0IGFu
ZCBHdGsgdGhlIHRlc3RzIG5lZWRlZCB0byBiZSBza2lwcGVkIGluIGFsbCBvdGhlciBwbGF0Zm9y
bXMuCisKKyAgICAgICAgKiBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDItZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDIuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAzLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAz
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNC1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlz
dC0wNC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3Qt
MDUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5
LWxpc3QtMDUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1s
aXN0LTA2LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYS9tZWRpYS1x
dWVyeS1saXN0LTA2Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWEvbWVkaWEtcXVl
cnktbGlzdC0wNy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWEvbWVk
aWEtcXVlcnktbGlzdC0wNy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1
bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1NraXBwZWQ6
CisgICAgICAgICogcGxhdGZvcm0vd2luL1NraXBwZWQ6CisKIDIwMTAtMTAtMjYgIE1hcnRpbiBS
b2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIEFkZCBiYXNlbGluZXMg
Zm9yIHNvbWUgR1RLKyB0ZXN0cywgdW5za2lwIHBhc3NpbmcgdGVzdHMgYW5kIG9yZ2FuaXplCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0
aWVzLWV4cGVjdGVkLnR4dAppbmRleCA4ZDRhNDBkLi5hNTQwMTBhZiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0
ZWQudHh0CkBAIC0yMjg2LDYgKzIyODYsNyBAQCB3aW5kb3cubG9jYXRpb25iYXIudmlzaWJsZSBb
Ym9vbGVhbl0KIHdpbmRvdy5sb2cgW2Z1bmN0aW9uXQogd2luZG93LmxvZ1Byb3BlcnRpZXMgW2Z1
bmN0aW9uXQogd2luZG93LmxvZ1ZhbHVlIFtmdW5jdGlvbl0KK3dpbmRvdy5tYXRjaE1lZGlhIFtm
dW5jdGlvbl0KIHdpbmRvdy5tZW51YmFyIFtvYmplY3QgQmFySW5mb10KIHdpbmRvdy5tZW51YmFy
LnZpc2libGUgW2Jvb2xlYW5dCiB3aW5kb3cubW92ZUJ5IFtmdW5jdGlvbl0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0
eS1kZXNjcmlwdG9ycy1leHBlY3RlZC50eHQKaW5kZXggYmJiZjRmNy4uYTA5YzI2YSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlw
dG9ycy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRv
dy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy1leHBlY3RlZC50eHQKQEAgLTUwNiw2ICs1MDYsNyBAQCBQ
QVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnZ2V0TWF0Y2hlZENT
U1J1bGVzJykgaXMgdW5kZWZpbmVkLgogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKHdpbmRvdywgJ2dldFNlbGVjdGlvbicpIGlzIHVuZGVmaW5lZC4KIFBBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdoYXNPd25Qcm9wZXJ0eScpIGlzIHVuZGVm
aW5lZC4KIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdpc1By
b3RvdHlwZU9mJykgaXMgdW5kZWZpbmVkLgorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKHdpbmRvdywgJ21hdGNoTWVkaWEnKSBpcyB1bmRlZmluZWQuCiBQQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnbW92ZUJ5JykgaXMgdW5kZWZpbmVkLgog
UEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ21vdmVUbycpIGlz
IHVuZGVmaW5lZC4KIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3cs
ICdvcGVuJykgaXMgdW5kZWZpbmVkLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YS9tZWRpYS1xdWVyeS1saXN0LTAxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVk
aWEvbWVkaWEtcXVlcnktbGlzdC0wMS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uNGViYTNmNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBA
QAorVGVzdCB0aGUgTWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlOiBodHRwOi8vZGV2LnczLm9yZy9j
c3N3Zy9jc3NvbS12aWV3LyN0aGUtbWVkaWFxdWVyeWxpc3QtaW50ZXJmYWNlLgorCisic2NyZWVu
IiBldmFsdWF0ZXMgdG8gdHJ1ZTogUEFTUworInByb2plY3Rpb24iIGV2YWx1YXRlcyB0byBmYWxz
ZTogUEFTUworImFsbCBhbmQgKGNvbG9yKSIgZXZhbHVhdGVzIHRvIHRydWU6IFBBU1MKKyJub3Qg
cHJvamVjdGlvbiBhbmQgKGNvbG9yKSIgZXZhbHVhdGVzIHRvIHRydWU6IFBBU1MKKyIoY29sb3Ip
IiBldmFsdWF0ZXMgdG8gdHJ1ZTogUEFTUworIihjb2xvciIgZXZhbHVhdGVzIHRvIGZhbHNlOiBQ
QVNTCisiY29sb3IiIGV2YWx1YXRlcyB0byBmYWxzZTogUEFTUworImdhcmJhZ2UiIGV2YWx1YXRl
cyB0byBmYWxzZTogUEFTUworIihtaW4tZGV2aWNlLXdpZHRoOiAxMDBweCkiIGV2YWx1YXRlcyB0
byB0cnVlOiBQQVNTCisiKG1pbi1kZXZpY2Utd2lkdGg6IDUwMDAwcHgpIiBldmFsdWF0ZXMgdG8g
ZmFsc2U6IFBBU1MKKyIoLXdlYmtpdC1hbmltYXRpb246IDEpIiBldmFsdWF0ZXMgdG8gdHJ1ZTog
UEFTUworIigtd2Via2l0LXRyYW5zZm9ybS0yZCkiIGV2YWx1YXRlcyB0byB0cnVlOiBQQVNTCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMS5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAxLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzNkY2M2NwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMS5odG1sCkBAIC0w
LDAgKzEsNTIgQEAKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+VGVzdCBDU1NPTSBWaWV3IG1vZHVs
ZTogTWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlPC90aXRsZT4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2Nz
cyI+CisKKzwvc3R5bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0i
dXRmLTgiPgorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworICAgIGZ1bmN0aW9uIGxvZyhtKQor
ICAgIHsKKyAgICAgICAgdmFyIHJlc3VsdHMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVz
dWx0cycpOworICAgICAgICByZXN1bHRzLmlubmVySFRNTCArPSBtICsgJzxicj4nOworICAgIH0K
KworICAgIGZ1bmN0aW9uIHRlc3RRdWVyeShxdWVyeSwgZXhwZWN0ZWQpCisgICAgeworICAgICAg
ICB2YXIgaXNUcnVlID0gd2luZG93Lm1hdGNoTWVkaWEocXVlcnkpLm1hdGNoZXM7CisgICAgICAg
IHZhciBtZXNzYWdlID0gJ1wiJyArIHF1ZXJ5ICsgJ1wiIGV2YWx1YXRlcyB0byAnICsgKGlzVHJ1
ZSA/ICd0cnVlJyA6ICdmYWxzZScpOworICAgICAgICBtZXNzYWdlICs9IChpc1RydWUgPT0gZXhw
ZWN0ZWQpID8gJzogUEFTUycgOiAnOiBGQUlMJzsKKyAgICAgICAgbG9nKG1lc3NhZ2UpOworICAg
IH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3RzKCkKKyAgICB7CisgICAgICAgIHRlc3RRdWVyeSgn
c2NyZWVuJywgdHJ1ZSk7CisgICAgICAgIHRlc3RRdWVyeSgncHJvamVjdGlvbicsIGZhbHNlKTsK
KworICAgICAgICB0ZXN0UXVlcnkoJ2FsbCBhbmQgKGNvbG9yKScsIHRydWUpOworICAgICAgICB0
ZXN0UXVlcnkoJ25vdCBwcm9qZWN0aW9uIGFuZCAoY29sb3IpJywgdHJ1ZSk7CisgICAgICAgIHRl
c3RRdWVyeSgnKGNvbG9yKScsIHRydWUpOworICAgICAgICB0ZXN0UXVlcnkoJyhjb2xvcicsIGZh
bHNlKTsKKyAgICAgICAgdGVzdFF1ZXJ5KCdjb2xvcicsIGZhbHNlKTsKKworICAgICAgICB0ZXN0
UXVlcnkoJ2dhcmJhZ2UnLCBmYWxzZSk7CisKKyAgICAgICAgdGVzdFF1ZXJ5KCcobWluLWRldmlj
ZS13aWR0aDogMTAwcHgpJywgdHJ1ZSk7CisgICAgICAgIHRlc3RRdWVyeSgnKG1pbi1kZXZpY2Ut
d2lkdGg6IDUwMDAwcHgpJywgZmFsc2UpOworCisgICAgICAgIHRlc3RRdWVyeSgnKC13ZWJraXQt
YW5pbWF0aW9uOiAxKScsIHRydWUpOworICAgICAgICB0ZXN0UXVlcnkoJygtd2Via2l0LXRyYW5z
Zm9ybS0yZCknLCB0cnVlKTsKKyAgICB9CisKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25s
b2FkPSJydW5UZXN0cygpIj4KKyAgICA8cD5UZXN0IHRoZSBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZh
Y2U6IDxhIGhyZWY9Imh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzc29tLXZpZXcvI3RoZS1tZWRp
YXF1ZXJ5bGlzdC1pbnRlcmZhY2UiIHRpdGxlPSJDU1NPTSBWaWV3IE1vZHVsZSI+aHR0cDovL2Rl
di53My5vcmcvY3Nzd2cvY3Nzb20tdmlldy8jdGhlLW1lZGlhcXVlcnlsaXN0LWludGVyZmFjZTwv
YT4uPC9wPgorICAgIDxkaXYgaWQ9InJlc3VsdHMiPgorICAgIDwvZGl2PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0
LTAyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlz
dC0wMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjM2
NDNkOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVl
cnktbGlzdC0wMi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNSBAQAorVGVzdCB0aGUgTWVkaWFR
dWVyeUxpc3QgaW50ZXJmYWNlOiBodHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9jc3NvbS12aWV3LyN0
aGUtbWVkaWFxdWVyeWxpc3QtaW50ZXJmYWNlLgorCitUZXN0aW5nIGFkZExpc3RlbmVyIGluIGRp
ZmZlcmVudCBNZWRpYVF1ZXJ5TGlzdCBvYmplY3RzIGFuZCB0aGUgY2FsbGJhY2sgY2FsbCBzZXF1
ZW5jZQorCistLS0tLS0tLS0tLS0tIG1pbmltaXplZCAtLS0tLS0tLS0tLS0tCitbMV0gLSBxdWVy
eSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFuZ2VkIHRvIGZhbHNlCitbMV0gLSBx
dWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCkgY2hhbmdlZCB0byB0cnVlCitbMl0g
LSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFuZ2VkIHRvIGZhbHNlCitb
Ml0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCkgY2hhbmdlZCB0byB0cnVl
CistLS0tLS0tLS0tLS0tIG1heGltaXplZCAtLS0tLS0tLS0tLS0tCitbMV0gLSBxdWVyeSAoLXdl
YmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCkgY2hhbmdlZCB0byBmYWxzZQorWzFdIC0gcXVlcnkg
KC13ZWJraXQtdmlldy1tb2RlOiBtYXhpbWl6ZWQpIGNoYW5nZWQgdG8gdHJ1ZQorWzJdIC0gcXVl
cnkgKC13ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQpIGNoYW5nZWQgdG8gZmFsc2UKK1syXSAt
IHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWF4aW1pemVkKSBjaGFuZ2VkIHRvIHRydWUKKy0t
LS0tLS0tLS0tLS0gd2luZG93ZWQgLS0tLS0tLS0tLS0tLQorWzFdIC0gcXVlcnkgKC13ZWJraXQt
dmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0byB0cnVlCitbMV0gLSBxdWVyeSAoLXdlYmtp
dC12aWV3LW1vZGU6IG1heGltaXplZCkgY2hhbmdlZCB0byBmYWxzZQorWzJdIC0gcXVlcnkgKC13
ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0byB0cnVlCitbMl0gLSBxdWVyeSAo
LXdlYmtpdC12aWV3LW1vZGU6IG1heGltaXplZCkgY2hhbmdlZCB0byBmYWxzZQorLS0tLS0tLS0t
LS0tLSBmbG9hdGluZyAtLS0tLS0tLS0tLS0tCitbMV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1v
ZGU6IHdpbmRvd2VkKSBjaGFuZ2VkIHRvIGZhbHNlCitbMV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3
LW1vZGU6IGZsb2F0aW5nKSBjaGFuZ2VkIHRvIHRydWUKK1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZp
ZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQgdG8gZmFsc2UKK1syXSAtIHF1ZXJ5ICgtd2Via2l0
LXZpZXctbW9kZTogZmxvYXRpbmcpIGNoYW5nZWQgdG8gdHJ1ZQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDIuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjcwOTNjYTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDIuaHRtbApAQCAtMCwwICsxLDYzIEBACis8aHRt
bD4KKzxoZWFkPgorPHRpdGxlPlRlc3QgQ1NTT00gVmlldyBtb2R1bGU6IE1lZGlhUXVlcnlMaXN0
IGludGVyZmFjZTwvdGl0bGU+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorCis8L3N0eWxlPgor
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7CisKKyAgICBmdW5jdGlvbiBsb2cobSkgeworICAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgncmVzdWx0cycpLmlubmVySFRNTCArPSBtICsgJzxicj4nOworICAg
IH0KKworICAgIGZ1bmN0aW9uIGNhbGxiYWNrMShxdWVyeSkgeworICAgICAgICBsb2coIlsxXSAt
IHF1ZXJ5ICIgKyBxdWVyeS5tZWRpYSArICIgY2hhbmdlZCB0byAiICsgKHF1ZXJ5Lm1hdGNoZXMg
PyAidHJ1ZSIgOiAiZmFsc2UiKSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gY2FsbGJhY2syKHF1
ZXJ5KSB7CisgICAgICAgIGxvZygiWzJdIC0gcXVlcnkgIiArIHF1ZXJ5Lm1lZGlhICsgIiBjaGFu
Z2VkIHRvICIgKyAocXVlcnkubWF0Y2hlcyA/ICJ0cnVlIiA6ICJmYWxzZSIpKTsKKyAgICB9CisK
KyAgICBmdW5jdGlvbiBydW5UZXN0cygpCisgICAgeworICAgICAgICBpZiAoIXdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSgid2luZG93ZWQiKTsKKworICAg
ICAgICB3aW5kb3dlZFF1ZXJ5ID0gd2luZG93Lm1hdGNoTWVkaWEoIigtd2Via2l0LXZpZXctbW9k
ZTogd2luZG93ZWQpIik7CisgICAgICAgIGZsb2F0aW5nUXVlcnkgPSB3aW5kb3cubWF0Y2hNZWRp
YSgiKC13ZWJraXQtdmlldy1tb2RlOiBmbG9hdGluZykiKTsKKyAgICAgICAgbWluaW1pemVkUXVl
cnkgPSB3aW5kb3cubWF0Y2hNZWRpYSgiKC13ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQpIik7
CisgICAgICAgIG1heGltaXplZFF1ZXJ5ID0gd2luZG93Lm1hdGNoTWVkaWEoIigtd2Via2l0LXZp
ZXctbW9kZTogbWF4aW1pemVkKSIpOworCisgICAgICAgIHdpbmRvd2VkUXVlcnkuYWRkTGlzdGVu
ZXIoY2FsbGJhY2sxKTsKKyAgICAgICAgZmxvYXRpbmdRdWVyeS5hZGRMaXN0ZW5lcihjYWxsYmFj
azEpOworICAgICAgICBtaW5pbWl6ZWRRdWVyeS5hZGRMaXN0ZW5lcihjYWxsYmFjazEpOworICAg
ICAgICBtYXhpbWl6ZWRRdWVyeS5hZGRMaXN0ZW5lcihjYWxsYmFjazEpOworCisgICAgICAgIHdp
bmRvd2VkUXVlcnkuYWRkTGlzdGVuZXIoY2FsbGJhY2syKTsKKyAgICAgICAgZmxvYXRpbmdRdWVy
eS5hZGRMaXN0ZW5lcihjYWxsYmFjazIpOworICAgICAgICBtaW5pbWl6ZWRRdWVyeS5hZGRMaXN0
ZW5lcihjYWxsYmFjazIpOworICAgICAgICBtYXhpbWl6ZWRRdWVyeS5hZGRMaXN0ZW5lcihjYWxs
YmFjazIpOworCisgICAgICAgIGxvZygiLS0tLS0tLS0tLS0tLSBtaW5pbWl6ZWQgLS0tLS0tLS0t
LS0tLSIpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9kZU1lZGlhRmVh
dHVyZSgibWluaW1pemVkIik7CisgICAgICAgIGxvZygiLS0tLS0tLS0tLS0tLSBtYXhpbWl6ZWQg
LS0tLS0tLS0tLS0tLSIpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9k
ZU1lZGlhRmVhdHVyZSgibWF4aW1pemVkIik7CisgICAgICAgIGxvZygiLS0tLS0tLS0tLS0tLSB3
aW5kb3dlZCAtLS0tLS0tLS0tLS0tIik7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNl
dFZpZXdNb2RlTWVkaWFGZWF0dXJlKCJ3aW5kb3dlZCIpOworICAgICAgICBsb2coIi0tLS0tLS0t
LS0tLS0gZmxvYXRpbmcgLS0tLS0tLS0tLS0tLSIpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSgiZmxvYXRpbmciKTsKKyAgICB9CisKKzwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0cygpIj4KKyAgICA8cD5UZXN0IHRo
ZSBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U6IDxhIGhyZWY9Imh0dHA6Ly9kZXYudzMub3JnL2Nz
c3dnL2Nzc29tLXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2UiIHRpdGxlPSJDU1NP
TSBWaWV3IE1vZHVsZSI+aHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3Nzb20tdmlldy8jdGhlLW1l
ZGlhcXVlcnlsaXN0LWludGVyZmFjZTwvYT4uPC9wPgorICAgIDxwPlRlc3RpbmcgYWRkTGlzdGVu
ZXIgaW4gZGlmZmVyZW50IE1lZGlhUXVlcnlMaXN0IG9iamVjdHMgYW5kIHRoZSBjYWxsYmFjayBj
YWxsIHNlcXVlbmNlPC9wPgorICAgIDxkaXYgaWQ9InJlc3VsdHMiPgorICAgIDwvZGl2PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1x
dWVyeS1saXN0LTAzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEt
cXVlcnktbGlzdC0wMy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uZjI0ZTIwNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEv
bWVkaWEtcXVlcnktbGlzdC0wMy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0MSBAQAorVGVzdCB0
aGUgTWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlOiBodHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9jc3Nv
bS12aWV3LyN0aGUtbWVkaWFxdWVyeWxpc3QtaW50ZXJmYWNlLgorCitUZXN0aW5nIHJlbW92ZUxp
c3RlbmVyIGluIGRpZmZlcmVudCBNZWRpYVF1ZXJ5TGlzdCBvYmplY3RzIGFuZCB0aGUgY2FsbGJh
Y2sgY2FsbCBzZXF1ZW5jZQorCithZGRpbmcgd2luZG93ZWRbMV0sIG1pbmltaXplZFsxXSwgd2lu
ZG93ZWRbMl0gYW5kIG1pbmltaXplZFsyXQorCistLS0tLS0tLS0tLS0tIG1pbmltaXplZCAtLS0t
LS0tLS0tLS0tCitbMV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFu
Z2VkIHRvIGZhbHNlCitbMV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCkg
Y2hhbmdlZCB0byB0cnVlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2Vk
KSBjaGFuZ2VkIHRvIGZhbHNlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmlt
aXplZCkgY2hhbmdlZCB0byB0cnVlCistLS0tLS0tLS0tLS0tIHdpbmRvd2VkIC0tLS0tLS0tLS0t
LS0KK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQgdG8g
dHJ1ZQorWzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQpIGNoYW5nZWQg
dG8gZmFsc2UKK1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5n
ZWQgdG8gdHJ1ZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQpIGNo
YW5nZWQgdG8gZmFsc2UKKworCityZW1vdmluZyB3aW5kb3dlZFsxXSBhbmQgbWluaW1pemVkWzJd
CisKKy0tLS0tLS0tLS0tLS0gbWluaW1pemVkIC0tLS0tLS0tLS0tLS0KK1sxXSAtIHF1ZXJ5ICgt
d2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSBjaGFuZ2VkIHRvIHRydWUKK1syXSAtIHF1ZXJ5
ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQgdG8gZmFsc2UKKy0tLS0tLS0t
LS0tLS0gd2luZG93ZWQgLS0tLS0tLS0tLS0tLQorWzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1t
b2RlOiBtaW5pbWl6ZWQpIGNoYW5nZWQgdG8gZmFsc2UKK1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZp
ZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQgdG8gdHJ1ZQorCisKK2FkZGluZyB3aW5kb3dlZFsx
XSBhbmQgbWluaW1pemVkWzJdCisKKy0tLS0tLS0tLS0tLS0gbWluaW1pemVkIC0tLS0tLS0tLS0t
LS0KK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSBjaGFuZ2VkIHRv
IHRydWUKK1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQg
dG8gZmFsc2UKK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5n
ZWQgdG8gZmFsc2UKK1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSBj
aGFuZ2VkIHRvIHRydWUKKy0tLS0tLS0tLS0tLS0gd2luZG93ZWQgLS0tLS0tLS0tLS0tLQorWzFd
IC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQpIGNoYW5nZWQgdG8gZmFsc2UK
K1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQgdG8gdHJ1
ZQorWzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0byB0
cnVlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCkgY2hhbmdlZCB0
byBmYWxzZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5
LWxpc3QtMDMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0w
My5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgzM2JkZGUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMu
aHRtbApAQCAtMCwwICsxLDcyIEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPlRlc3QgQ1NTT00g
VmlldyBtb2R1bGU6IE1lZGlhUXVlcnlMaXN0IGludGVyZmFjZTwvdGl0bGU+Cis8c3R5bGUgdHlw
ZT0idGV4dC9jc3MiPgorCis8L3N0eWxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IGNoYXJzZXQ9InV0Zi04Ij4KKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQor
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyAgICBmdW5jdGlv
biBsb2cobSkgeworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0cycpLmlu
bmVySFRNTCArPSBtICsgJzxicj4nOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNhbGxiYWNrMShx
dWVyeSkgeworICAgICAgICBsb2coIlsxXSAtIHF1ZXJ5ICIgKyBxdWVyeS5tZWRpYSArICIgY2hh
bmdlZCB0byAiICsgKHF1ZXJ5Lm1hdGNoZXMgPyAidHJ1ZSIgOiAiZmFsc2UiKSk7CisgICAgfQor
CisgICAgZnVuY3Rpb24gY2FsbGJhY2syKHF1ZXJ5KSB7CisgICAgICAgIGxvZygiWzJdIC0gcXVl
cnkgIiArIHF1ZXJ5Lm1lZGlhICsgIiBjaGFuZ2VkIHRvICIgKyAocXVlcnkubWF0Y2hlcyA/ICJ0
cnVlIiA6ICJmYWxzZSIpKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0cygpCisgICAg
eworICAgICAgICBpZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAg
IHJldHVybjsKKworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9kZU1lZGlh
RmVhdHVyZSgid2luZG93ZWQiKTsKKworICAgICAgICB3aW5kb3dlZFF1ZXJ5ID0gd2luZG93Lm1h
dGNoTWVkaWEoIigtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIik7CisgICAgICAgIG1pbmlt
aXplZFF1ZXJ5ID0gd2luZG93Lm1hdGNoTWVkaWEoIigtd2Via2l0LXZpZXctbW9kZTogbWluaW1p
emVkKSIpOworCisgICAgICAgIGxvZygiYWRkaW5nIHdpbmRvd2VkWzFdLCBtaW5pbWl6ZWRbMV0s
IHdpbmRvd2VkWzJdIGFuZCBtaW5pbWl6ZWRbMl08YnI+Iik7CisgICAgICAgIHdpbmRvd2VkUXVl
cnkuYWRkTGlzdGVuZXIoY2FsbGJhY2sxKTsKKyAgICAgICAgbWluaW1pemVkUXVlcnkuYWRkTGlz
dGVuZXIoY2FsbGJhY2sxKTsKKyAgICAgICAgd2luZG93ZWRRdWVyeS5hZGRMaXN0ZW5lcihjYWxs
YmFjazIpOworICAgICAgICBtaW5pbWl6ZWRRdWVyeS5hZGRMaXN0ZW5lcihjYWxsYmFjazIpOwor
CisgICAgICAgIGxvZygiLS0tLS0tLS0tLS0tLSBtaW5pbWl6ZWQgLS0tLS0tLS0tLS0tLSIpOwor
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSgibWlu
aW1pemVkIik7CisgICAgICAgIGxvZygiLS0tLS0tLS0tLS0tLSB3aW5kb3dlZCAtLS0tLS0tLS0t
LS0tIik7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0
dXJlKCJ3aW5kb3dlZCIpOworCisgICAgICAgIGxvZygiPGJyPjxicj5yZW1vdmluZyB3aW5kb3dl
ZFsxXSBhbmQgbWluaW1pemVkWzJdPGJyPiIpOworICAgICAgICB3aW5kb3dlZFF1ZXJ5LnJlbW92
ZUxpc3RlbmVyKGNhbGxiYWNrMSk7CisgICAgICAgIG1pbmltaXplZFF1ZXJ5LnJlbW92ZUxpc3Rl
bmVyKGNhbGxiYWNrMik7CisKKyAgICAgICAgbG9nKCItLS0tLS0tLS0tLS0tIG1pbmltaXplZCAt
LS0tLS0tLS0tLS0tIik7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFZpZXdNb2Rl
TWVkaWFGZWF0dXJlKCJtaW5pbWl6ZWQiKTsKKyAgICAgICAgbG9nKCItLS0tLS0tLS0tLS0tIHdp
bmRvd2VkIC0tLS0tLS0tLS0tLS0iKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0
Vmlld01vZGVNZWRpYUZlYXR1cmUoIndpbmRvd2VkIik7CisKKyAgICAgICAgbG9nKCI8YnI+PGJy
PmFkZGluZyB3aW5kb3dlZFsxXSBhbmQgbWluaW1pemVkWzJdPGJyPiIpOworICAgICAgICB3aW5k
b3dlZFF1ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNrMSk7CisgICAgICAgIG1pbmltaXplZFF1ZXJ5
LmFkZExpc3RlbmVyKGNhbGxiYWNrMik7CisKKyAgICAgICAgbG9nKCItLS0tLS0tLS0tLS0tIG1p
bmltaXplZCAtLS0tLS0tLS0tLS0tIik7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNl
dFZpZXdNb2RlTWVkaWFGZWF0dXJlKCJtaW5pbWl6ZWQiKTsKKyAgICAgICAgbG9nKCItLS0tLS0t
LS0tLS0tIHdpbmRvd2VkIC0tLS0tLS0tLS0tLS0iKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoIndpbmRvd2VkIik7CisKKyAgICB9CisKKzwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0cygpIj4KKyAgICA8cD5UZXN0
IHRoZSBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U6IDxhIGhyZWY9Imh0dHA6Ly9kZXYudzMub3Jn
L2Nzc3dnL2Nzc29tLXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2UiIHRpdGxlPSJD
U1NPTSBWaWV3IE1vZHVsZSI+aHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3Nzb20tdmlldy8jdGhl
LW1lZGlhcXVlcnlsaXN0LWludGVyZmFjZTwvYT4uPC9wPgorICAgIDxwPlRlc3RpbmcgcmVtb3Zl
TGlzdGVuZXIgaW4gZGlmZmVyZW50IE1lZGlhUXVlcnlMaXN0IG9iamVjdHMgYW5kIHRoZSBjYWxs
YmFjayBjYWxsIHNlcXVlbmNlPC9wPgorICAgIDxkaXYgaWQ9InJlc3VsdHMiPgorICAgIDwvZGl2
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9t
ZWRpYS1xdWVyeS1saXN0LTA0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEv
bWVkaWEtcXVlcnktbGlzdC0wNC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uM2E2ZDBkYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
bWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNSBAQAor
VGVzdCB0aGUgTWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlOiBodHRwOi8vZGV2LnczLm9yZy9jc3N3
Zy9jc3NvbS12aWV3LyN0aGUtbWVkaWFxdWVyeWxpc3QtaW50ZXJmYWNlLgorCitUZXN0aW5nIHBh
Z2UgY2FjaGUKKworLS0tLS0tLS0tLS0tLSBtaW5pbWl6ZWQgLS0tLS0tLS0tLS0tLQorWzFdIC0g
cXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0byBmYWxzZQorWzFd
IC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQpIGNoYW5nZWQgdG8gdHJ1ZQor
WzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0byBmYWxz
ZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQpIGNoYW5nZWQgdG8g
dHJ1ZQorLS0tLS0tLS0tLS0tLSBtYXhpbWl6ZWQgLS0tLS0tLS0tLS0tLQorWzFdIC0gcXVlcnkg
KC13ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQpIGNoYW5nZWQgdG8gZmFsc2UKK1sxXSAtIHF1
ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWF4aW1pemVkKSBjaGFuZ2VkIHRvIHRydWUKK1syXSAt
IHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSBjaGFuZ2VkIHRvIGZhbHNlCitb
Ml0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1heGltaXplZCkgY2hhbmdlZCB0byB0cnVl
CistLS0tLS0tLS0tLS0tIHdpbmRvd2VkIC0tLS0tLS0tLS0tLS0KK1sxXSAtIHF1ZXJ5ICgtd2Vi
a2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQgdG8gdHJ1ZQorWzFdIC0gcXVlcnkgKC13
ZWJraXQtdmlldy1tb2RlOiBtYXhpbWl6ZWQpIGNoYW5nZWQgdG8gZmFsc2UKK1syXSAtIHF1ZXJ5
ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQgdG8gdHJ1ZQorWzJdIC0gcXVl
cnkgKC13ZWJraXQtdmlldy1tb2RlOiBtYXhpbWl6ZWQpIGNoYW5nZWQgdG8gZmFsc2UKKy0tLS0t
LS0tLS0tLS0gZmxvYXRpbmcgLS0tLS0tLS0tLS0tLQorWzFdIC0gcXVlcnkgKC13ZWJraXQtdmll
dy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0byBmYWxzZQorWzFdIC0gcXVlcnkgKC13ZWJraXQt
dmlldy1tb2RlOiBmbG9hdGluZykgY2hhbmdlZCB0byB0cnVlCitbMl0gLSBxdWVyeSAoLXdlYmtp
dC12aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFuZ2VkIHRvIGZhbHNlCitbMl0gLSBxdWVyeSAoLXdl
YmtpdC12aWV3LW1vZGU6IGZsb2F0aW5nKSBjaGFuZ2VkIHRvIHRydWUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA0Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5hODc3YTVhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA0Lmh0bWwKQEAgLTAsMCArMSw3NSBAQAor
PGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5UZXN0IENTU09NIFZpZXcgbW9kdWxlOiBNZWRpYVF1ZXJ5
TGlzdCBpbnRlcmZhY2U8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNo
YXJzZXQ9InV0Zi04Ij4KKworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsK
KyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0VXNlc1BhZ2VDYWNoZVByZWZlcmVuY2VL
ZXkiLCAxKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBsb2cobSkgeworICAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgncmVzdWx0cycpLmlubmVySFRNTCArPSBtICsgJzxicj4nOworICAg
IH0KKworICAgIGZ1bmN0aW9uIGNhbGxiYWNrMShxdWVyeSkgeworICAgICAgICBsb2coIlsxXSAt
IHF1ZXJ5ICIgKyBxdWVyeS5tZWRpYSArICIgY2hhbmdlZCB0byAiICsgKHF1ZXJ5Lm1hdGNoZXMg
PyAidHJ1ZSIgOiAiZmFsc2UiKSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gY2FsbGJhY2syKHF1
ZXJ5KSB7CisgICAgICAgIGxvZygiWzJdIC0gcXVlcnkgIiArIHF1ZXJ5Lm1lZGlhICsgIiBjaGFu
Z2VkIHRvICIgKyAocXVlcnkubWF0Y2hlcyA/ICJ0cnVlIiA6ICJmYWxzZSIpKTsKKyAgICB9CisK
KyAgICBmdW5jdGlvbiBwYWdlc2hvdyhldnQpCisgICAgeworICAgICAgICBpZiAoIWV2dC5wZXJz
aXN0ZWQpIHsKKyAgICAgICAgICAgIC8vIHRoaXMgd2lsbCBydW4gb25seSB3aGVuIHRoZSBwYWdl
IGlzIGxvYWRlZCBmb3IgdGhlIGZpcnN0IHRpbWUuCisKKyAgICAgICAgICAgIHdpbmRvd2VkUXVl
cnkgPSB3aW5kb3cubWF0Y2hNZWRpYSgiKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkiKTsK
KyAgICAgICAgICAgIGZsb2F0aW5nUXVlcnkgPSB3aW5kb3cubWF0Y2hNZWRpYSgiKC13ZWJraXQt
dmlldy1tb2RlOiBmbG9hdGluZykiKTsKKyAgICAgICAgICAgIG1pbmltaXplZFF1ZXJ5ID0gd2lu
ZG93Lm1hdGNoTWVkaWEoIigtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSIpOworICAgICAg
ICAgICAgbWF4aW1pemVkUXVlcnkgPSB3aW5kb3cubWF0Y2hNZWRpYSgiKC13ZWJraXQtdmlldy1t
b2RlOiBtYXhpbWl6ZWQpIik7CisKKyAgICAgICAgICAgIHdpbmRvd2VkUXVlcnkuYWRkTGlzdGVu
ZXIoY2FsbGJhY2sxKTsKKyAgICAgICAgICAgIGZsb2F0aW5nUXVlcnkuYWRkTGlzdGVuZXIoY2Fs
bGJhY2sxKTsKKyAgICAgICAgICAgIG1pbmltaXplZFF1ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNr
MSk7CisgICAgICAgICAgICBtYXhpbWl6ZWRRdWVyeS5hZGRMaXN0ZW5lcihjYWxsYmFjazEpOwor
CisgICAgICAgICAgICB3aW5kb3dlZFF1ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNrMik7CisgICAg
ICAgICAgICBmbG9hdGluZ1F1ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNrMik7CisgICAgICAgICAg
ICBtaW5pbWl6ZWRRdWVyeS5hZGRMaXN0ZW5lcihjYWxsYmFjazIpOworICAgICAgICAgICAgbWF4
aW1pemVkUXVlcnkuYWRkTGlzdGVuZXIoY2FsbGJhY2syKTsKKworICAgICAgICAgICAgc2V0VGlt
ZW91dCgnd2luZG93LmxvY2F0aW9uID0gImRhdGE6dGV4dC9odG1sLDxzY3JpcHQ+aGlzdG9yeS5i
YWNrKCk8IiArICIvc2NyaXB0PiInLCAwKTsKKworICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgLy8gaWYgdGhpcyBwb2ludCBpcyByZWFjaGVkIHRoZSBwYWdlIGlzIGNvbW1pbmcgZnJvbSB0
aGUgcGFnZSBjYWNoZS4KKworICAgICAgICAgICAgbG9nKCItLS0tLS0tLS0tLS0tIG1pbmltaXpl
ZCAtLS0tLS0tLS0tLS0tIik7CisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRW
aWV3TW9kZU1lZGlhRmVhdHVyZSgibWluaW1pemVkIik7CisgICAgICAgICAgICBsb2coIi0tLS0t
LS0tLS0tLS0gbWF4aW1pemVkIC0tLS0tLS0tLS0tLS0iKTsKKyAgICAgICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCJtYXhpbWl6ZWQiKTsKKyAgICAg
ICAgICAgIGxvZygiLS0tLS0tLS0tLS0tLSB3aW5kb3dlZCAtLS0tLS0tLS0tLS0tIik7CisgICAg
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSgid2lu
ZG93ZWQiKTsKKyAgICAgICAgICAgIGxvZygiLS0tLS0tLS0tLS0tLSBmbG9hdGluZyAtLS0tLS0t
LS0tLS0tIik7CisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9kZU1l
ZGlhRmVhdHVyZSgiZmxvYXRpbmciKTsKKworICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlv
bigpIHsgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgbGF5b3V0VGVzdENvbnRyb2xs
ZXIubm90aWZ5RG9uZSgpOyB9LCAwKTsKKworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSgid2luZG93ZWQiKTsKKyAgICAgICAgd2luZG93Lm9u
cGFnZXNob3cgPSBwYWdlc2hvdzsKKyAgICB9CisKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
CisgICAgPHA+VGVzdCB0aGUgTWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlOiA8YSBocmVmPSJodHRw
Oi8vZGV2LnczLm9yZy9jc3N3Zy9jc3NvbS12aWV3LyN0aGUtbWVkaWFxdWVyeWxpc3QtaW50ZXJm
YWNlIiB0aXRsZT0iQ1NTT00gVmlldyBNb2R1bGUiPmh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nz
c29tLXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2U8L2E+LjwvcD4KKyAgICA8cD5U
ZXN0aW5nIHBhZ2UgY2FjaGU8L3A+CisgICAgPGRpdiBpZD0icmVzdWx0cyI+PC9kaXY+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1
ZXJ5LWxpc3QtMDUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1x
dWVyeS1saXN0LTA1LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi4wNDdlMTA2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9t
ZWRpYS1xdWVyeS1saXN0LTA1LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK1Rlc3QgdGhl
IE1lZGlhUXVlcnlMaXN0IGludGVyZmFjZTogaHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3Nzb20t
dmlldy8jdGhlLW1lZGlhcXVlcnlsaXN0LWludGVyZmFjZS4KKworVGVzdGluZyBsaXN0ZW5lciBj
b21wYXJpc29uLiBUd28gY2FsbGJhY2tzIGFyZSBleHBlY3RlZC4KKworWzFdIC0gcXVlcnkgKC13
ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0byBmYWxzZQorWzJdIC0gcXVlcnkg
KC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0byBmYWxzZQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDUuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZiNjZiMGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDUuaHRtbApAQCAtMCwwICsxLDQ3
IEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPlRlc3QgQ1NTT00gVmlldyBtb2R1bGU6IE1lZGlh
UXVlcnlMaXN0IGludGVyZmFjZTwvdGl0bGU+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorCis8
L3N0eWxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4K
KyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyAgICBmdW5jdGlvbiBsb2cobSkgeworICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0cycpLmlubmVySFRNTCArPSBtICsgJzxi
cj4nOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNhbGxiYWNrMShxdWVyeSkgeworICAgICAgICBs
b2coIlsxXSAtIHF1ZXJ5ICIgKyBxdWVyeS5tZWRpYSArICIgY2hhbmdlZCB0byAiICsgKHF1ZXJ5
Lm1hdGNoZXMgPyAidHJ1ZSIgOiAiZmFsc2UiKSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gY2Fs
bGJhY2syKHF1ZXJ5KSB7CisgICAgICAgIGxvZygiWzJdIC0gcXVlcnkgIiArIHF1ZXJ5Lm1lZGlh
ICsgIiBjaGFuZ2VkIHRvICIgKyAocXVlcnkubWF0Y2hlcyA/ICJ0cnVlIiA6ICJmYWxzZSIpKTsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0cygpCisgICAgeworICAgICAgICBpZiAoIXdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSgid2luZG93ZWQi
KTsKKworICAgICAgICB2YXIgcXVlcnkgPSB3aW5kb3cubWF0Y2hNZWRpYSgiKC13ZWJraXQtdmll
dy1tb2RlOiB3aW5kb3dlZCkiKTsKKworICAgICAgICBxdWVyeS5hZGRMaXN0ZW5lcihjYWxsYmFj
azEpOworICAgICAgICBxdWVyeS5hZGRMaXN0ZW5lcihjYWxsYmFjazEpOworICAgICAgICBxdWVy
eS5hZGRMaXN0ZW5lcihjYWxsYmFjazIpOworCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCJtaW5pbWl6ZWQiKTsKKyAgICB9CisKKzwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0cygpIj4KKyAgICA8cD5UZXN0IHRoZSBN
ZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U6IDxhIGhyZWY9Imh0dHA6Ly9kZXYudzMub3JnL2Nzc3dn
L2Nzc29tLXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2UiIHRpdGxlPSJDU1NPTSBW
aWV3IE1vZHVsZSI+aHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3Nzb20tdmlldy8jdGhlLW1lZGlh
cXVlcnlsaXN0LWludGVyZmFjZTwvYT4uPC9wPgorICAgIDxwPlRlc3RpbmcgbGlzdGVuZXIgY29t
cGFyaXNvbi4gVHdvIGNhbGxiYWNrcyBhcmUgZXhwZWN0ZWQuPC9wPgorICAgIDxkaXYgaWQ9InJl
c3VsdHMiPgorICAgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA2LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNi1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWM2NTQ2NQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNi1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw3IEBACitUZXN0IHRoZSBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U6IGh0dHA6
Ly9kZXYudzMub3JnL2Nzc3dnL2Nzc29tLXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZh
Y2UuCisKK1Rlc3RpbmcgcXVlcmllcyB0aGF0IGhhdmUgbm8gcmVnaXN0ZXJlZCBsaXN0ZW5lci4K
KworUXVlcnkgcmVzdWx0IGJlZm9yZSBjaGFuZ2luZyB2aWV3LW1vZGU6IHRydWUKK1F1ZXJ5IHJl
c3VsdCBhZnRlciBjaGFuZ2luZyB2aWV3LW1vZGU6IGZhbHNlCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNi5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA2Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uNTkxM2U1NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNi5odG1sCkBAIC0wLDAgKzEsMzYgQEAKKzxodG1s
PgorPGhlYWQ+Cis8dGl0bGU+VGVzdCBDU1NPTSBWaWV3IG1vZHVsZTogTWVkaWFRdWVyeUxpc3Qg
aW50ZXJmYWNlPC90aXRsZT4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisKKzwvc3R5bGU+Cis8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgorICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKKworICAgIGZ1bmN0aW9uIGxvZyhtKSB7CisgICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdyZXN1bHRzJykuaW5uZXJIVE1MICs9IG0gKyAnPGJyPic7CisgICAg
fQorCisgICAgZnVuY3Rpb24gcnVuVGVzdHMoKQorICAgIHsKKyAgICAgICAgaWYgKCF3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoIndpbmRvd2VkIik7CisK
KyAgICAgICAgdmFyIHF1ZXJ5ID0gd2luZG93Lm1hdGNoTWVkaWEoIigtd2Via2l0LXZpZXctbW9k
ZTogd2luZG93ZWQpIik7CisgICAgICAgIGxvZygnUXVlcnkgcmVzdWx0IGJlZm9yZSBjaGFuZ2lu
ZyB2aWV3LW1vZGU6ICcgKyBxdWVyeS5tYXRjaGVzKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoIm1pbmltaXplZCIpOworICAgICAgICBsb2co
J1F1ZXJ5IHJlc3VsdCBhZnRlciBjaGFuZ2luZyB2aWV3LW1vZGU6ICcgKyBxdWVyeS5tYXRjaGVz
KTsKKyAgICB9CisKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0cygp
Ij4KKyAgICA8cD5UZXN0IHRoZSBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U6IDxhIGhyZWY9Imh0
dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzc29tLXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRl
cmZhY2UiIHRpdGxlPSJDU1NPTSBWaWV3IE1vZHVsZSI+aHR0cDovL2Rldi53My5vcmcvY3Nzd2cv
Y3Nzb20tdmlldy8jdGhlLW1lZGlhcXVlcnlsaXN0LWludGVyZmFjZTwvYT4uPC9wPgorICAgIDxw
PlRlc3RpbmcgcXVlcmllcyB0aGF0IGhhdmUgbm8gcmVnaXN0ZXJlZCBsaXN0ZW5lci48L3A+Cisg
ICAgPGRpdiBpZD0icmVzdWx0cyI+CisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDctZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA3LWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YjBlN2Y5Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA3
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK1Rlc3QgdGhlIE1lZGlhUXVlcnlMaXN0IGlu
dGVyZmFjZTogaHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3Nzb20tdmlldy8jdGhlLW1lZGlhcXVl
cnlsaXN0LWludGVyZmFjZS4KKworSW52YWxpZCBsaXN0ZW5lcnMuIFR3byBjYWxsYmFja3MgYXJl
IGV4cGVjdGVkLgorCitbMV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBj
aGFuZ2VkIHRvIGZhbHNlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2Vk
KSBjaGFuZ2VkIHRvIGZhbHNlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEv
bWVkaWEtcXVlcnktbGlzdC0wNy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1x
dWVyeS1saXN0LTA3Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDM0
NDI2MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVl
cnktbGlzdC0wNy5odG1sCkBAIC0wLDAgKzEsNDkgQEAKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+
VGVzdCBDU1NPTSBWaWV3IG1vZHVsZTogTWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlPC90aXRsZT4K
KzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisKKzwvc3R5bGU+Cis8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKwor
ICAgIGZ1bmN0aW9uIGxvZyhtKSB7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdy
ZXN1bHRzJykuaW5uZXJIVE1MICs9IG0gKyAnPGJyPic7CisgICAgfQorCisgICAgZnVuY3Rpb24g
Y2FsbGJhY2sxKHF1ZXJ5KSB7CisgICAgICAgIGxvZygiWzFdIC0gcXVlcnkgIiArIHF1ZXJ5Lm1l
ZGlhICsgIiBjaGFuZ2VkIHRvICIgKyAocXVlcnkubWF0Y2hlcyA/ICJ0cnVlIiA6ICJmYWxzZSIp
KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjYWxsYmFjazIocXVlcnkpIHsKKyAgICAgICAgbG9n
KCJbMl0gLSBxdWVyeSAiICsgcXVlcnkubWVkaWEgKyAiIGNoYW5nZWQgdG8gIiArIChxdWVyeS5t
YXRjaGVzID8gInRydWUiIDogImZhbHNlIikpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRl
c3RzKCkKKyAgICB7CisgICAgICAgIGlmICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQor
ICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFZp
ZXdNb2RlTWVkaWFGZWF0dXJlKCJ3aW5kb3dlZCIpOworCisgICAgICAgIHZhciBxdWVyeSA9IHdp
bmRvdy5tYXRjaE1lZGlhKCIoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSIpOworCisgICAg
ICAgIHF1ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNrMSk7CisgICAgICAgIHF1ZXJ5LmFkZExpc3Rl
bmVyKDUpOworICAgICAgICBxdWVyeS5hZGRMaXN0ZW5lcignY2luY28nKTsKKyAgICAgICAgcXVl
cnkuYWRkTGlzdGVuZXIoWzEsMl0pOworICAgICAgICBxdWVyeS5hZGRMaXN0ZW5lcihjYWxsYmFj
azIpOworCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0
dXJlKCJtaW5pbWl6ZWQiKTsKKyAgICB9CisKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25s
b2FkPSJydW5UZXN0cygpIj4KKyAgICA8cD5UZXN0IHRoZSBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZh
Y2U6IDxhIGhyZWY9Imh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzc29tLXZpZXcvI3RoZS1tZWRp
YXF1ZXJ5bGlzdC1pbnRlcmZhY2UiIHRpdGxlPSJDU1NPTSBWaWV3IE1vZHVsZSI+aHR0cDovL2Rl
di53My5vcmcvY3Nzd2cvY3Nzb20tdmlldy8jdGhlLW1lZGlhcXVlcnlsaXN0LWludGVyZmFjZTwv
YT4uPC9wPgorICAgIDxwPkludmFsaWQgbGlzdGVuZXJzLiBUd28gY2FsbGJhY2tzIGFyZSBleHBl
Y3RlZC48L3A+CisgICAgPGRpdiBpZD0icmVzdWx0cyI+CisgICAgPC9kaXY+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4
cGVjdGF0aW9ucy50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVj
dGF0aW9ucy50eHQKaW5kZXggM2Y1MzUxZS4uN2ZiY2M1YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dApAQCAtMjM2Myw4ICsy
MzYzLDE0IEBAIEJVRzM4NTc4IDogcGx1Z2lucy9vdmVycmlkZS1ub2RlLW1ldGhvZC5odG1sID0g
VEVYVAogQlVHMzg2NTMgTUFDIDogZWRpdGluZy9zZWxlY3Rpb24vZmluZC15ZW5zaWduLWFuZC1i
YWNrc2xhc2guaHRtbCA9IFRFWFQKIEJVRzM4NjU2IDogZmFzdC9tZWRpYS9wcmludC1yZXN0b3Jl
cy1wcmV2aW91cy1tZWRpYXR5cGUuaHRtbCA9IFRFWFQKIAotLy8gTmVlZHMgbGF5b3V0VGVzdENv
bnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoKSAoaW1wbGVtZW50ZWQgb24gUXQgb25s
eSkKKy8vIE5lZWRzIGxheW91dFRlc3RDb250cm9sbGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0dXJl
KCkKIEJVRzQwNjgwIFNLSVAgOiBmYXN0L21lZGlhL3ZpZXctbW9kZS1tZWRpYS1mZWF0dXJlLmh0
bWwgPSBGQUlMCitCVUc0MDY4MCBTS0lQIDogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAy
Lmh0bWwgPSBGQUlMCitCVUc0MDY4MCBTS0lQIDogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0
LTAzLmh0bWwgPSBGQUlMCitCVUc0MDY4MCBTS0lQIDogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1s
aXN0LTA0Lmh0bWwgPSBGQUlMCitCVUc0MDY4MCBTS0lQIDogZmFzdC9tZWRpYS9tZWRpYS1xdWVy
eS1saXN0LTA1Lmh0bWwgPSBGQUlMCitCVUc0MDY4MCBTS0lQIDogZmFzdC9tZWRpYS9tZWRpYS1x
dWVyeS1saXN0LTA2Lmh0bWwgPSBGQUlMCitCVUc0MDY4MCBTS0lQIDogZmFzdC9tZWRpYS9tZWRp
YS1xdWVyeS1saXN0LTA3Lmh0bWwgPSBGQUlMCiAKIC8vIFVua25vd24gZmxha2luZXNzLgogQlVH
Mzg3MDYgOiBzdmcvY3VzdG9tL2RlZXAtZHluYW1pYy11cGRhdGVzLnN2ZyA9IElNQUdFK1RFWFQg
SU1BR0UgUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAppbmRleCBkZWM2NDRmLi5mYmJiYmQx
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZApAQCAtMTI0LDggKzEyNCwxNCBAQCBodHRwL3Rl
c3RzL3BsdWdpbnMvcGx1Z2luLWRvY3VtZW50LWhhcy1mb2N1cy5odG1sCiAjIE1pc3NlcyBzZXRN
ZWRpYVR5cGUoKSBhbmQgaW1wbGVtZW50YXRpb24KIGZhc3QvbWVkaWEvcHJpbnQtcmVzdG9yZXMt
cHJldmlvdXMtbWVkaWF0eXBlLmh0bWwKIAotIyB2aWV3IG1vZGUgbWVkaWEgZmVhdHVyZQorIyBO
ZWVkcyBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSgpCiBmYXN0
L21lZGlhL3ZpZXctbW9kZS1tZWRpYS1mZWF0dXJlLmh0bWwKK2Zhc3QvbWVkaWEvbWVkaWEtcXVl
cnktbGlzdC0wMi5odG1sCitmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMuaHRtbAorZmFz
dC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA0Lmh0bWwKK2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnkt
bGlzdC0wNS5odG1sCitmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDYuaHRtbAorZmFzdC9t
ZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA3Lmh0bWwKIAogIyBUZXN0IGlzIGZsYWt5IGFuZCB0aHVz
IG5vdCB1c2VmdWwgdW50aWwgZml4ZWQuCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zNjY0MgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Nr
aXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAppbmRleCBjODBjZjQwLi42
YWI0OGUwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApAQCAtODYxLDggKzg2MSwxNCBAQCBm
YXN0L2RvbS9IVE1MTWV0ZXJFbGVtZW50L21ldGVyLXBlcmNlbnQtc2l6ZS5odG1sCiBmYXN0L2Rv
bS9IVE1MTWV0ZXJFbGVtZW50L21ldGVyLXN0eWxlcy5odG1sCiBmYXN0L2RvbS9IVE1MTWV0ZXJF
bGVtZW50L21ldGVyLXN0eWxlcy1jaGFuZ2luZy1wc2V1ZG8uaHRtbAogCi0jIHZpZXcgbW9kZSBt
ZWRpYSBmZWF0dXJlCisjIE5lZWRzIGxheW91dFRlc3RDb250cm9sbGVyLnNldFZpZXdNb2RlTWVk
aWFGZWF0dXJlKCkKIGZhc3QvbWVkaWEvdmlldy1tb2RlLW1lZGlhLWZlYXR1cmUuaHRtbAorZmFz
dC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAyLmh0bWwKK2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnkt
bGlzdC0wMy5odG1sCitmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDQuaHRtbAorZmFzdC9t
ZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA1Lmh0bWwKK2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlz
dC0wNi5odG1sCitmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDcuaHRtbAogCiAjIE5lZWQg
ZXhwZWN0YXRpb25zLiBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTM2NDYxCiBmYXN0L3JlcGFpbnQvb3ZlcmZsb3ctc2Nyb2xsLWJvZHktYXBwZWFyLmh0bWwKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CmluZGV4IDU4YjA3MjAuLjdjZGE0NDcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKKysrIGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTMxLDYgKzEzMSw3IEBAIFNFVChX
ZWJDb3JlX0lETF9GSUxFUwogICAgIGNzcy9DU1NWYXJpYWJsZXNEZWNsYXJhdGlvbi5pZGwKICAg
ICBjc3MvQ1NTVmFyaWFibGVzUnVsZS5pZGwKICAgICBjc3MvTWVkaWFMaXN0LmlkbAorICAgIGNz
cy9NZWRpYVF1ZXJ5TGlzdC5pZGwKICAgICBjc3MvUmVjdC5pZGwKICAgICBjc3MvUkdCQ29sb3Iu
aWRsCiAgICAgY3NzL1N0eWxlTWVkaWEuaWRsCkBAIC03NjcsNiArNzY4LDkgQEAgU0VUKFdlYkNv
cmVfU09VUkNFUwogICAgIGNzcy9NZWRpYVF1ZXJ5LmNwcAogICAgIGNzcy9NZWRpYVF1ZXJ5RXZh
bHVhdG9yLmNwcAogICAgIGNzcy9NZWRpYVF1ZXJ5RXhwLmNwcAorICAgIGNzcy9NZWRpYVF1ZXJ5
TGlzdC5jcHAKKyAgICBjc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKKyAgICBjc3MvTWVk
aWFRdWVyeU1hdGNoZXIuY3BwCiAgICAgY3NzL1JHQkNvbG9yLmNwcAogICAgIGNzcy9TaGFkb3dW
YWx1ZS5jcHAKICAgICBjc3MvU3R5bGVCYXNlLmNwcApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlYTkzYTIyLi5kMjVmYTYwIDEwMDY0NAot
LS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDg5IEBACisyMDEwLTEwLTIxICBMdWl6IEFnb3N0aW5pICA8bHVpei5hZ29zdGluaUBvcGVuYm9z
c2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEltcGxlbWVudCBDU1NPTSBWaWV3IG1hdGNoTWVkaWEgaW50ZXJmYWNlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzIwNQorCisgICAgICAgIE5ldyBp
bnRlcmZhY2VzIG1heSBiZSB1c2VkIHRvIGV2YWx1YXRlIG1lZGlhIHF1ZXJpZXMgYW5kIHRvIGFz
c29jaWF0ZSBsaXN0ZW5lcnMKKyAgICAgICAgdG8gbWVkaWEgcXVlcmllcy4gVGhvc2UgbGlzdGVu
ZXJzIGFyZSBjYWxsZWQgd2hlbmV2ZXIgdGhlIGFzc29jaWF0ZWQgcXVlcnkgY2hhbmdlcy4KKyAg
ICAgICAgU3BlY2lmaWNhdGlvbiBtYXkgYmUgZm91bmQgYXQgaHR0cDovL2Rldi53My5vcmcvY3Nz
d2cvY3Nzb20tdmlldy8jdGhlLW1lZGlhcXVlcnlsaXN0LWludGVyZmFjZQorCisgICAgICAgIG9w
ZXJhdG9yPT0gYWRkZWQgdG8gSlMgdmVyc2lvbiBvZiBTY3JpcHRWYWx1ZS4KKyAgICAgICAgTWV0
aG9kIGlzRnVuY3Rpb24gYWRkZWQgdG8gSlMgYW5kIFY4IHZlcnNpb25zIG9mIFNjcmlwdFZhbHVl
LgorCisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0VmFsdWUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2NyaXB0VmFsdWU6OmlzRnVuY3Rpb24pOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1Nj
cmlwdFZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRWYWx1ZTo6b3BlcmF0b3I9PSk6
CisgICAgICAgICogYmluZGluZ3MvdjgvU2NyaXB0VmFsdWUuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlNjcmlwdFZhbHVlOjppc0Z1bmN0aW9uKToKKworICAgICAgICBTb21lIGNoYW5nZXMgd2VyZSBu
ZWVkZWQgdG8gdGhlIGNvZGUgZ2VuZXJhdG9ycyB0byBoYW5kbGUgdHlwZSBNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyLgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09i
amVjdC5wbToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbToKKworICAgICAg
ICBTb21lIGNoYW5nZXMgdG8gdGhlIGJpbmRpbmdzIHRlc3QgcmVzdWx0cyB0aGF0IHdlcmUgcHJl
dmlvdXNseSBhZGRlZC4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0
L1dlYktpdERPTVRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcDoKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lci5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXJQcm90b3R5cGVGdW5jdGlvbk1ldGhvZCk6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJJbnRlcm5hbDo6bWV0aG9kQ2Fs
bGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6Q29uZmlndXJlVjhUZXN0TWVkaWFRdWVyeUxpc3RM
aXN0ZW5lclRlbXBsYXRlKToKKworICAgICAgICBOZXcgaW50ZXJmYWNlczoKKworICAgICAgICAq
IGNzcy9NZWRpYVF1ZXJ5TGlzdC5jcHA6IEFkZGVkLgorICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5
TGlzdC5oOiBBZGRlZC4KKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUxpc3QuaWRsOiBBZGRlZC4K
KworICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcDogQWRkZWQuCisgICAg
ICAgICogY3NzL01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaDogQWRkZWQuCisgICAgICAgICogY3Nz
L01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaWRsOiBBZGRlZC4KKworICAgICAgICBUbyBhdm9pZCBh
ZGRpbmcgY29kZSB0byBjbGFzc2VzIERPTVdpbmRvdyBhbmQgRG9jdW1lbnQgYSBuZXcgY2xhc3Mg
TWVkaWFRdWVyeU1hdGNoZXIgd2FzIGNyZWF0ZWQuCisKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVy
eU1hdGNoZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeU1hdGNoZXIuaDog
QWRkZWQuCisKKyAgICAgICAgRG9jdW1lbnQgYW5kIERPTVdpbmRvdyBoYXZlIGNoYW5nZWQgdG8g
c3VwcG9ydCBuZXcgZmVhdHVyZXMuIERPTVdpbmRvdyBpcyB0aGUgY2xhc3MgdGhhdAorICAgICAg
ICBwdWJsaXNoZXMgbWV0aG9kcyBtYXRjaE1lZGlhIGJ1dCBmb3IgcGFnZSBjYWNoZSB0byB3b3Jr
IHByb3Blcmx5ICB0aGUgcmVmZXJlbmNlIHRvIHRoZQorICAgICAgICBNZWRpYVF1ZXJ5TWF0Y2hl
ciBtdXN0IGJlIGluIERvY3VtZW50LgorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp+RG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6Om1lZGlhUXVlcnlNYXRjaGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
OjpzdHlsZVNlbGVjdG9yQ2hhbmdlZCk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAg
ICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojpt
YXRjaE1lZGlhKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5oOgorICAgICAgICAqIHBhZ2Uv
RE9NV2luZG93LmlkbDoKKworICAgICAgICBCdWlsZCBzeXN0ZW1zCisKKyAgICAgICAgKiBDTWFr
ZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIEdO
VW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3Jl
LnByaToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogYmluZGluZ3MvZ29iamVjdC9HTlVtYWtlZmlsZS5hbToKKworICAgICAg
ICBUZXN0czogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAxLmh0bWwKKyAgICAgICAgICAg
ICAgIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMi5odG1sCisgICAgICAgICAgICAgICBm
YXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9t
ZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA0Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvbWVkaWEv
bWVkaWEtcXVlcnktbGlzdC0wNS5odG1sCisgICAgICAgICAgICAgICBmYXN0L21lZGlhL21lZGlh
LXF1ZXJ5LWxpc3QtMDYuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9tZWRpYS9tZWRpYS1xdWVy
eS1saXN0LTA3Lmh0bWwKKwogMjAxMC0xMC0yNiAgQWJoaXNoZWsgQXJ5YSAgPGluZmVybm9AY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQppbmRleCAzNDJiYjdiLi44YTYxNTI3IDEwMDY0NAotLS0gYS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKKysrIGIvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0yNjcs
NiArMjY3LDggQEAgRE9NX0NMQVNTRVMgPSBcCiAgICAgTG9jYXRpb24gXAogICAgIE1lZGlhRXJy
b3IgXAogICAgIE1lZGlhTGlzdCBcCisgICAgTWVkaWFRdWVyeUxpc3QgXAorICAgIE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXIgXAogICAgIE1lbW9yeUluZm8gXAogICAgIE1lc3NhZ2VDaGFubmVsIFwK
ICAgICBNZXNzYWdlRXZlbnQgXApAQCAtNTAzLDcgKzUwNSw3IEBAIERPTV9DTEFTU0VTID0gXAog
CiAuUEhPTlkgOiBhbGwKIAotSlNfRE9NX0hFQURFUlM9JChmaWx0ZXItb3V0IEpTRXZlbnRMaXN0
ZW5lci5oIEpTRXZlbnRUYXJnZXQuaCwkKERPTV9DTEFTU0VTOiU9SlMlLmgpKQorSlNfRE9NX0hF
QURFUlM9JChmaWx0ZXItb3V0IEpTTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oIEpTRXZlbnRMaXN0
ZW5lci5oIEpTRXZlbnRUYXJnZXQuaCwkKERPTV9DTEFTU0VTOiU9SlMlLmgpKQogCiBXRUJfRE9N
X0hFQURFUlMgOj0KIGlmZXEgKCQoZmluZHN0cmluZyBCVUlMRElOR19XWCwkKEZFQVRVUkVfREVG
SU5FUykpLCBCVUlMRElOR19XWCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0g
Yi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDhjMjA0YWEuLmFmOWY5N2IgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpA
QCAtNDI4LDYgKzQyOCw4IEBAIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU01lZGlhRXJyb3IuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U01lZGlhTGlzdC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYUxpc3QuaCBc
CisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhUXVlcnlMaXN0LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhUXVlcnlMaXN0LmggXAogCURlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNNZW1vcnlJbmZvLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lbW9y
eUluZm8uaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lc3NhZ2VDaGFubmVsLmNwcCBc
CkBAIC05OTksMTEgKzEwMDEsMTcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL2Nz
cy9NZWRpYUxpc3QuY3BwIFwKIAlXZWJDb3JlL2Nzcy9NZWRpYUxpc3QuaCBcCiAJV2ViQ29yZS9j
c3MvTWVkaWFRdWVyeS5jcHAgXAorCVdlYkNvcmUvY3NzL01lZGlhUXVlcnkuaCBcCiAJV2ViQ29y
ZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAgXAogCVdlYkNvcmUvY3NzL01lZGlhUXVlcnlF
dmFsdWF0b3IuaCBcCiAJV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cC5jcHAgXAogCVdlYkNvcmUv
Y3NzL01lZGlhUXVlcnlFeHAuaCBcCi0JV2ViQ29yZS9jc3MvTWVkaWFRdWVyeS5oIFwKKwlXZWJD
b3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdC5jcHAgXAorCVdlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0
LmggXAorCVdlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwIFwKKwlXZWJDb3Jl
L2Nzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggXAorCVdlYkNvcmUvY3NzL01lZGlhUXVlcnlN
YXRjaGVyLmNwcCBcCisJV2ViQ29yZS9jc3MvTWVkaWFRdWVyeU1hdGNoZXIuaCBcCiAJV2ViQ29y
ZS9jc3MvUGFpci5oIFwKIAlXZWJDb3JlL2Nzcy9SZWN0LmggXAogCVdlYkNvcmUvY3NzL1JHQkNv
bG9yLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCmluZGV4IGY1MjZkMDcuLmExYjRlYjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0xOSw2ICsxOSw3IEBACiAg
ICAgICAgICAgICAnY3NzL0NTU1ZhcmlhYmxlc1J1bGUuaWRsJywKICAgICAgICAgICAgICdjc3Mv
Q291bnRlci5pZGwnLAogICAgICAgICAgICAgJ2Nzcy9NZWRpYUxpc3QuaWRsJywKKyAgICAgICAg
ICAgICdjc3MvTWVkaWFRdWVyeUxpc3QuaWRsJywKICAgICAgICAgICAgICdjc3MvUmVjdC5pZGwn
LAogICAgICAgICAgICAgJ2Nzcy9SR0JDb2xvci5pZGwnLAogICAgICAgICAgICAgJ2Nzcy9TdHls
ZU1lZGlhLmlkbCcsCkBAIC0xMDcwLDExICsxMDcxLDE3IEBACiAgICAgICAgICAgICAnY3NzL01l
ZGlhTGlzdC5jcHAnLAogICAgICAgICAgICAgJ2Nzcy9NZWRpYUxpc3QuaCcsCiAgICAgICAgICAg
ICAnY3NzL01lZGlhUXVlcnkuY3BwJywKKyAgICAgICAgICAgICdjc3MvTWVkaWFRdWVyeS5oJywK
ICAgICAgICAgICAgICdjc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAnLAogICAgICAgICAgICAg
J2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmgnLAogICAgICAgICAgICAgJ2Nzcy9NZWRpYVF1ZXJ5
RXhwLmNwcCcsCiAgICAgICAgICAgICAnY3NzL01lZGlhUXVlcnlFeHAuaCcsCi0gICAgICAgICAg
ICAnY3NzL01lZGlhUXVlcnkuaCcsCisgICAgICAgICAgICAnY3NzL01lZGlhUXVlcnlMaXN0LmNw
cCcsCisgICAgICAgICAgICAnY3NzL01lZGlhUXVlcnlMaXN0LmgnLAorICAgICAgICAgICAgJ2Nz
cy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcCcsCisgICAgICAgICAgICAnY3NzL01lZGlhUXVl
cnlMaXN0TGlzdGVuZXIuaCcsCisgICAgICAgICAgICAnY3NzL01lZGlhUXVlcnlNYXRjaGVyLmNw
cCcsCisgICAgICAgICAgICAnY3NzL01lZGlhUXVlcnlNYXRjaGVyLmgnLAogICAgICAgICAgICAg
J2Nzcy9QYWlyLmgnLAogICAgICAgICAgICAgJ2Nzcy9SZWN0LmgnLAogICAgICAgICAgICAgJ2Nz
cy9SR0JDb2xvci5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnByaSBiL1dlYkNv
cmUvV2ViQ29yZS5wcmkKaW5kZXggMDUxZjRkOS4uOTIxZGQyMyAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9XZWJDb3JlLnByaQorKysgYi9XZWJDb3JlL1dlYkNvcmUucHJpCkBAIC04Niw2ICs4Niw3IEBA
IElETF9CSU5ESU5HUyArPSBcCiAgICAgY3NzL0NTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uLmlkbCBc
CiAgICAgY3NzL0NTU1ZhcmlhYmxlc1J1bGUuaWRsIFwKICAgICBjc3MvTWVkaWFMaXN0LmlkbCBc
CisgICAgY3NzL01lZGlhUXVlcnlMaXN0LmlkbCBcCiAgICAgY3NzL1JlY3QuaWRsIFwKICAgICBj
c3MvUkdCQ29sb3IuaWRsIFwKICAgICBjc3MvU3R5bGVNZWRpYS5pZGwgXApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggOWZiMmZkZC4u
MGNhN2ViOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dl
YkNvcmUucHJvCkBAIC02NTUsNiArNjU1LDkgQEAgU09VUkNFUyArPSBcCiAgICAgY3NzL01lZGlh
UXVlcnkuY3BwIFwKICAgICBjc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAgXAogICAgIGNzcy9N
ZWRpYVF1ZXJ5RXhwLmNwcCBcCisgICAgY3NzL01lZGlhUXVlcnlMaXN0LmNwcCBcCisgICAgY3Nz
L01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwIFwKKyAgICBjc3MvTWVkaWFRdWVyeU1hdGNoZXIu
Y3BwIFwKICAgICBjc3MvUkdCQ29sb3IuY3BwIFwKICAgICBjc3MvU2hhZG93VmFsdWUuY3BwIFwK
ICAgICBjc3MvU3R5bGVCYXNlLmNwcCBcCkBAIC0xNTYyLDkgKzE1NjUsMTIgQEAgSEVBREVSUyAr
PSBcCiAgICAgY3NzL0ZvbnRWYWx1ZS5oIFwKICAgICBjc3MvTWVkaWFGZWF0dXJlTmFtZXMuaCBc
CiAgICAgY3NzL01lZGlhTGlzdC5oIFwKKyAgICBjc3MvTWVkaWFRdWVyeS5oIFwKICAgICBjc3Mv
TWVkaWFRdWVyeUV2YWx1YXRvci5oIFwKICAgICBjc3MvTWVkaWFRdWVyeUV4cC5oIFwKLSAgICBj
c3MvTWVkaWFRdWVyeS5oIFwKKyAgICBjc3MvTWVkaWFRdWVyeUxpc3QuaCBcCisgICAgY3NzL01l
ZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCBcCisgICAgY3NzL01lZGlhUXVlcnlNYXRjaGVyLmggXAog
ICAgIGNzcy9SR0JDb2xvci5oIFwKICAgICBjc3MvU2hhZG93VmFsdWUuaCBcCiAgICAgY3NzL1N0
eWxlQmFzZS5oIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2ogYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCm9sZCBtb2RlIDEw
MDY0NApuZXcgbW9kZSAxMDA3NTUKaW5kZXggZGM3ZDJkMC4uYTdlNTBiMQotLS0gYS9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2oKQEAgLTEwMDE5LDYgKzEwMDE5LDYyIEBACiAJCQkJPg0KIAkJCTwv
RmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxv
YmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNNZWRpYVF1ZXJ5TGlzdC5jcHAiDQor
CQkJCT4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIN
CisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJ
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJSZWxlYXNlfFdp
bjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9v
bA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVn
X0ludGVybmFsfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+
DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0K
KwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJ
CU5hbWU9IkRlYnVnX0NhaXJvfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
DQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQor
CQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24NCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm98V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxl
Q29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIg0KKwkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJ
CTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGly
KVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNNZWRpYVF1ZXJ5TGlzdC5oIg0K
KwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJL
aXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU01lbW9yeUlu
Zm8uY3BwIg0KIAkJCQk+DQogCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KQEAgLTMwMjExLDYgKzMw
MjY3LDMwIEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGNzc1xNZWRpYVF1ZXJ5TGlzdC5jcHAiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJ
PEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxjc3NcTWVkaWFRdWVyeUxpc3QuaCINCisJCQkJ
Pg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyLmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0K
KwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgiDQorCQkJ
CT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxjc3NcTWVk
aWFRdWVyeU1hdGNoZXIuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cY3NzXE1lZGlhUXVlcnlNYXRjaGVyLmgiDQorCQkJCT4NCisJCQk8
L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxjc3NcUGFpci5oIg0KIAkJ
CQk+DQogCQkJPC9GaWxlPg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggMzM2Yzc4Ni4uOTczMDk1YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTUzMDEsOCArNTMwMSwxNiBAQAogCQlEMjNDQTU1RDBBQjBFQUFF
MDA1MTA4QTUgLyogSlNSYW5nZUV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRDIzQ0E1NUMwQUIwRUFBRTAwNTEwOEE1IC8qIEpTUmFuZ2VF
eGNlcHRpb24uaCAqLzsgfTsKIAkJRDIzQ0E1NUYwQUIwRUFCNjAwNTEwOEE1IC8qIEpTUmFuZ2VF
eGNlcHRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRDIzQ0E1NUUwQUIwRUFCNjAwNTEwOEE1IC8qIEpTUmFuZ2VFeGNlcHRpb24uY3BwICovOyB9
OwogCQlEMjNDQTU2QzBBQjBFQjhEMDA1MTA4QTUgLyogUmFuZ2VFeGNlcHRpb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQyM0NBNTZCMEFCMEVCOEQw
MDUxMDhBNSAvKiBSYW5nZUV4Y2VwdGlvbi5oICovOyB9OworCQlEMzQwNjI5QjEyNTNCQzhDMDA5
RTQyNTkgLyogTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMzQwNjI5QTEyNTNCQzhDMDA5RTQyNTkgLyogTWVk
aWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgKi87IH07CiAJCUQzOUQwMDZEMTFGOEUzMDgwMDYwNDFG
MiAvKiBQb3B1cE1lbnVNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEQzOUQwMDZDMTFGOEUzMDgwMDYwNDFGMiAvKiBQb3B1cE1lbnVNYWMuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlEMzlEMDA5RDEx
RjkwN0U2MDA2MDQxRjIgLyogU2VhcmNoUG9wdXBNZW51TWFjLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMzlEMDA5QzExRjkwN0U2MDA2MDQxRjIgLyog
U2VhcmNoUG9wdXBNZW51TWFjLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJRDNBOTRBMzgxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQTk0
QTMxMTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdC5jcHAgKi87IH07CisJCUQzQTk0
QTM5MTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNBOTRBMzIxMjJEQUJBQzAwQTM3QkJDIC8q
IE1lZGlhUXVlcnlMaXN0LmggKi87IH07CisJCUQzQTk0QTNCMTIyREFCQUMwMEEzN0JCQyAvKiBN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBEM0E5NEEzNDEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeUxpc3RM
aXN0ZW5lci5oICovOyB9OworCQlEM0E5NEE0NjEyMkRDNDBGMDBBMzdCQkMgLyogSlNNZWRpYVF1
ZXJ5TGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBEM0E5NEE0MjEyMkRDNDBGMDBBMzdCQkMgLyogSlNNZWRpYVF1ZXJ5TGlzdC5jcHAgKi87IH07
CisJCUQzQTk0QTQ3MTIyREM0MEYwMEEzN0JCQyAvKiBKU01lZGlhUXVlcnlMaXN0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0E5NEE0MzEyMkRDNDBG
MDBBMzdCQkMgLyogSlNNZWRpYVF1ZXJ5TGlzdC5oICovOyB9OworCQlEM0FBMTBGMzEyM0E5OEFB
MDA5MjE1MkIgLyogTWVkaWFRdWVyeU1hdGNoZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNBQTEwRjExMjNBOThBQTAwOTIxNTJCIC8qIE1lZGlh
UXVlcnlNYXRjaGVyLmNwcCAqLzsgfTsKKwkJRDNBQTEwRjQxMjNBOThBQTAwOTIxNTJCIC8qIE1l
ZGlhUXVlcnlNYXRjaGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBEM0FBMTBGMjEyM0E5OEFBMDA5MjE1MkIgLyogTWVkaWFRdWVyeU1hdGNoZXIuaCAq
LzsgfTsKIAkJRDhCNjE1MkYxMDMyNDk1MTAwQzg1NTRBIC8qIENvb2tpZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDhCNjE1MkUxMDMyNDk1MTAwQzg1
NTRBIC8qIENvb2tpZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCURCMjNDMkNCMEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFu
ZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQjIz
QzJDOTBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuY3BwICovOyB9Owog
CQlEQjIzQzJDQzBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERCMjNDMkNBMEE1MDhE
MjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5oICovOyB9OwpAQCAtMTEzMjMsOCAr
MTEzMzEsMTggQEAKIAkJRDIzQ0E1NUMwQUIwRUFBRTAwNTEwOEE1IC8qIEpTUmFuZ2VFeGNlcHRp
b24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUmFuZ2VFeGNlcHRpb24u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDIzQ0E1NUUwQUIwRUFCNjAwNTEwOEE1
IC8qIEpTUmFuZ2VFeGNlcHRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTUmFuZ2VFeGNlcHRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlEMjNDQTU2QjBBQjBFQjhEMDA1MTA4QTUgLyogUmFuZ2VFeGNlcHRpb24uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJhbmdlRXhjZXB0aW9uLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUQzNDA2MjlBMTI1M0JDOEMwMDlFNDI1OSAvKiBNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMzlE
MDA2QzExRjhFMzA4MDA2MDQxRjIgLyogUG9wdXBNZW51TWFjLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFBvcHVwTWVudU1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlEMzlEMDA5QzExRjkwN0U2MDA2MDQxRjIgLyogU2VhcmNoUG9wdXBNZW51TWFjLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlYXJjaFBvcHVwTWVudU1hYy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEM0E5NEEzMTEyMkRBQkFDMDBBMzdCQkMgLyogTWVk
aWFRdWVyeUxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVk
aWFRdWVyeUxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEM0E5NEEzMjEy
MkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeUxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTWVkaWFRdWVyeUxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRDNBOTRBMzMxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0LmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBNZWRpYVF1ZXJ5TGlzdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUQzQTk0QTM0MTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDNBOTRBMzUxMjJEQUJBQzAw
QTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlEM0E5NEE0MjEyMkRDNDBGMDBBMzdCQkMgLyogSlNNZWRpYVF1ZXJ5TGlzdC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU01lZGlhUXVlcnlMaXN0LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDNBOTRBNDMxMjJEQzQwRjAwQTM3QkJDIC8q
IEpTTWVkaWFRdWVyeUxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNN
ZWRpYVF1ZXJ5TGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEM0FBMTBGMTEy
M0E5OEFBMDA5MjE1MkIgLyogTWVkaWFRdWVyeU1hdGNoZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFRdWVyeU1hdGNoZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlEM0FBMTBGMjEyM0E5OEFBMDA5MjE1MkIgLyogTWVkaWFRdWVyeU1h
dGNoZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFRdWVyeU1hdGNo
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDhCNjE1MkUxMDMyNDk1MTAwQzg1
NTRBIC8qIENvb2tpZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb29raWUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREIyM0MyQzkwQTUwOEQyOTAwMjQ4OUVC
IC8qIEluZGVudE91dGRlbnRDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBJbmRlbnRPdXRkZW50Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCURCMjNDMkNBMEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFu
ZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5kZW50T3V0ZGVudENvbW1h
bmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1NjkwLDYgKzE1NzA4LDggQEAK
IAkJCQlCQzY4NkM3QTBFMEMzMzAxMDBERThBMDggLyogSlNDU1NWYXJpYWJsZXNSdWxlLmNwcCAq
LywKIAkJCQlCQzY4NkM3QjBFMEMzMzAxMDBERThBMDggLyogSlNDU1NWYXJpYWJsZXNSdWxlLmgg
Ki8sCiAJCQkJQkMzQzM5QjQwQzBEM0Q4RDAwNUY0RDdBIC8qIEpTTWVkaWFMaXN0LmNwcCAqLywK
KwkJCQlEM0E5NEE0MjEyMkRDNDBGMDBBMzdCQkMgLyogSlNNZWRpYVF1ZXJ5TGlzdC5jcHAgKi8s
CisJCQkJRDNBOTRBNDMxMjJEQzQwRjAwQTM3QkJDIC8qIEpTTWVkaWFRdWVyeUxpc3QuaCAqLywK
IAkJCQlCQzNDMzlCNTBDMEQzRDhEMDA1RjREN0EgLyogSlNNZWRpYUxpc3QuaCAqLywKIAkJCQlC
Q0ZFMkYwRjBDMUI1ODM3MDAyMDIzNUYgLyogSlNSZWN0LmNwcCAqLywKIAkJCQlCQ0ZFMkYxMDBD
MUI1ODM3MDAyMDIzNUYgLyogSlNSZWN0LmggKi8sCkBAIC0xNzY4Myw2ICsxNzcwMywxNCBAQAog
CQkJCTRFMTk1OTI2MEEzOURBQ0MwMDIyMEZFNSAvKiBNZWRpYVF1ZXJ5RXZhbHVhdG9yLmggKi8s
CiAJCQkJNEUxOTU5MjcwQTM5REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnlFeHAuY3BwICovLAog
CQkJCTRFMTk1OTI4MEEzOURBQ0MwMDIyMEZFNSAvKiBNZWRpYVF1ZXJ5RXhwLmggKi8sCisJCQkJ
RDNBOTRBMzExMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0LmNwcCAqLywKKwkJCQlE
M0E5NEEzMjEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeUxpc3QuaCAqLywKKwkJCQlEM0E5
NEEzMzEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeUxpc3QuaWRsICovLAorCQkJCUQzQTk0
QTM0MTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggKi8sCisJCQkJ
RDM0MDYyOUExMjUzQkM4QzAwOUU0MjU5IC8qIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwICov
LAorCQkJCUQzQTk0QTM1MTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
LmlkbCAqLywKKwkJCQlEM0FBMTBGMTEyM0E5OEFBMDA5MjE1MkIgLyogTWVkaWFRdWVyeU1hdGNo
ZXIuY3BwICovLAorCQkJCUQzQUExMEYyMTIzQTk4QUEwMDkyMTUyQiAvKiBNZWRpYVF1ZXJ5TWF0
Y2hlci5oICovLAogCQkJCUE4MEU2Q0QxMEExOTg5Q0EwMDdGQjhDNSAvKiBQYWlyLmggKi8sCiAJ
CQkJOTNDQTRDOUYwOURGOTNGQTAwREY4Njc3IC8qIHF1aXJrcy5jc3MgKi8sCiAJCQkJQkM0MzY4
RTcwQzIyNkUzMjAwNUVGQjVGIC8qIFJlY3QuaCAqLywKQEAgLTIxMTc2LDYgKzIxMjA0LDEwIEBA
CiAJCQkJOEFCNEJDNzcxMjZGREI3MTAwREVCNzI3IC8qIElnbm9yZURlc3RydWN0aXZlV3JpdGVD
b3VudEluY3JlbWVudGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwODdCODQ5NjEyNzJDRUM4MDBB
MTQ0MTcgLyogU1ZHQW5pbWF0ZWRBbmdsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzU4OTc4RUQx
MjcwOTBENjAwNzZENUE5IC8qIFNwZWVjaElucHV0UmVzdWx0LmggaW4gSGVhZGVycyAqLywKKwkJ
CQlEM0E5NEEzOTEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeUxpc3QuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUQzQTk0QTNCMTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlEM0E5NEE0NzEyMkRDNDBGMDBBMzdCQkMgLyogSlNN
ZWRpYVF1ZXJ5TGlzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRDNBQTEwRjQxMjNBOThBQTAwOTIx
NTJCIC8qIE1lZGlhUXVlcnlNYXRjaGVyLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5P
bmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTIzNzMyLDYgKzIz
NzY0LDEwIEBACiAJCQkJN0ExRjJCNTIxMjZDNjFCMjAwMDZBN0U2IC8qIEluc3BlY3RvckNsaWVu
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMTNGMDFGMTEyNzBFMTkwMDBERkJBNzEgLyogQ29v
a2llU3RvcmFnZU1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTc1ODk3OEVDMTI3MDkwRDYwMDc2
RDVBOSAvKiBTcGVlY2hJbnB1dFJlc3VsdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlEM0E5NEEz
ODEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJRDNBOTRBNDYxMjJEQzQwRjAwQTM3QkJDIC8qIEpTTWVkaWFRdWVyeUxpc3QuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJRDNBQTEwRjMxMjNBOThBQTAwOTIxNTJCIC8qIE1lZGlhUXVlcnlNYXRj
aGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUQzNDA2MjlCMTI1M0JDOEMwMDlFNDI1OSAvKiBN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9iaW5kaW5ncy9nb2JqZWN0L0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29yZS9iaW5kaW5ncy9n
b2JqZWN0L0dOVW1ha2VmaWxlLmFtCmluZGV4IGQ4MDhlMTguLjFjNmI4ZjggMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL2Jp
bmRpbmdzL2dvYmplY3QvR05VbWFrZWZpbGUuYW0KQEAgLTE5NCw2ICsxOTQsOCBAQCB3ZWJraXRn
dGtfZ2RvbV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0
RE9NTWVkaWFFcnJvclByaXZhdGUuaCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERP
TU1lZGlhTGlzdC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01NZWRpYUxp
c3RQcml2YXRlLmggXAorCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01NZWRpYVF1ZXJ5
TGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01NZWRpYVF1ZXJ5TGlz
dFByaXZhdGUuaCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTU1lbW9yeUluZm8u
Y3BwIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NTWVtb3J5SW5mb1ByaXZhdGUu
aCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTU1lc3NhZ2VQb3J0LmNwcCBcCkBA
IC0yNTIsNiArMjU0LDcgQEAgd2Via2l0Z3RrX2J1aWx0X2hfYXBpICs9IFwKIAlEZXJpdmVkU291
cmNlcy93ZWJraXQvV2ViS2l0RE9NQ1NTU3R5bGVTaGVldC5oIFwKIAlEZXJpdmVkU291cmNlcy93
ZWJraXQvV2ViS2l0RE9NQ1NTVmFsdWUuaCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktp
dERPTU1lZGlhTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NTWVkaWFR
dWVyeUxpc3QuaCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTVN0eWxlTWVkaWEu
aCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTVN0eWxlU2hlZXQuaCBcCiAJRGVy
aXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTVN0eWxlU2hlZXRMaXN0LmggXApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRWYWx1ZS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdz
L2pzL1NjcmlwdFZhbHVlLmNwcAppbmRleCBhNThlMGM3Li5lNzhlMDNhIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFZhbHVlLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdz
L2pzL1NjcmlwdFZhbHVlLmNwcApAQCAtODQsNiArODQsMTMgQEAgYm9vbCBTY3JpcHRWYWx1ZTo6
aXNPYmplY3QoKSBjb25zdAogICAgIHJldHVybiBtX3ZhbHVlLmdldCgpLmlzT2JqZWN0KCk7CiB9
CiAKK2Jvb2wgU2NyaXB0VmFsdWU6OmlzRnVuY3Rpb24oKSBjb25zdAoreworICAgIENhbGxEYXRh
IGNhbGxEYXRhOworICAgIENhbGxUeXBlIGNhbGxUeXBlID0gZ2V0Q2FsbERhdGEobV92YWx1ZSwg
Y2FsbERhdGEpOworICAgIHJldHVybiBjYWxsVHlwZSAhPSBDYWxsVHlwZU5vbmU7Cit9CisKIFBh
c3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBTY3JpcHRWYWx1ZTo6c2VyaWFsaXplKFNj
cmlwdFN0YXRlKiBzY3JpcHRTdGF0ZSkKIHsKICAgICByZXR1cm4gU2VyaWFsaXplZFNjcmlwdFZh
bHVlOjpjcmVhdGUoc2NyaXB0U3RhdGUsIGpzVmFsdWUoKSk7CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1NjcmlwdFZhbHVlLmggYi9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFZh
bHVlLmgKaW5kZXggYjE3MGZjZi4uZTI0Zjk2OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TY3JpcHRWYWx1ZS5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0VmFsdWUu
aApAQCAtNTcsNiArNTcsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc09iamVjdCgpIGNvbnN0Owog
ICAgIGJvb2wgaGFzTm9WYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWUgPT0gSlNDOjpKU1Zh
bHVlKCk7IH0KIAorICAgIGJvb2wgaXNGdW5jdGlvbigpIGNvbnN0OworICAgIGJvb2wgb3BlcmF0
b3I9PShjb25zdCBTY3JpcHRWYWx1ZSYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWUgPT0g
b3RoZXIubV92YWx1ZTsgfQorCiAgICAgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+
IHNlcmlhbGl6ZShTY3JpcHRTdGF0ZSopOwogICAgIHN0YXRpYyBTY3JpcHRWYWx1ZSBkZXNlcmlh
bGl6ZShTY3JpcHRTdGF0ZSosIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSopOwogCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0gYi9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0KaW5kZXggNmExZDEx
NS4uZDg2YTBjNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JHT2JqZWN0LnBtCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9yR09iamVjdC5wbQpAQCAtMjEwLDggKzIxMCwxMSBAQCBzdWIgU2tpcEZ1bmN0aW9uIHsKIAog
ICAgICMgU2tpcCBmdW5jdGlvbnMgdGhhdCBoYXZlIFsiQ2FsbGJhY2siXSBwYXJhbWV0ZXJzLCBi
ZWNhdXNlIHRoaXMKICAgICAjIGNvZGUgZ2VuZXJhdG9yIGRvZXNuJ3Qga25vdyBob3cgdG8gYXV0
by1nZW5lcmF0ZSBjYWxsYmFja3MuCisgICAgIyBTa2lwIGZ1bmN0aW9ucyB0aGF0IGhhdmUgIk1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXIiIHBhcmFtZXRlcnMsIGJlY2F1c2UgdGhpcworICAgICMgY29k
ZSBnZW5lcmF0b3IgZG9lc24ndCBrbm93IGhvdyB0byBhdXRvLWdlbmVyYXRlIE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXIuCiAgICAgZm9yZWFjaCBteSAkcGFyYW0gKEB7JGZ1bmN0aW9uLT5wYXJhbWV0
ZXJzfSkgewotICAgICAgICBpZiAoJHBhcmFtLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2FsbGJh
Y2sifSkgeworICAgICAgICBpZiAoJHBhcmFtLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2FsbGJh
Y2sifSB8fAorICAgICAgICAgICAgJHBhcmFtLT50eXBlIGVxICJNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyIikgewogICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgIH0KICAgICB9CkBAIC02MDAs
NyArNjAzLDggQEAgRU9GCiAgICAgcHVzaChAdHh0U2V0UHJvcHMsICR0eHRTZXRQcm9wcyk7CiAK
ICAgICBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEByZWFkYWJsZVByb3BlcnRpZXMpIHsKLSAgICAg
ICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSBuZSAiRXZlbnRMaXN0ZW5lciIpIHsK
KyAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSBuZSAiRXZlbnRMaXN0ZW5l
ciIgJiYKKyAgICAgICAgICAgICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSBuZSAiTWVkaWFR
dWVyeUxpc3RMaXN0ZW5lciIpIHsKICAgICAgICAgICAgIEdlbmVyYXRlUHJvcGVydHkoJGF0dHJp
YnV0ZSwgJGludGVyZmFjZU5hbWUsIFxAd3JpdGVhYmxlUHJvcGVydGllcyk7CiAgICAgICAgIH0K
ICAgICB9CkBAIC03NjcsNiArNzcxLDcgQEAgc3ViIGdldEluY2x1ZGVIZWFkZXIgewogICAgIHJl
dHVybiAiIiBpZiAkdHlwZSBlcSAidW5zaWduZWQgc2hvcnQiOwogICAgIHJldHVybiAiIiBpZiAk
dHlwZSBlcSAiRE9NVGltZVN0YW1wIjsKICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgIkV2ZW50
TGlzdGVuZXIiOworICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAiTWVkaWFRdWVyeUxpc3RMaXN0
ZW5lciI7CiAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBjaGFyIjsKICAgICBy
ZXR1cm4gIiIgaWYgJHR5cGUgZXEgIkRPTVN0cmluZyI7CiAgICAgcmV0dXJuICIiIGlmICR0eXBl
IGVxICJmbG9hdCI7CkBAIC04MDYsNiArODExLDEwIEBAIHN1YiBHZW5lcmF0ZUZ1bmN0aW9uIHsK
IAogICAgIG15ICRkZWNhbWVsaXplID0gRml4VXBEZWNhbWVsaXplZE5hbWUoZGVjYW1lbGl6ZSgk
aW50ZXJmYWNlTmFtZSkpOwogCisgICAgaWYgKCRvYmplY3QgZXEgIk1lZGlhUXVlcnlMaXN0TGlz
dGVuZXIiKSB7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBpZiAoU2tpcEZ1bmN0aW9u
KCRmdW5jdGlvbiwgJGRlY2FtZWxpemUsICRwcmVmaXgpKSB7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CkBAIC04MjcsNyArODM2LDcgQEAgc3ViIEdlbmVyYXRlRnVuY3Rpb24gewogCiAgICAgZm9y
ZWFjaCBteSAkcGFyYW0gKEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSkgewogICAgICAgICBteSAk
cGFyYW1JRExUeXBlID0gJHBhcmFtLT50eXBlOwotICAgICAgICBpZiAoJHBhcmFtSURMVHlwZSBl
cSAiRXZlbnRMaXN0ZW5lciIpIHsKKyAgICAgICAgaWYgKCRwYXJhbUlETFR5cGUgZXEgIkV2ZW50
TGlzdGVuZXIiIHx8ICRwYXJhbUlETFR5cGUgZXEgIk1lZGlhUXVlcnlMaXN0TGlzdGVuZXIiKSB7
CiAgICAgICAgICAgICBwdXNoKEBoQm9keSwgIlxuLyogVE9ETzogZXZlbnQgZnVuY3Rpb24gJHtm
dW5jdGlvbk5hbWV9ICovXG5cbiIpOwogICAgICAgICAgICAgcHVzaChAY0JvZHksICJcbi8qIFRP
RE86IGV2ZW50IGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKICAgICAgICAgICAg
IHJldHVybjsKQEAgLTEwODAsNyArMTA4OSw5IEBAIHN1YiBHZW5lcmF0ZUZ1bmN0aW9ucyB7CiAK
ICAgICBUT1A6CiAgICAgZm9yZWFjaCBteSAkYXR0cmlidXRlIChAeyRkYXRhTm9kZS0+YXR0cmli
dXRlc30pIHsKLSAgICAgICAgaWYgKFNraXBBdHRyaWJ1dGUoJGF0dHJpYnV0ZSkgfHwgJGF0dHJp
YnV0ZS0+c2lnbmF0dXJlLT50eXBlIGVxICJFdmVudExpc3RlbmVyIikgeworICAgICAgICBpZiAo
U2tpcEF0dHJpYnV0ZSgkYXR0cmlidXRlKSB8fAorICAgICAgICAgICAgJGF0dHJpYnV0ZS0+c2ln
bmF0dXJlLT50eXBlIGVxICJFdmVudExpc3RlbmVyIiB8fAorICAgICAgICAgICAgJGF0dHJpYnV0
ZS0+c2lnbmF0dXJlLT50eXBlIGVxICJNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIikgewogICAgICAg
ICAgICAgbmV4dCBUT1A7CiAgICAgICAgIH0KICAgICAgICAgCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCA3MGMzMjdlLi4wODRkOGM2IDEwMDY0NAot
LS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTYsNiArNiw3IEBA
CiAjIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjIENvcHlyaWdodCAoQykgMjAwOSBDYW1lcm9uIE1jQ29y
bWFjayA8Y2FtQG1jYy5pZC5hdT4KICMgQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24g
TGltaXRlZCAyMDEwLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTAg
Tm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAjCiAjIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
ICMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKQEAgLTI4Miw2ICsyODMsMTAgQEAgc3ViIEFkZEluY2x1ZGVzRm9yVHlwZQogICAgIGlm
ICgkdHlwZSBlcSAiRG9jdW1lbnQiKSB7CiAgICAgICAgICRpbXBsSW5jbHVkZXN7Ik5vZGVGaWx0
ZXIuaCJ9ID0gMTsKICAgICB9CisKKyAgICBpZiAoJHR5cGUgZXEgIk1lZGlhUXVlcnlMaXN0TGlz
dGVuZXIiKSB7CisgICAgICAgICRpbXBsSW5jbHVkZXN7Ik1lZGlhUXVlcnlMaXN0TGlzdGVuZXIu
aCJ9ID0gMTsKKyAgICB9CiB9CiAKIHN1YiBBZGRJbmNsdWRlc0ZvclNWR0FuaW1hdGVkVHlwZQpA
QCAtMjQ4Nyw2ICsyNDkyLDcgQEAgbXkgJW5hdGl2ZVR5cGUgPSAoCiAgICAgInVuc2lnbmVkIHNo
b3J0IiA9PiAidW5zaWduZWQgc2hvcnQiLAogICAgICJsb25nIGxvbmciID0+ICJsb25nIGxvbmci
LAogICAgICJ1bnNpZ25lZCBsb25nIGxvbmciID0+ICJ1bnNpZ25lZCBsb25nIGxvbmciLAorICAg
ICJNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIiA9PiAiUmVmUHRyPE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXI+IgogKTsKIAogc3ViIEdldE5hdGl2ZVR5cGUKQEAgLTI1MzMsNiArMjUzOSwxMSBAQCBzdWIg
SlNWYWx1ZVRvTmF0aXZlCiAgICAgICAgIHJldHVybiAiJHZhbHVlIjsKICAgICB9CiAKKyAgICBp
ZiAoJHR5cGUgZXEgIk1lZGlhUXVlcnlMaXN0TGlzdGVuZXIiKSB7CisgICAgICAgICRpbXBsSW5j
bHVkZXN7Ik1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCJ9ID0gMTsKKyAgICAgICAgcmV0dXJuICJN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjpjcmVhdGUoIiAuICR2YWx1ZSAuIikiOworICAgIH0KKwog
ICAgIGlmICgkdHlwZSBlcSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlIiBvciAkdHlwZSBlcSAiYW55
IikgewogICAgICAgICAkaW1wbEluY2x1ZGVzeyJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCJ9ID0g
MTsKICAgICAgICAgcmV0dXJuICJTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShleGVjLCAk
dmFsdWUpIjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9yVjgucG0gYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCmlu
ZGV4IDQyM2NjNmIuLjUwYzBjZGMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yVjgucG0KKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JWOC5wbQpAQCAtNyw2ICs3LDcgQEAKICMgQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4
LCAyMDA5IEdvb2dsZSBJbmMuCiAjIENvcHlyaWdodCAoQykgMjAwOSBDYW1lcm9uIE1jQ29ybWFj
ayA8Y2FtQG1jYy5pZC5hdT4KICMgQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGlt
aXRlZCAyMDEwLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTAgTm9r
aWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAjCiAjIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICMg
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKQEAgLTI5NjcsNiArMjk2OCw4IEBAIHN1YiBHZXROYXRpdmVUeXBlCiAKICAgICByZXR1cm4g
IlJlZlB0cjwke3R5cGV9PiIgaWYgSXNSZWZQdHJUeXBlKCR0eXBlKSBhbmQgbm90ICRpc1BhcmFt
ZXRlcjsKIAorICAgIHJldHVybiAiUmVmUHRyPE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+IiBpZiAk
dHlwZSBlcSAiTWVkaWFRdWVyeUxpc3RMaXN0ZW5lciI7CisKICAgICAjIERlZmF1bHQsIGFzc3Vt
ZSBuYXRpdmUgdHlwZSBpcyBhIHBvaW50ZXIgd2l0aCBzYW1lIHR5cGUgbmFtZSBhcyBpZGwgdHlw
ZQogICAgIHJldHVybiAiJHt0eXBlfSoiOwogfQpAQCAtMzA2Miw2ICszMDY1LDExIEBAIHN1YiBK
U1ZhbHVlVG9OYXRpdmUKICAgICAgICAgJGltcGxJbmNsdWRlc3siRmxvYXRSZWN0LmgifSA9IDE7
CiAgICAgfQogCisgICAgaWYgKCR0eXBlIGVxICJNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIikgewor
ICAgICAgICAkaW1wbEluY2x1ZGVzeyJNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgifSA9IDE7Cisg
ICAgICAgIHJldHVybiAiTWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6Y3JlYXRlKCIgLiAkdmFsdWUg
LiAiKSI7CisgICAgfQorCiAgICAgaWYgKCR0eXBlIGVxICJTVkdQb2ludCIpIHsKICAgICAgICAg
JGltcGxJbmNsdWRlc3siRmxvYXRQb2ludC5oIn0gPSAxOwogICAgIH0KQEAgLTMyMTAsNyArMzIx
OCw4IEBAIG15ICVub25fd3JhcHBlcl90eXBlcyA9ICgKICAgICAnTm9kZUZpbHRlcicgPT4gMSwK
ICAgICAnRXZlbnRMaXN0ZW5lcicgPT4gMSwKICAgICAnSURCS2V5JyA9PiAxLAotICAgICdEYXRl
JyA9PiAxCisgICAgJ0RhdGUnID0+IDEsCisgICAgJ01lZGlhUXVlcnlMaXN0TGlzdGVuZXInID0+
IDEKICk7CiAKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09i
amVjdC9XZWJLaXRET01UZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgYi9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyLmNwcAppbmRleCBhZjkzMDBkLi5mNWRlZDc5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dl
YktpdERPTVRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcApAQCAtMjgsOCArMjgsNiBAQAog
I2luY2x1ZGUgIlRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgiCiAjaW5jbHVkZSAiV2ViS2l0
RE9NQmluZGluZy5oIgogI2luY2x1ZGUgImdvYmplY3QvQ29udmVydFRvVVRGOFN0cmluZy5oIgot
I2luY2x1ZGUgIndlYmtpdC9XZWJLaXRET01NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgiCi0jaW5j
bHVkZSAid2Via2l0L1dlYktpdERPTU1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcml2YXRlLmgiCiAj
aW5jbHVkZSAid2Via2l0L1dlYktpdERPTVRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgiCiAj
aW5jbHVkZSAid2Via2l0L1dlYktpdERPTVRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJpdmF0
ZS5oIgogI2luY2x1ZGUgIndlYmtpdG1hcnNoYWwuaCIKQEAgLTQ5LDIxICs0Nyw2IEBAIGdwb2lu
dGVyIGtpdChXZWJDb3JlOjpUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciogb2JqKQogICAgIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0IC8vCiAKLXZvaWQKLXdlYmtpdF9kb21fdGVzdF9tZWRpYV9x
dWVyeV9saXN0X2xpc3RlbmVyX21ldGhvZChXZWJLaXRET01UZXN0TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lciogc2VsZiwgV2ViS2l0RE9NTWVkaWFRdWVyeUxpc3RMaXN0ZW5lciogbGlzdGVuZXIpCi17
Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIGdfcmV0dXJu
X2lmX2ZhaWwoc2VsZik7Ci0gICAgV2ViQ29yZTo6VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIg
KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIGdfcmV0dXJuX2lmX2ZhaWwobGlzdGVu
ZXIpOwotICAgIFdlYkNvcmU6Ok1lZGlhUXVlcnlMaXN0TGlzdGVuZXIgKiBjb252ZXJ0ZWRfbGlz
dGVuZXIgPSBOVUxMOwotICAgIGlmIChsaXN0ZW5lciAhPSBOVUxMKSB7Ci0gICAgICAgIGNvbnZl
cnRlZF9saXN0ZW5lciA9IFdlYktpdDo6Y29yZShsaXN0ZW5lcik7Ci0gICAgICAgIGdfcmV0dXJu
X2lmX2ZhaWwoY29udmVydGVkX2xpc3RlbmVyKTsKLSAgICB9Ci0gICAgaXRlbS0+bWV0aG9kKGNv
bnZlcnRlZF9saXN0ZW5lcik7Ci19Ci0KIAogR19ERUZJTkVfVFlQRShXZWJLaXRET01UZXN0TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lciwgd2Via2l0X2RvbV90ZXN0X21lZGlhX3F1ZXJ5X2xpc3RfbGlz
dGVuZXIsIFdFQktJVF9UWVBFX0RPTV9PQkpFQ1QpCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXIuaCBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9N
VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaAppbmRleCA5NGU4MjVlLi42MTI0MzliIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRl
c3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oCkBAIC00
Niw5ICs0Niw2IEBAIHN0cnVjdCBfV2ViS2l0RE9NVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJD
bGFzcyB7CiBXRUJLSVRfQVBJIEdUeXBlCiB3ZWJraXRfZG9tX3Rlc3RfbWVkaWFfcXVlcnlfbGlz
dF9saXN0ZW5lcl9nZXRfdHlwZSAodm9pZCk7CiAKLVdFQktJVF9BUEkgdm9pZAotd2Via2l0X2Rv
bV90ZXN0X21lZGlhX3F1ZXJ5X2xpc3RfbGlzdGVuZXJfbWV0aG9kKFdlYktpdERPTVRlc3RNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyKiBzZWxmLCBXZWJLaXRET01NZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
KiBsaXN0ZW5lcik7Ci0KIEdfRU5EX0RFQ0xTCiAKICNlbmRpZiAvKiBXZWJLaXRET01UZXN0TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lcl9oICovCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcCBiL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3Bw
CmluZGV4IGNkZTk2NzIuLmU1MDVlZDIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCisrKyBiL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIu
Y3BwCkBAIC0yMyw3ICsyMyw3IEBACiAKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5j
bHVkZSAiSlNET01CaW5kaW5nLmgiCi0jaW5jbHVkZSAiSlNNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
LmgiCisjaW5jbHVkZSAiTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oIgogI2luY2x1ZGUgIlRlc3RN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgiCiAjaW5jbHVkZSA8cnVudGltZS9FcnJvci5oPgogI2lu
Y2x1ZGUgPHd0Zi9HZXRQdHIuaD4KQEAgLTE3NCw3ICsxNzQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZAogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKICAgICBKU1Rl
c3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKiBjYXN0ZWRUaGlzID0gc3RhdGljX2Nhc3Q8SlNUZXN0
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcio+KGFzT2JqZWN0KHRoaXNWYWx1ZSkpOwogICAgIFRlc3RN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKiBpbXAgPSBzdGF0aWNfY2FzdDxUZXN0TWVkaWFRdWVyeUxp
c3RMaXN0ZW5lcio+KGNhc3RlZFRoaXMtPmltcGwoKSk7Ci0gICAgTWVkaWFRdWVyeUxpc3RMaXN0
ZW5lciogbGlzdGVuZXIgPSB0b01lZGlhUXVlcnlMaXN0TGlzdGVuZXIoZXhlYy0+YXJndW1lbnQo
MCkpOworICAgIFJlZlB0cjxNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyPiBsaXN0ZW5lciA9IE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXI6OmNyZWF0ZShleGVjLT5hcmd1bWVudCgwKSk7CiAgICAgaWYgKGV4
ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9W
OC9WOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcCBiL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Y4L1Y4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCmluZGV4IDFmNzhm
MzkuLmYxYzRlMmIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4
L1Y4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCkBAIC0yMiwx
MyArMjIsMTMgQEAKICNpbmNsdWRlICJWOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgiCiAK
ICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiTWVkaWFRdWVyeUxpc3RMaXN0
ZW5lci5oIgogI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlICJW
OEJpbmRpbmcuaCIKICNpbmNsdWRlICJWOEJpbmRpbmdNYWNyb3MuaCIKICNpbmNsdWRlICJWOEJp
bmRpbmdTdGF0ZS5oIgogI2luY2x1ZGUgIlY4RE9NV3JhcHBlci5oIgogI2luY2x1ZGUgIlY4SXNv
bGF0ZWRDb250ZXh0LmgiCi0jaW5jbHVkZSAiVjhNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgiCiAj
aW5jbHVkZSAiVjhQcm94eS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00MywyOCArNDMs
MjUgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBtZXRob2RDYWxsYmFjayhjb25zdCB2
ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUygiRE9NLlRlc3RNZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyLm1ldGhvZCIpOwogICAgIFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKiBp
bXAgPSBWOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjp0b05hdGl2ZShhcmdzLkhvbGRlcigp
KTsKLSAgICBFWENFUFRJT05fQkxPQ0soTWVkaWFRdWVyeUxpc3RMaXN0ZW5lciosIGxpc3RlbmVy
LCBWOE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6Okhhc0luc3RhbmNlKGFyZ3NbMF0pID8gVjhNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyOjp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0
KGFyZ3NbMF0pKSA6IDApOworICAgIEVYQ0VQVElPTl9CTE9DSyhSZWZQdHI8TWVkaWFRdWVyeUxp
c3RMaXN0ZW5lcj4sIGxpc3RlbmVyLCBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjpjcmVhdGUoYXJn
c1swXSkpOwogICAgIGltcC0+bWV0aG9kKGxpc3RlbmVyKTsKICAgICByZXR1cm4gdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+KCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFRlc3RNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVySW50ZXJuYWwKIAorc3RhdGljIGNvbnN0IEJhdGNoZWRDYWxsYmFjayBUZXN0TWVkaWFR
dWVyeUxpc3RMaXN0ZW5lckNhbGxiYWNrc1tdID0geworICAgIHsibWV0aG9kIiwgVGVzdE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXJJbnRlcm5hbDo6bWV0aG9kQ2FsbGJhY2t9LAorfTsKIHN0YXRpYyB2
ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gQ29uZmlndXJlVjhUZXN0TWVkaWFR
dWVyeUxpc3RMaXN0ZW5lclRlbXBsYXRlKHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBs
YXRlPiBkZXNjKQogewogICAgIHY4OjpMb2NhbDx2ODo6U2lnbmF0dXJlPiBkZWZhdWx0U2lnbmF0
dXJlID0gY29uZmlndXJlVGVtcGxhdGUoZGVzYywgIlRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
Iiwgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+KCksIFY4VGVzdE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXI6OmludGVybmFsRmllbGRDb3VudCwKICAgICAgICAgMCwgMCwKLSAgICAg
ICAgMCwgMCk7CisgICAgICAgIFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ2FsbGJhY2tzLCBz
aXplb2YoVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJDYWxsYmFja3MpIC8gc2l6ZW9mKCpUZXN0
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNhbGxiYWNrcykpOwogICAgIHY4OjpMb2NhbDx2ODo6T2Jq
ZWN0VGVtcGxhdGU+IGluc3RhbmNlID0gZGVzYy0+SW5zdGFuY2VUZW1wbGF0ZSgpOwogICAgIHY4
OjpMb2NhbDx2ODo6T2JqZWN0VGVtcGxhdGU+IHByb3RvID0gZGVzYy0+UHJvdG90eXBlVGVtcGxh
dGUoKTsKICAgICAKIAotICAgIC8vIEN1c3RvbSBTaWduYXR1cmUgJ21ldGhvZCcKLSAgICBjb25z
dCBpbnQgbWV0aG9kQXJnYyA9IDE7Ci0gICAgdjg6OkhhbmRsZTx2ODo6RnVuY3Rpb25UZW1wbGF0
ZT4gbWV0aG9kQXJndlttZXRob2RBcmdjXSA9IHsgVjhNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjpH
ZXRSYXdUZW1wbGF0ZSgpIH07Ci0gICAgdjg6OkhhbmRsZTx2ODo6U2lnbmF0dXJlPiBtZXRob2RT
aWduYXR1cmUgPSB2ODo6U2lnbmF0dXJlOjpOZXcoZGVzYywgbWV0aG9kQXJnYywgbWV0aG9kQXJn
dik7Ci0gICAgcHJvdG8tPlNldCh2ODo6U3RyaW5nOjpOZXcoIm1ldGhvZCIpLCB2ODo6RnVuY3Rp
b25UZW1wbGF0ZTo6TmV3KFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVySW50ZXJuYWw6Om1ldGhv
ZENhbGxiYWNrLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKSwgbWV0aG9kU2lnbmF0dXJlKSk7Ci0K
ICAgICAvLyBDdXN0b20gdG9TdHJpbmcgdGVtcGxhdGUKICAgICBkZXNjLT5TZXQoZ2V0VG9TdHJp
bmdOYW1lKCksIGdldFRvU3RyaW5nVGVtcGxhdGUoKSk7CiAgICAgcmV0dXJuIGRlc2M7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdFZhbHVlLmggYi9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1NjcmlwdFZhbHVlLmgKaW5kZXggMTc0M2RhMC4uZDQxMjkwMSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRWYWx1ZS5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mv
djgvU2NyaXB0VmFsdWUuaApAQCAtMTAwLDYgKzEwMCwxMSBAQCBwdWJsaWM6CiAgICAgICAgIHJl
dHVybiBtX3ZhbHVlID09IHZhbHVlLm1fdmFsdWU7CiAgICAgfQogCisgICAgYm9vbCBpc0Z1bmN0
aW9uKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX3ZhbHVlLT5Jc0Z1bmN0aW9uKCk7
CisgICAgfQorCiAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFNjcmlwdFZhbHVlIHZhbHVlKSBj
b25zdAogICAgIHsKICAgICAgICAgcmV0dXJuICFvcGVyYXRvcj09KHZhbHVlKTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0LmNwcCBiL1dlYkNvcmUvY3NzL01lZGlhUXVl
cnlMaXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZTU1YTk2Ci0t
LSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3QuY3BwCkBAIC0wLDAg
KzEsMTAwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJNZWRpYVF1ZXJ5TGlzdC5oIgorCisjaW5jbHVkZSAiTWVkaWFMaXN0LmgiCisjaW5j
bHVkZSAiTWVkaWFRdWVyeUV2YWx1YXRvci5oIgorI2luY2x1ZGUgIk1lZGlhUXVlcnlMaXN0TGlz
dGVuZXIuaCIKKyNpbmNsdWRlICJNZWRpYVF1ZXJ5TWF0Y2hlci5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK1Bhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3Q+IE1lZGlhUXVlcnlMaXN0OjpjcmVh
dGUoUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TWF0Y2hlcj4gdmVjdG9yLCBQYXNzUmVmUHRyPE1lZGlh
TGlzdD4gbWVkaWEsIGJvb2wgbWF0Y2hlcykKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1l
ZGlhUXVlcnlMaXN0KHZlY3RvciwgbWVkaWEsIG1hdGNoZXMpKTsKK30KKworTWVkaWFRdWVyeUxp
c3Q6Ok1lZGlhUXVlcnlMaXN0KFBhc3NSZWZQdHI8TWVkaWFRdWVyeU1hdGNoZXI+IHZlY3Rvciwg
UGFzc1JlZlB0cjxNZWRpYUxpc3Q+IG1lZGlhLCBib29sIG1hdGNoZXMpCisgICAgOiBtX21hdGNo
ZXIodmVjdG9yKQorICAgICwgbV9tZWRpYShtZWRpYSkKKyAgICAsIG1fZXZhbHVhdGlvblJvdW5k
KG1fbWF0Y2hlci0+ZXZhbHVhdGlvblJvdW5kKCkpCisgICAgLCBtX2NoYW5nZVJvdW5kKG1fZXZh
bHVhdGlvblJvdW5kIC0gMSkgLy8gbV9ldmFsdWF0aW9uUm91bmQgYW5kIG1fY2hhbmdlUm91bmQg
aW5pdGlhbCB2YWx1ZXMgbXVzdCBiZSBkaWZmZXJlbnQuCisgICAgLCBtX21hdGNoZXMobWF0Y2hl
cykKK3sKK30KKworTWVkaWFRdWVyeUxpc3Q6On5NZWRpYVF1ZXJ5TGlzdCgpCit7Cit9CisKK1N0
cmluZyBNZWRpYVF1ZXJ5TGlzdDo6bWVkaWEoKSBjb25zdAoreworICAgIHJldHVybiBtX21lZGlh
LT5tZWRpYVRleHQoKTsKK30KKwordm9pZCBNZWRpYVF1ZXJ5TGlzdDo6YWRkTGlzdGVuZXIoUGFz
c1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyPiBsaXN0ZW5lcikKK3sKKyAgICBpZiAoIWxp
c3RlbmVyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX21hdGNoZXItPmFkZExpc3RlbmVyKGxp
c3RlbmVyLCB0aGlzKTsKK30KKwordm9pZCBNZWRpYVF1ZXJ5TGlzdDo6cmVtb3ZlTGlzdGVuZXIo
UGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyPiBsaXN0ZW5lcikKK3sKKyAgICBpZiAo
IWxpc3RlbmVyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX21hdGNoZXItPnJlbW92ZUxpc3Rl
bmVyKGxpc3RlbmVyLCB0aGlzKTsKK30KKwordm9pZCBNZWRpYVF1ZXJ5TGlzdDo6ZXZhbHVhdGUo
TWVkaWFRdWVyeUV2YWx1YXRvciogZXZhbHVhdG9yLCBib29sJiBub3RpZmljYXRpb25OZWVkZWQp
Cit7CisgICAgaWYgKG1fZXZhbHVhdGlvblJvdW5kICE9IG1fbWF0Y2hlci0+ZXZhbHVhdGlvblJv
dW5kKCkgJiYgZXZhbHVhdG9yKQorICAgICAgICBzZXRNYXRjaGVzKGV2YWx1YXRvci0+ZXZhbCht
X21lZGlhLmdldCgpKSk7CisgICAgbm90aWZpY2F0aW9uTmVlZGVkID0gbV9jaGFuZ2VSb3VuZCA9
PSBtX21hdGNoZXItPmV2YWx1YXRpb25Sb3VuZCgpOworfQorCit2b2lkIE1lZGlhUXVlcnlMaXN0
OjpzZXRNYXRjaGVzKGJvb2wgbmV3VmFsdWUpCit7CisgICAgbV9ldmFsdWF0aW9uUm91bmQgPSBt
X21hdGNoZXItPmV2YWx1YXRpb25Sb3VuZCgpOworCisgICAgaWYgKG5ld1ZhbHVlID09IG1fbWF0
Y2hlcykKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9tYXRjaGVzID0gbmV3VmFsdWU7CisgICAg
bV9jaGFuZ2VSb3VuZCA9IG1fZXZhbHVhdGlvblJvdW5kOworfQorCitib29sIE1lZGlhUXVlcnlM
aXN0OjptYXRjaGVzKCkKK3sKKyAgICBpZiAobV9ldmFsdWF0aW9uUm91bmQgIT0gbV9tYXRjaGVy
LT5ldmFsdWF0aW9uUm91bmQoKSkKKyAgICAgICAgc2V0TWF0Y2hlcyhtX21hdGNoZXItPmV2YWx1
YXRlKG1fbWVkaWEuZ2V0KCkpKTsKKyAgICByZXR1cm4gbV9tYXRjaGVzOworfQorCit9CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdC5oIGIvV2ViQ29yZS9jc3MvTWVkaWFR
dWVyeUxpc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OGIzNjIwCi0t
LSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3QuaApAQCAtMCwwICsx
LDcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTWVkaWFRdWVyeUxpc3RfaAor
I2RlZmluZSBNZWRpYVF1ZXJ5TGlzdF9oCisKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgor
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIE1lZGlhTGlzdDsKK2NsYXNzIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI7CitjbGFzcyBNZWRp
YVF1ZXJ5RXZhbHVhdG9yOworY2xhc3MgTWVkaWFRdWVyeU1hdGNoZXI7CisKKy8vICBNZWRpYVF1
ZXJ5TGlzdCBpbnRlcmZhY2UgaXMgc3BlY2lmaWVkIGF0IGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dn
L2Nzc29tLXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2UKKy8vICBUaGUgb2JqZWN0
cyBvZiB0aGlzIGNsYXNzIGFyZSByZXR1cm5lZCBieSB3aW5kb3cubWF0Y2hNZWRpYS4gVGhleSBt
YXkgYmUgdXNlZCB0bworLy8gIHJldHJpZXZlIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBnaXZl
biBtZWRpYSBxdWVyeSBhbmQgdG8gYWRkL3JlbW92ZSBsaXN0ZW5lcnMgdGhhdAorLy8gIHdpbGwg
YmUgY2FsbGVkIHdoZW5ldmVyIHRoZSB2YWx1ZSBvZiB0aGUgcXVlcnkgY2hhbmdlcy4KKworY2xh
c3MgTWVkaWFRdWVyeUxpc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVF1ZXJ5TGlzdD4gewor
cHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0PiBjcmVhdGUoUGFz
c1JlZlB0cjxNZWRpYVF1ZXJ5TWF0Y2hlcj4sIFBhc3NSZWZQdHI8TWVkaWFMaXN0PiwgYm9vbCk7
CisgICAgfk1lZGlhUXVlcnlMaXN0KCk7CisKKyAgICBTdHJpbmcgbWVkaWEoKSBjb25zdDsKKyAg
ICBib29sIG1hdGNoZXMoKTsKKworICAgIHZvaWQgYWRkTGlzdGVuZXIoUGFzc1JlZlB0cjxNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyPik7CisgICAgdm9pZCByZW1vdmVMaXN0ZW5lcihQYXNzUmVmUHRy
PE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+KTsKKworICAgIHZvaWQgZXZhbHVhdGUoTWVkaWFRdWVy
eUV2YWx1YXRvciosIGJvb2wmIG5vdGlmaWNhdGlvbk5lZWRlZCk7CisKK3ByaXZhdGU6CisgICAg
TWVkaWFRdWVyeUxpc3QoUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TWF0Y2hlcj4sIFBhc3NSZWZQdHI8
TWVkaWFMaXN0PiwgYm9vbCBtYXRjaGVzKTsKKyAgICB2b2lkIHNldE1hdGNoZXMoYm9vbCk7CisK
KyAgICBSZWZQdHI8TWVkaWFRdWVyeU1hdGNoZXI+IG1fbWF0Y2hlcjsKKyAgICBSZWZQdHI8TWVk
aWFMaXN0PiBtX21lZGlhOworICAgIGludCBtX2V2YWx1YXRpb25Sb3VuZDsgLy8gSW5kaWNhdGVz
IGlmIHRoZSBxdWVyeSBoYXMgYmVlbiBldmFsdWF0ZWQgYWZ0ZXIgdGhlIGxhc3Qgc3R5bGUgc2Vs
ZWN0b3IgY2hhbmdlLgorICAgIGludCBtX2NoYW5nZVJvdW5kOyAvLyBVc2VkIHRvIGtub3cgaWYg
dGhlIHF1ZXJ5IGhhcyBjaGFuZ2VkIGluIHRoZSBsYXN0IHN0eWxlIHNlbGVjdG9yIGNoYW5nZS4K
KyAgICBib29sIG1fbWF0Y2hlczsKK307CisKK30KKworI2VuZGlmIC8vIE1lZGlhUXVlcnlMaXN0
X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0LmlkbCBiL1dlYkNvcmUv
Y3NzL01lZGlhUXVlcnlMaXN0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5lNDI0YTc5Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3Qu
aWRsCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIHZpZXcg
eworICAgIGludGVyZmFjZSBNZWRpYVF1ZXJ5TGlzdCB7CisgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBET01TdHJpbmcgbWVkaWE7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFu
IG1hdGNoZXM7CisgICAgICAgIHZvaWQgYWRkTGlzdGVuZXIoaW4gTWVkaWFRdWVyeUxpc3RMaXN0
ZW5lciBsaXN0ZW5lcik7CisgICAgICAgIHZvaWQgcmVtb3ZlTGlzdGVuZXIoaW4gTWVkaWFRdWVy
eUxpc3RMaXN0ZW5lciBsaXN0ZW5lcik7CisgICAgfTsKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
Y3NzL01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwIGIvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxp
c3RMaXN0ZW5lci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2NkMjg2
MwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0TGlzdGVuZXIu
Y3BwCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCIKKworI2luY2x1ZGUg
Ik1lZGlhUXVlcnlMaXN0LmgiCisjaW5jbHVkZSAiU2NyaXB0RnVuY3Rpb25DYWxsLmgiCisKKyNp
ZiBVU0UoSlNDKQorI2luY2x1ZGUgIkpTTWVkaWFRdWVyeUxpc3QuaCIKKyNlbHNlCisjaW5jbHVk
ZSAiVjhNZWRpYVF1ZXJ5TGlzdC5oIgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
dm9pZCBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjpxdWVyeUNoYW5nZWQoU2NyaXB0U3RhdGUqIHN0
YXRlLCBNZWRpYVF1ZXJ5TGlzdCogcXVlcnkpCit7CisgICAgU2NyaXB0Q2FsbGJhY2sgY2FsbGJh
Y2soc3RhdGUsIG1fdmFsdWUpOworI2lmIFVTRShKU0MpCisgICAgY2FsbGJhY2suYXBwZW5kQXJn
dW1lbnQodG9KUyhzdGF0ZSwgcXVlcnkpKTsKKyNlbHNlCisgICAgY2FsbGJhY2suYXBwZW5kQXJn
dW1lbnQodG9WOChxdWVyeSkpOworI2VuZGlmCisgICAgY2FsbGJhY2suY2FsbCgpOworfQorCiti
b29sIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OmlzRXF1YWxUbyhjb25zdCBNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyKiBvdGhlcikKK3sKKyAgICByZXR1cm4gb3RoZXIgJiYgb3RoZXItPm1fdmFsdWUg
PT0gbV92YWx1ZTsKK30KKworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxp
c3RMaXN0ZW5lci5oIGIvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlYjRlYjgKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgKQEAgLTAsMCArMSw2MCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1
YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJfaAor
I2RlZmluZSBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyX2gKKworI2luY2x1ZGUgIlBsYXRmb3JtU3Ry
aW5nLmgiCisjaW5jbHVkZSAiU2NyaXB0U3RhdGUuaCIKKyNpbmNsdWRlICJTY3JpcHRWYWx1ZS5o
IgorCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBNZWRpYVF1ZXJ5TGlzdDsKKworLy8gIFNlZSBodHRwOi8vZGV2LnczLm9yZy9jc3N3
Zy9jc3NvbS12aWV3LyN0aGUtbWVkaWFxdWVyeWxpc3QtaW50ZXJmYWNlCisKK2NsYXNzIE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lcj4gY3JlYXRlKFNjcmlwdFZhbHVlIHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKCF2YWx1
ZS5pc0Z1bmN0aW9uKCkpCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKHZhbHVlKSk7CisgICAgfQorICAgIHZv
aWQgcXVlcnlDaGFuZ2VkKFNjcmlwdFN0YXRlKiwgTWVkaWFRdWVyeUxpc3QqKTsKKyAgICBib29s
IGlzRXF1YWxUbyhjb25zdCBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKik7CisKK3ByaXZhdGU6Cisg
ICAgTWVkaWFRdWVyeUxpc3RMaXN0ZW5lcihTY3JpcHRWYWx1ZSB2YWx1ZSkgOiBtX3ZhbHVlKHZh
bHVlKSB7IH0KKworICAgIFNjcmlwdFZhbHVlIG1fdmFsdWU7Cit9OworCit9CisKKyNlbmRpZiAv
LyBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL01lZGlh
UXVlcnlMaXN0TGlzdGVuZXIuaWRsIGIvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5l
ci5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmNlOGFlYwotLS0gL2Rl
di9udWxsCisrKyBiL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaWRsCkBAIC0w
LDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24g
YW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIHZpZXcgeworICAgIGlu
dGVyZmFjZSBbCisgICAgICAgIE5vU3RhdGljVGFibGVzLAorICAgICAgICBPYmpDUHJvdG9jb2ws
CisgICAgICAgIFB1cmVJbnRlcmZhY2UsCisgICAgICAgIE9taXRDb25zdHJ1Y3RvcgorICAgIF0g
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciB7CisgICAgICAgIHZvaWQgcXVlcnlDaGFuZ2VkKGluIE1l
ZGlhUXVlcnlMaXN0IGxpc3QpOworICAgIH07Cit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9N
ZWRpYVF1ZXJ5TWF0Y2hlci5jcHAgYi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TWF0Y2hlci5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDMzYzBiZgotLS0gL2Rldi9udWxs
CisrKyBiL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlNYXRjaGVyLmNwcApAQCAtMCwwICsxLDE2NiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRz
IHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
TWVkaWFRdWVyeU1hdGNoZXIuaCIKKworI2luY2x1ZGUgIkNTU1N0eWxlU2VsZWN0b3IuaCIKKyNp
bmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJGcmFt
ZVZpZXcuaCIKKyNpbmNsdWRlICJNZWRpYUxpc3QuaCIKKyNpbmNsdWRlICJNZWRpYVF1ZXJ5RXZh
bHVhdG9yLmgiCisjaW5jbHVkZSAiTWVkaWFRdWVyeUxpc3QuaCIKKyNpbmNsdWRlICJNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworTWVkaWFRdWVyeU1h
dGNoZXI6Okxpc3RlbmVyOjpMaXN0ZW5lcihQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXI+IGxpc3RlbmVyLCBQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0PiBxdWVyeSkKKyAgICA6IG1f
bGlzdGVuZXIobGlzdGVuZXIpCisgICAgLCBtX3F1ZXJ5KHF1ZXJ5KQoreworfQorCitNZWRpYVF1
ZXJ5TWF0Y2hlcjo6TGlzdGVuZXI6On5MaXN0ZW5lcigpCit7Cit9CisKK3ZvaWQgTWVkaWFRdWVy
eU1hdGNoZXI6Okxpc3RlbmVyOjpldmFsdWF0ZShTY3JpcHRTdGF0ZSogc3RhdGUsIE1lZGlhUXVl
cnlFdmFsdWF0b3IqIGV2YWx1YXRvcikKK3sKKyAgICBib29sIG5vdGlmeTsKKyAgICBtX3F1ZXJ5
LT5ldmFsdWF0ZShldmFsdWF0b3IsIG5vdGlmeSk7CisgICAgaWYgKG5vdGlmeSkKKyAgICAgICAg
bV9saXN0ZW5lci0+cXVlcnlDaGFuZ2VkKHN0YXRlLCBtX3F1ZXJ5LmdldCgpKTsKK30KKworTWVk
aWFRdWVyeU1hdGNoZXI6Ok1lZGlhUXVlcnlNYXRjaGVyKERvY3VtZW50KiBkb2N1bWVudCkKKyAg
ICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCisgICAgLCBtX2V2YWx1YXRpb25Sb3VuZCgwKQorewor
ICAgIEFTU0VSVChtX2RvY3VtZW50KTsKK30KKworTWVkaWFRdWVyeU1hdGNoZXI6On5NZWRpYVF1
ZXJ5TWF0Y2hlcigpCit7Cit9CisKK3ZvaWQgTWVkaWFRdWVyeU1hdGNoZXI6OmRvY3VtZW50RGVz
dHJveWVkKCkKK3sKKyAgICBtX2xpc3RlbmVycy5jbGVhcigpOworICAgIG1fZG9jdW1lbnQgPSAw
OworfQorCitTdHJpbmcgTWVkaWFRdWVyeU1hdGNoZXI6Om1lZGlhVHlwZSgpIGNvbnN0Cit7Cisg
ICAgaWYgKCFtX2RvY3VtZW50IHx8ICFtX2RvY3VtZW50LT5mcmFtZSgpIHx8ICFtX2RvY3VtZW50
LT5mcmFtZSgpLT52aWV3KCkpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKworICAgIHJldHVy
biBtX2RvY3VtZW50LT5mcmFtZSgpLT52aWV3KCktPm1lZGlhVHlwZSgpOworfQorCitQYXNzT3du
UHRyPE1lZGlhUXVlcnlFdmFsdWF0b3I+IE1lZGlhUXVlcnlNYXRjaGVyOjpwcmVwYXJlRXZhbHVh
dG9yKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fZG9jdW1lbnQgfHwgIW1fZG9jdW1lbnQtPmZyYW1l
KCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gbV9kb2N1
bWVudC0+ZnJhbWUoKS0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICBy
ZXR1cm4gMDsKKworICAgIEVsZW1lbnQqIGRvY3VtZW50RWxlbWVudCA9IGRvY3VtZW50LT5kb2N1
bWVudEVsZW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50RWxlbWVudCkKKyAgICAgICAgcmV0dXJu
IDA7CisKKyAgICBDU1NTdHlsZVNlbGVjdG9yKiBzdHlsZVNlbGVjdG9yID0gZG9jdW1lbnQtPnN0
eWxlU2VsZWN0b3IoKTsKKyAgICBpZiAoIXN0eWxlU2VsZWN0b3IpCisgICAgICAgIHJldHVybiAw
OworCisgICAgUmVmUHRyPFJlbmRlclN0eWxlPiByb290U3R5bGUgPSBzdHlsZVNlbGVjdG9yLT5z
dHlsZUZvckVsZW1lbnQoZG9jdW1lbnRFbGVtZW50LCAwIC8qZGVmYXVsdFBhcmVudCovLCBmYWxz
ZSAvKmFsbG93U2hhcmluZyovLCB0cnVlIC8qcmVzb2x2ZUZvclJvb3REZWZhdWx0Ki8pOworCisg
ICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBNZWRpYVF1ZXJ5RXZhbHVhdG9yKG1lZGlhVHlwZSgpLCBt
X2RvY3VtZW50LT5mcmFtZSgpLCByb290U3R5bGUuZ2V0KCkpKTsKK30KKworYm9vbCBNZWRpYVF1
ZXJ5TWF0Y2hlcjo6ZXZhbHVhdGUoTWVkaWFMaXN0KiBtZWRpYSkKK3sKKyAgICBpZiAoIW1lZGlh
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBPd25QdHI8TWVkaWFRdWVyeUV2YWx1YXRv
cj4gZXZhbHVhdG9yKHByZXBhcmVFdmFsdWF0b3IoKSk7CisgICAgcmV0dXJuIGV2YWx1YXRvciAm
JiBldmFsdWF0b3ItPmV2YWwobWVkaWEpOworfQorCitQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0
PiBNZWRpYVF1ZXJ5TWF0Y2hlcjo6bWF0Y2hNZWRpYShjb25zdCBTdHJpbmcmIHF1ZXJ5KQorewor
ICAgIGlmICghbV9kb2N1bWVudCkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBSZWZQdHI8TWVk
aWFMaXN0PiBtZWRpYSA9IE1lZGlhTGlzdDo6Y3JlYXRlKHF1ZXJ5LCBmYWxzZSk7CisgICAgcmV0
dXJuIE1lZGlhUXVlcnlMaXN0OjpjcmVhdGUodGhpcywgbWVkaWEsIGV2YWx1YXRlKG1lZGlhLmdl
dCgpKSk7Cit9CisKK3ZvaWQgTWVkaWFRdWVyeU1hdGNoZXI6OmFkZExpc3RlbmVyKFBhc3NSZWZQ
dHI8TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4gbGlzdGVuZXIsIFBhc3NSZWZQdHI8TWVkaWFRdWVy
eUxpc3Q+IHF1ZXJ5KQoreworICAgIGlmICghbV9kb2N1bWVudCB8fCAhbV9kb2N1bWVudC0+ZnJh
bWUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2xp
c3RlbmVycy5zaXplKCk7ICsraSkgeworICAgICAgICBpZiAobV9saXN0ZW5lcnNbaV0tPmxpc3Rl
bmVyKCktPmlzRXF1YWxUbyhsaXN0ZW5lci5nZXQoKSkgJiYgbV9saXN0ZW5lcnNbaV0tPnF1ZXJ5
KCkgPT0gcXVlcnkuZ2V0KCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9s
aXN0ZW5lcnMuYXBwZW5kKG5ldyBMaXN0ZW5lcihsaXN0ZW5lciwgcXVlcnkpKTsKK30KKwordm9p
ZCBNZWRpYVF1ZXJ5TWF0Y2hlcjo6cmVtb3ZlTGlzdGVuZXIoUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyPiBsaXN0ZW5lciwgUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdD4gcXVlcnkp
Cit7CisgICAgaWYgKCFtX2RvY3VtZW50IHx8ICFtX2RvY3VtZW50LT5mcmFtZSgpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBmb3IgKGludCBpID0gbV9saXN0ZW5lcnMuc2l6ZSgpIC0gMTsgaSA+
PSAwOyAtLWkpIHsKKyAgICAgICAgaWYgKG1fbGlzdGVuZXJzW2ldLT5saXN0ZW5lcigpLT5pc0Vx
dWFsVG8obGlzdGVuZXIuZ2V0KCkpICYmIG1fbGlzdGVuZXJzW2ldLT5xdWVyeSgpID09IHF1ZXJ5
LmdldCgpKSB7CisgICAgICAgICAgICBtX2xpc3RlbmVycy5yZW1vdmUoaSk7CisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgTWVkaWFRdWVyeU1hdGNoZXI6
OnN0eWxlU2VsZWN0b3JDaGFuZ2VkKCkKK3sKKyAgICBBU1NFUlQobV9kb2N1bWVudCk7CisKKyAg
ICBTY3JpcHRTdGF0ZSogZXhlYyA9IG1haW5Xb3JsZFNjcmlwdFN0YXRlKG1fZG9jdW1lbnQtPmZy
YW1lKCkpOworICAgIGlmICghZXhlYykKKyAgICAgICAgcmV0dXJuOworCisgICAgKyttX2V2YWx1
YXRpb25Sb3VuZDsKKyAgICBPd25QdHI8TWVkaWFRdWVyeUV2YWx1YXRvcj4gZXZhbHVhdG9yID0g
cHJlcGFyZUV2YWx1YXRvcigpOworICAgIGlmICghZXZhbHVhdG9yKQorICAgICAgICByZXR1cm47
CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fbGlzdGVuZXJzLnNpemUoKTsgKytpKQor
ICAgICAgICBtX2xpc3RlbmVyc1tpXS0+ZXZhbHVhdGUoZXhlYywgZXZhbHVhdG9yLmdldCgpKTsK
K30KKworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeU1hdGNoZXIuaCBiL1dl
YkNvcmUvY3NzL01lZGlhUXVlcnlNYXRjaGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uYmQzNDliYwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvY3NzL01lZGlhUXVl
cnlNYXRjaGVyLmgKQEAgLTAsMCArMSw5NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIE1lZGlhUXVlcnlNYXRjaGVyX2gKKyNkZWZpbmUgTWVkaWFRdWVyeU1hdGNoZXJfaAorCisj
aW5jbHVkZSAiU2NyaXB0U3RhdGUuaCIKKworI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgRG9jdW1lbnQ7CitjbGFzcyBNZWRpYUxpc3Q7CitjbGFzcyBNZWRpYVF1ZXJ5TGlzdDsKK2Ns
YXNzIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI7CitjbGFzcyBNZWRpYVF1ZXJ5RXZhbHVhdG9yOwor
CisvLyAgTWVkaWFRdWVyeU1hdGNoZXIgY2xhc3MgaXMgcmVzcG9uc2libGUgZm9yIGtlZXBpbmcg
YSB2ZWN0b3Igb2YgcGFpcnMKKy8vICBNZWRpYVF1ZXJ5TGlzdCB4IE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXIuIEl0IGlzIHJlc3BvbnNpYmxlIGZvciBldmFsdWF0aW5nIHRoZSBxdWVyaWVzCisvLyAg
d2hlbmV2ZXIgaXQgaXMgbmVlZGVkIGFuZCB0byBjYWxsIHRoZSBsaXN0ZW5lcnMgaWYgdGhlIGNv
cnJlc3BvbmRpbmcgcXVlcnkgaGFzIGNoYW5nZWQuCisvLyBUaGUgbGlzdGVuZXJzIG11c3QgYmUg
Y2FsbGVkIGluIHRoZSB2ZXJ5IHNhbWUgb3JkZXIgaW4gd2hpY2ggdGhleSBoYXZlIGJlZW4gYWRk
ZWQuCisKK2NsYXNzIE1lZGlhUXVlcnlNYXRjaGVyIDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFR
dWVyeU1hdGNoZXI+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5
TWF0Y2hlcj4gY3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkgeyByZXR1cm4gYWRvcHRSZWYobmV3
IE1lZGlhUXVlcnlNYXRjaGVyKGRvY3VtZW50KSk7IH0KKyAgICB+TWVkaWFRdWVyeU1hdGNoZXIo
KTsKKyAgICB2b2lkIGRvY3VtZW50RGVzdHJveWVkKCk7CisKKyAgICB2b2lkIGFkZExpc3RlbmVy
KFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4sIFBhc3NSZWZQdHI8TWVkaWFRdWVy
eUxpc3Q+KTsKKyAgICB2b2lkIHJlbW92ZUxpc3RlbmVyKFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxp
c3RMaXN0ZW5lcj4sIFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3Q+KTsKKworICAgIFBhc3NSZWZQ
dHI8TWVkaWFRdWVyeUxpc3Q+IG1hdGNoTWVkaWEoY29uc3QgU3RyaW5nJik7CisKKyAgICBpbnQg
ZXZhbHVhdGlvblJvdW5kKCkgY29uc3QgeyByZXR1cm4gbV9ldmFsdWF0aW9uUm91bmQ7IH0KKyAg
ICB2b2lkIHN0eWxlU2VsZWN0b3JDaGFuZ2VkKCk7CisgICAgYm9vbCBldmFsdWF0ZShNZWRpYUxp
c3QqKTsKKworcHJpdmF0ZToKKyAgICBjbGFzcyBMaXN0ZW5lciB7CisgICAgcHVibGljOgorICAg
ICAgICBMaXN0ZW5lcihQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+LCBQYXNzUmVm
UHRyPE1lZGlhUXVlcnlMaXN0Pik7CisgICAgICAgIH5MaXN0ZW5lcigpOworCisgICAgICAgIHZv
aWQgZXZhbHVhdGUoU2NyaXB0U3RhdGUqLCBNZWRpYVF1ZXJ5RXZhbHVhdG9yKik7CisKKyAgICAg
ICAgTWVkaWFRdWVyeUxpc3RMaXN0ZW5lciogbGlzdGVuZXIoKSB7IHJldHVybiBtX2xpc3RlbmVy
LmdldCgpOyB9CisgICAgICAgIE1lZGlhUXVlcnlMaXN0KiBxdWVyeSgpIHsgcmV0dXJuIG1fcXVl
cnkuZ2V0KCk7IH0KKworICAgIHByaXZhdGU6CisgICAgICAgIFJlZlB0cjxNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyPiBtX2xpc3RlbmVyOworICAgICAgICBSZWZQdHI8TWVkaWFRdWVyeUxpc3Q+IG1f
cXVlcnk7CisgICAgfTsKKworICAgIE1lZGlhUXVlcnlNYXRjaGVyKERvY3VtZW50Kik7CisgICAg
UGFzc093blB0cjxNZWRpYVF1ZXJ5RXZhbHVhdG9yPiBwcmVwYXJlRXZhbHVhdG9yKCkgY29uc3Q7
CisgICAgU3RyaW5nIG1lZGlhVHlwZSgpIGNvbnN0OworCisgICAgRG9jdW1lbnQqIG1fZG9jdW1l
bnQ7CisgICAgVmVjdG9yPE93blB0cjxMaXN0ZW5lcj4gPiBtX2xpc3RlbmVyczsKKworICAgIC8v
IFRoaXMgdmFsdWUgaXMgaW5jcmVtZW50ZWQgYXQgc3R5bGUgc2VsZWN0b3IgY2hhbmdlcy4KKyAg
ICAvLyBJdCBpcyB1c2VkIHRvIGF2b2lkIGV2YWx1YXRpbmcgcXVlcmllcyBtb3JlIHRoZW4gb25j
ZSBhbmQgdG8gbWFrZSBzdXJlCisgICAgLy8gdGhhdCBhIG1lZGlhIHF1ZXJ5IHJlc3VsdCBjaGFu
Z2UgaXMgbm90aWZpZWQgZXhhY3RseSBvbmNlLgorICAgIGludCBtX2V2YWx1YXRpb25Sb3VuZDsK
K307CisKK30KKworI2VuZGlmIC8vIE1lZGlhUXVlcnlNYXRjaGVyX2gKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBk
YTliZDg2Li44MmIyMDg5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysr
IGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC02LDYgKzYsNyBAQAogICogQ29weXJpZ2h0
IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSBUb3JjaCBNb2JpbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQog
ICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTkxLDYgKzkyLDggQEAKICNp
bmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJLZXlib2FyZEV2
ZW50LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIk1lZGlhUXVlcnlMaXN0Lmgi
CisjaW5jbHVkZSAiTWVkaWFRdWVyeU1hdGNoZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlRXZlbnQu
aCIKICNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiTW91c2VFdmVudFdpdGhIaXRU
ZXN0UmVzdWx0cy5oIgpAQCAtNTY3LDYgKzU3MCwxNiBAQCBEb2N1bWVudDo6fkRvY3VtZW50KCkK
ICAgICAgICAgbV9zdHlsZVNoZWV0cy0+ZG9jdW1lbnREZXN0cm95ZWQoKTsKIAogICAgIG1fd2Vh
a1JlZmVyZW5jZS0+Y2xlYXIoKTsKKworICAgIGlmIChtX21lZGlhUXVlcnlNYXRjaGVyKQorICAg
ICAgICBtX21lZGlhUXVlcnlNYXRjaGVyLT5kb2N1bWVudERlc3Ryb3llZCgpOworfQorCitNZWRp
YVF1ZXJ5TWF0Y2hlciogRG9jdW1lbnQ6Om1lZGlhUXVlcnlNYXRjaGVyKCkKK3sKKyAgICBpZiAo
IW1fbWVkaWFRdWVyeU1hdGNoZXIpCisgICAgICAgIG1fbWVkaWFRdWVyeU1hdGNoZXIgPSBNZWRp
YVF1ZXJ5TWF0Y2hlcjo6Y3JlYXRlKHRoaXMpOworICAgIHJldHVybiBtX21lZGlhUXVlcnlNYXRj
aGVyLmdldCgpOwogfQogCiAjaWYgVVNFKEpTQykKQEAgLTI4MzUsNiArMjg0OCw5IEBAIHZvaWQg
RG9jdW1lbnQ6OnN0eWxlU2VsZWN0b3JDaGFuZ2VkKFN0eWxlU2VsZWN0b3JVcGRhdGVGbGFnIHVw
ZGF0ZUZsYWcpCiAgICAgICAgIGlmICh2aWV3KCkpCiAgICAgICAgICAgICB2aWV3KCktPnNjaGVk
dWxlUmVsYXlvdXQoKTsKICAgICB9CisKKyAgICBpZiAobV9tZWRpYVF1ZXJ5TWF0Y2hlcikKKyAg
ICAgICAgbV9tZWRpYVF1ZXJ5TWF0Y2hlci0+c3R5bGVTZWxlY3RvckNoYW5nZWQoKTsKIH0KIAog
dm9pZCBEb2N1bWVudDo6YWRkU3R5bGVTaGVldENhbmRpZGF0ZU5vZGUoTm9kZSogbm9kZSwgYm9v
bCBjcmVhdGVkQnlQYXJzZXIpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCAxMzM0YWEzLi5mYzA5NmRiIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAg
LTUsNiArNSw3IEBACiAgKiAgICAgICAgICAgKEMpIDIwMDYgQWxleGV5IFByb3NrdXJ5YWtvdiAo
YXBAd2Via2l0Lm9yZykKICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywg
MjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMDgsIDIwMDkgVG9yY2ggTW9iaWxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLykKKyAqIENvcHlyaWdodCAoQykgMjAxMCBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICAqCiAgKiBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYwpAQCAtOTMsNiArOTQsOCBAQCBjbGFzcyBJbnRQb2ludDsKIGNsYXNzIERPTVdyYXBw
ZXJXb3JsZDsKIGNsYXNzIEpTTm9kZTsKIGNsYXNzIE1lZGlhQ2FuU3RhcnRMaXN0ZW5lcjsKK2Ns
YXNzIE1lZGlhUXVlcnlMaXN0OworY2xhc3MgTWVkaWFRdWVyeU1hdGNoZXI7CiBjbGFzcyBNb3Vz
ZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzOwogY2xhc3MgTm9kZUZpbHRlcjsKIGNsYXNzIE5vZGVJ
dGVyYXRvcjsKQEAgLTIwMiw2ICsyMDUsOCBAQCBwdWJsaWM6CiAgICAgfQogICAgIHZpcnR1YWwg
fkRvY3VtZW50KCk7CiAKKyAgICBNZWRpYVF1ZXJ5TWF0Y2hlciogbWVkaWFRdWVyeU1hdGNoZXIo
KTsKKwogICAgIHVzaW5nIENvbnRhaW5lck5vZGU6OnJlZjsKICAgICB1c2luZyBDb250YWluZXJO
b2RlOjpkZXJlZjsKIApAQCAtMTM0MSw2ICsxMzQ2LDggQEAgcHJpdmF0ZToKICAgICAKICAgICBi
b29sIG1fZGlyZWN0aW9uU2V0T25Eb2N1bWVudEVsZW1lbnQ7CiAgICAgYm9vbCBtX3dyaXRpbmdN
b2RlU2V0T25Eb2N1bWVudEVsZW1lbnQ7CisKKyAgICBSZWZQdHI8TWVkaWFRdWVyeU1hdGNoZXI+
IG1fbWVkaWFRdWVyeU1hdGNoZXI7CiB9OwogCiBpbmxpbmUgYm9vbCBEb2N1bWVudDo6aGFzRWxl
bWVudFdpdGhJZChBdG9taWNTdHJpbmdJbXBsKiBpZCkgY29uc3QKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXgg
MzQ4NGEyNy4uZDJkMDlkNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAK
KysrIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICog
Q29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRz
IHN1YnNpZGlhcnkoLWllcykKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjUs
NyArNjYsOCBAQAogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1
ZGUgIktVUkwuaCIKICNpbmNsdWRlICJMb2NhdGlvbi5oIgotI2luY2x1ZGUgIlN0eWxlTWVkaWEu
aCIKKyNpbmNsdWRlICJNZWRpYVF1ZXJ5TGlzdC5oIgorI2luY2x1ZGUgIk1lZGlhUXVlcnlNYXRj
aGVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZUV2ZW50LmgiCiAjaW5jbHVkZSAiTmF2aWdhdG9yLmgi
CiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uQ2VudGVyLmgiCkBAIC04MSw2ICs4Myw3IEBACiAjaW5j
bHVkZSAiU3RvcmFnZS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VBcmVhLmgiCiAjaW5jbHVkZSAiU3Rv
cmFnZU5hbWVzcGFjZS5oIgorI2luY2x1ZGUgIlN0eWxlTWVkaWEuaCIKICNpbmNsdWRlICJTdWRk
ZW5UZXJtaW5hdGlvbi5oIgogI2luY2x1ZGUgIldlYktpdFBvaW50LmgiCiAjaW5jbHVkZSA8YWxn
b3JpdGhtPgpAQCAtNDA5LDYgKzQxMiwxMSBAQCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBET01X
aW5kb3c6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdAogICAgIHJldHVybiBkb2N1bWVu
dCgpOwogfQogCitQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0PiBET01XaW5kb3c6Om1hdGNoTWVk
aWEoY29uc3QgU3RyaW5nJiBtZWRpYSkKK3sKKyAgICByZXR1cm4gZG9jdW1lbnQoKSA/IGRvY3Vt
ZW50KCktPm1lZGlhUXVlcnlNYXRjaGVyKCktPm1hdGNoTWVkaWEobWVkaWEpIDogMDsKK30KKwog
dm9pZCBET01XaW5kb3c6OmRpc2Nvbm5lY3RGcmFtZSgpCiB7CiAgICAgbV9mcmFtZSA9IDA7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmggYi9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmgKaW5kZXggMjE1Njc5MS4uMzJlNzIyNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5oCisrKyBiL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaApAQCAtMSw1ICsxLDYgQEAK
IC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDkgQXBwbGUgSW5jLiAgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBh
bmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtNTgsMTAgKzU5LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBIaXN0
b3J5OwogICAgIGNsYXNzIElEQkZhY3Rvcnk7CiAgICAgY2xhc3MgTG9jYXRpb247Ci0gICAgY2xh
c3MgU3R5bGVNZWRpYTsKKyAgICBjbGFzcyBNZWRpYVF1ZXJ5TGlzdDsKICAgICBjbGFzcyBOYXZp
Z2F0b3I7CiAgICAgY2xhc3MgTm9kZTsKICAgICBjbGFzcyBOb3RpZmljYXRpb25DZW50ZXI7Cisg
ICAgY2xhc3MgU3R5bGVNZWRpYTsKIAogI2lmIEVOQUJMRShXRUJfVElNSU5HKQogICAgIGNsYXNz
IFBlcmZvcm1hbmNlOwpAQCAtOTcsNiArOTksOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAg
ICAgICAgdm9pZCBjbGVhcigpOwogCisgICAgICAgIFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3Q+
IG1hdGNoTWVkaWEoY29uc3QgU3RyaW5nJik7CisKICNpZiBFTkFCTEUoT1JJRU5UQVRJT05fRVZF
TlRTKQogICAgICAgICAvLyBUaGlzIGlzIHRoZSBpbnRlcmZhY2Ugb3JpZW50YXRpb24gaW4gZGVn
cmVlcy4gU29tZSBleGFtcGxlcyBhcmU6CiAgICAgICAgIC8vICAwIGlzIHN0cmFpZ2h0IHVwOyAt
OTAgaXMgd2hlbiB0aGUgZGV2aWNlIGlzIHJvdGF0ZWQgOTAgY2xvY2t3aXNlOwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwgYi9XZWJDb3JlL3BhZ2UvRE9NV2luZG93Lmlk
bAppbmRleCBiZjU3M2E2Li5kMTBjNmE4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmlkbAorKysgYi9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbApAQCAtMTQwLDcgKzE0MCwx
MCBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERvY3VtZW50
IGRvY3VtZW50OwogCiAgICAgICAgIC8vIENTU09NIFZpZXcgTW9kdWxlCisKKyAgICAgICAgLy8g
c3R5bGVNZWRpYSBoYXMgYmVlbiByZW1vdmVkIGZyb20gdGhlIGNzc29tLXZpZXcgc3BlY2lmaWNh
dGlvbi4KICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFN0eWxlTWVkaWEgc3R5bGVNZWRpYTsK
KyAgICAgICAgTWVkaWFRdWVyeUxpc3QgbWF0Y2hNZWRpYShpbiBET01TdHJpbmcgcXVlcnkpOwog
CiAgICAgICAgIC8vIERPTSBMZXZlbCAyIFN0eWxlIEludGVyZmFjZQogICAgICAgICBDU1NTdHls
ZURlY2xhcmF0aW9uIGdldENvbXB1dGVkU3R5bGUoaW4gRWxlbWVudCBlbGVtZW50LAotLSAKMS43
LjIuMgoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73769</attachid>
            <date>2010-11-12 13:05:53 -0800</date>
            <delta_ts>2010-11-20 01:00:55 -0800</delta_ts>
            <desc>patch</desc>
            <filename>0001-Implement-CSSOM-View-matchMedia-interface.patch</filename>
            <type>text/plain</type>
            <size>103020</size>
            <attacher name="Luiz Agostini">luiz</attacher>
            
              <data encoding="base64">RnJvbSBhYjIwZDMxMmI3YjcxMDhjZDgwOWFhN2JiMWM5NzAzOWNiMGExYWFkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWl6IEFnb3N0aW5pIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IFRodSwgMjEgT2N0IDIwMTAgMjE6MTg6NTIgLTAzMDAKU3ViamVjdDogW1BB
VENIXSBJbXBsZW1lbnQgQ1NTT00gVmlldyBtYXRjaE1lZGlhIGludGVyZmFjZQogaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3MjA1CgpSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KCldlYkNvcmU6CgpOZXcgaW50ZXJmYWNlcyBtYXkgYmUgdXNlZCB0byBldmFsdWF0
ZSBtZWRpYSBxdWVyaWVzIGFuZCB0byBhc3NvY2lhdGUgbGlzdGVuZXJzCnRvIG1lZGlhIHF1ZXJp
ZXMuIFRob3NlIGxpc3RlbmVycyBhcmUgY2FsbGVkIHdoZW5ldmVyIHRoZSBhc3NvY2lhdGVkIHF1
ZXJ5IGNoYW5nZXMuClNwZWNpZmljYXRpb24gbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9kZXYudzMu
b3JnL2Nzc3dnL2Nzc29tLXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2UKCm9wZXJh
dG9yPT0gYWRkZWQgdG8gSlMgdmVyc2lvbiBvZiBTY3JpcHRWYWx1ZS4KTWV0aG9kIGlzRnVuY3Rp
b24gYWRkZWQgdG8gSlMgYW5kIFY4IHZlcnNpb25zIG9mIFNjcmlwdFZhbHVlLgoKKiBiaW5kaW5n
cy9qcy9TY3JpcHRWYWx1ZS5jcHA6CihXZWJDb3JlOjpTY3JpcHRWYWx1ZTo6aXNGdW5jdGlvbik6
CiogYmluZGluZ3MvanMvU2NyaXB0VmFsdWUuaDoKKFdlYkNvcmU6OlNjcmlwdFZhbHVlOjpvcGVy
YXRvcj09KToKKiBiaW5kaW5ncy92OC9TY3JpcHRWYWx1ZS5oOgooV2ViQ29yZTo6U2NyaXB0VmFs
dWU6OmlzRnVuY3Rpb24pOgoKU29tZSBjaGFuZ2VzIHdlcmUgbmVlZGVkIHRvIHRoZSBjb2RlIGdl
bmVyYXRvcnMgdG8gaGFuZGxlIHR5cGUgTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci4KCiogYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbToKKiBiaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbToKKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbToK
ClNvbWUgY2hhbmdlcyB0byB0aGUgYmluZGluZ3MgdGVzdCByZXN1bHRzIHRoYXQgd2VyZSBwcmV2
aW91c2x5IGFkZGVkLgoKKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01U
ZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHA6CiogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dP
YmplY3QvV2ViS2l0RE9NVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaDoKKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHA6CihXZWJDb3Jl
Ojpqc1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBlRnVuY3Rpb25NZXRob2QpOgoq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNw
cDoKKFdlYkNvcmU6OlRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVySW50ZXJuYWw6Om1ldGhvZENh
bGxiYWNrKToKKFdlYkNvcmU6OkNvbmZpZ3VyZVY4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJU
ZW1wbGF0ZSk6CgpOZXcgaW50ZXJmYWNlczoKCiogY3NzL01lZGlhUXVlcnlMaXN0LmNwcDogQWRk
ZWQuCiogY3NzL01lZGlhUXVlcnlMaXN0Lmg6IEFkZGVkLgoqIGNzcy9NZWRpYVF1ZXJ5TGlzdC5p
ZGw6IEFkZGVkLgoKKiBjc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHA6IEFkZGVkLgoqIGNz
cy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmg6IEFkZGVkLgoqIGNzcy9NZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyLmlkbDogQWRkZWQuCgpUbyBhdm9pZCBhZGRpbmcgY29kZSB0byBjbGFzc2VzIERPTVdp
bmRvdyBhbmQgRG9jdW1lbnQgYSBuZXcgY2xhc3MgTWVkaWFRdWVyeU1hdGNoZXIgd2FzIGNyZWF0
ZWQuCgoqIGNzcy9NZWRpYVF1ZXJ5TWF0Y2hlci5jcHA6IEFkZGVkLgoqIGNzcy9NZWRpYVF1ZXJ5
TWF0Y2hlci5oOiBBZGRlZC4KCkRvY3VtZW50IGFuZCBET01XaW5kb3cgaGF2ZSBjaGFuZ2VkIHRv
IHN1cHBvcnQgbmV3IGZlYXR1cmVzLiBET01XaW5kb3cgaXMgdGhlIGNsYXNzIHRoYXQKcHVibGlz
aGVzIG1ldGhvZHMgbWF0Y2hNZWRpYSBidXQgZm9yIHBhZ2UgY2FjaGUgdG8gd29yayBwcm9wZXJs
eSAgdGhlIHJlZmVyZW5jZSB0byB0aGUKTWVkaWFRdWVyeU1hdGNoZXIgbXVzdCBiZSBpbiBEb2N1
bWVudC4KCiogZG9tL0RvY3VtZW50LmNwcDoKKFdlYkNvcmU6OkRvY3VtZW50Ojp+RG9jdW1lbnQp
OgooV2ViQ29yZTo6RG9jdW1lbnQ6Om1lZGlhUXVlcnlNYXRjaGVyKToKKFdlYkNvcmU6OkRvY3Vt
ZW50OjpzdHlsZVNlbGVjdG9yQ2hhbmdlZCk6CiogZG9tL0RvY3VtZW50Lmg6CiogcGFnZS9ET01X
aW5kb3cuY3BwOgooV2ViQ29yZTo6RE9NV2luZG93OjptYXRjaE1lZGlhKToKKiBwYWdlL0RPTVdp
bmRvdy5oOgoqIHBhZ2UvRE9NV2luZG93LmlkbDoKCkJ1aWxkIHN5c3RlbXMKCiogQ01ha2VMaXN0
cy50eHQ6CiogRGVyaXZlZFNvdXJjZXMubWFrZToKKiBHTlVtYWtlZmlsZS5hbToKKiBXZWJDb3Jl
Lmd5cGk6CiogV2ViQ29yZS5wcmk6CiogV2ViQ29yZS5wcm86CiogV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2o6CiogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgoqIGJpbmRp
bmdzL2dvYmplY3QvR05VbWFrZWZpbGUuYW06CgpUZXN0czogZmFzdC9tZWRpYS9tZWRpYS1xdWVy
eS1saXN0LTAxLmh0bWwKICAgICAgIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMi5odG1s
CiAgICAgICBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMuaHRtbAogICAgICAgZmFzdC9t
ZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA0Lmh0bWwKICAgICAgIGZhc3QvbWVkaWEvbWVkaWEtcXVl
cnktbGlzdC0wNS5odG1sCiAgICAgICBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDYuaHRt
bAogICAgICAgZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA3Lmh0bWwKCkxheW91dFRlc3Rz
OgoKTmV3IHByb3BlcnR5IG1hdGNoTWVkaWEgd2FzIGFkZGVkIHRvIHdpbmRvdy4KCiogZmFzdC9k
b20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dDoKKiBmYXN0L2RvbS9XaW5k
b3cvd2luZG93LXByb3BlcnR5LWRlc2NyaXB0b3JzLWV4cGVjdGVkLnR4dDoKCndpbmRvdy5tYXRj
aE1lZGlhIGFuZCBNZWRpYVF1ZXJ5TGlzdCB0ZXN0cy4KCiogZmFzdC9tZWRpYS9tZWRpYS1xdWVy
eS1saXN0LTAxLWV4cGVjdGVkLnR4dDogQWRkZWQuCiogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1s
aXN0LTAxLmh0bWw6IEFkZGVkLgoKVGhlIGZvbGxvd2luZyB0ZXN0cyBkZXBlbmQgb24gTGF5b3V0
VGVzdENvbnRyb2xsZXI6OnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCkgdG8gd29yay4KQXMgaXQg
aXMgb25seSBpbXBsZW1lbnRlZCBieSBRdCBhbmQgR3RrIHRoZSB0ZXN0cyBuZWVkZWQgdG8gYmUg
c2tpcHBlZCBpbiBhbGwgb3RoZXIgcGxhdGZvcm1zLgoKKiBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5
LWxpc3QtMDItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKiBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxp
c3QtMDIuaHRtbDogQWRkZWQuCiogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAzLWV4cGVj
dGVkLnR4dDogQWRkZWQuCiogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAzLmh0bWw6IEFk
ZGVkLgoqIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNC1leHBlY3RlZC50eHQ6IEFkZGVk
LgoqIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNC5odG1sOiBBZGRlZC4KKiBmYXN0L21l
ZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKiBmYXN0L21lZGlh
L21lZGlhLXF1ZXJ5LWxpc3QtMDUuaHRtbDogQWRkZWQuCiogZmFzdC9tZWRpYS9tZWRpYS1xdWVy
eS1saXN0LTA2LWV4cGVjdGVkLnR4dDogQWRkZWQuCiogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1s
aXN0LTA2Lmh0bWw6IEFkZGVkLgoqIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgoqIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNy5odG1sOiBB
ZGRlZC4KKiBwbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CiogcGxhdGZv
cm0vbWFjL1NraXBwZWQ6CiogcGxhdGZvcm0vd2luL1NraXBwZWQ6Ci0tLQogTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDM2ICsrKysrCiAuLi4v
ZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dCB8ICAgIDEgKwog
Li4uL3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy1leHBlY3RlZC50eHQgICAgICAgfCAgICAx
ICsKIC4uLi9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDEtZXhwZWN0ZWQudHh0ICAgIHwg
ICAxNSArKwogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAxLmh0bWwg
ICAgfCAgIDUyICsrKysrKwogLi4uL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMi1leHBl
Y3RlZC50eHQgICAgfCAgIDI1ICsrKwogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVy
eS1saXN0LTAyLmh0bWwgICAgfCAgIDYzICsrKysrKysrCiAuLi4vZmFzdC9tZWRpYS9tZWRpYS1x
dWVyeS1saXN0LTAzLWV4cGVjdGVkLnR4dCAgICB8ICAgNDEgKysrKysKIExheW91dFRlc3RzL2Zh
c3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMy5odG1sICAgIHwgICA3MiArKysrKysrKysKIC4u
Li9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDQtZXhwZWN0ZWQudHh0ICAgIHwgICAyNSAr
KysKIExheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNC5odG1sICAgIHwg
ICA3NSArKysrKysrKysKIC4uLi9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDUtZXhwZWN0
ZWQudHh0ICAgIHwgICAgNyArCiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxp
c3QtMDUuaHRtbCAgICB8ICAgNDcgKysrKysrCiAuLi4vZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1s
aXN0LTA2LWV4cGVjdGVkLnR4dCAgICB8ICAgIDcgKwogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9t
ZWRpYS1xdWVyeS1saXN0LTA2Lmh0bWwgICAgfCAgIDM2ICsrKysrCiAuLi4vZmFzdC9tZWRpYS9t
ZWRpYS1xdWVyeS1saXN0LTA3LWV4cGVjdGVkLnR4dCAgICB8ICAgIDcgKwogTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA3Lmh0bWwgICAgfCAgIDQ5ICsrKysrKwogLi4u
L3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dCAgICAgICAgfCAgICA4ICst
CiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZCAgICAgICAgICAgICAgICAgICB8ICAg
IDggKy0KIExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkICAgICAgICAgICAgICAgICAg
IHwgICAgNiArCiBXZWJDb3JlL0NNYWtlTGlzdHMudHh0ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgIDQgKwogV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgIDg2ICsrKysrKysrKysKIFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSAg
ICAgICAgICAgICAgICAgICAgICAgIHwgICAgNCArLQogV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEwICstCiBXZWJDb3JlL1dlYkNvcmUuZ3lw
aSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDkgKy0KIFdlYkNvcmUvV2ViQ29y
ZS5wcmkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBXZWJDb3JlL1dl
YkNvcmUucHJvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDggKy0KIFdlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogICAgICAgICAgICAgIHwgICA4MCArKysr
KysrKysrCiBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiAgICAgICAg
ICB8ICAgMzYgKysrKysKIFdlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9HTlVtYWtlZmlsZS5hbSAg
ICAgICAgICAgIHwgICAgMyArCiBXZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFZhbHVlLmNwcCAg
ICAgICAgICAgICAgICB8ICAgIDcgKwogV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRWYWx1ZS5o
ICAgICAgICAgICAgICAgICAgfCAgICAzICsKIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9yR09iamVjdC5wbSAgIHwgICAxOSArKy0KIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG0gICAgICAgIHwgICAxMSArKwogV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbSAgICAgICAgfCAgIDExICsrLQogLi4uL1dlYktpdERP
TVRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcCAgICAgICAgfCAgIDE3IC0tCiAuLi4vR09i
amVjdC9XZWJLaXRET01UZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oICB8ICAgIDMgLQogLi4u
L3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgICAgICAgfCAgICA0ICst
CiAuLi4vdGVzdC9WOC9WOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcCAgICAgICB8ICAg
MTUgKy0KIFdlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0VmFsdWUuaCAgICAgICAgICAgICAgICAg
IHwgICAgNSArCiBXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdC5jcHAgICAgICAgICAgICAgICAg
ICAgICB8ICAxMDAgKysrKysrKysrKysrCiBXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdC5oICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgNzIgKysrKysrKysrCiBXZWJDb3JlL2Nzcy9NZWRpYVF1
ZXJ5TGlzdC5pZGwgICAgICAgICAgICAgICAgICAgICB8ICAgMzMgKysrKwogV2ViQ29yZS9jc3Mv
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgICAgICAgICAgICAgfCAgIDU2ICsrKysrKysKIFdl
YkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCAgICAgICAgICAgICAgIHwgICA2MCAr
KysrKysrCiBXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmlkbCAgICAgICAgICAg
ICB8ICAgMzUgKysrKwogV2ViQ29yZS9jc3MvTWVkaWFRdWVyeU1hdGNoZXIuY3BwICAgICAgICAg
ICAgICAgICAgfCAgMTY2ICsrKysrKysrKysrKysrKysrKysrCiBXZWJDb3JlL2Nzcy9NZWRpYVF1
ZXJ5TWF0Y2hlci5oICAgICAgICAgICAgICAgICAgICB8ICAgOTUgKysrKysrKysrKysKIFdlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNiArKwog
V2ViQ29yZS9kb20vRG9jdW1lbnQuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA2
ICsKIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAxMCArLQogV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgICA2ICstCiBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbCAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgIDMgKwogNTMgZmlsZXMgY2hhbmdlZCwgMTUzMSBpbnNlcnRpb25zKCspLCA0
NCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L21lZGlh
L21lZGlhLXF1ZXJ5LWxpc3QtMDEtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAxLmh0bWwKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDItZXhwZWN0
ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1x
dWVyeS1saXN0LTAyLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L21l
ZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQg
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAzLmh0bWwKIGNyZWF0ZSBt
b2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDQtZXhw
ZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRp
YS1xdWVyeS1saXN0LTA0Lmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0
L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDUtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2
NDQgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA1Lmh0bWwKIGNyZWF0
ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDYt
ZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9t
ZWRpYS1xdWVyeS1saXN0LTA2Lmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9m
YXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDctZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAx
MDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA3Lmh0bWwKIG1v
ZGUgY2hhbmdlIDEwMDY0NCA9PiAxMDA3NTUgV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0LmNw
cAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0LmgKIGNyZWF0
ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdC5pZGwKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcAogY3JlYXRlIG1v
ZGUgMTAwNjQ0IFdlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaAogY3JlYXRlIG1v
ZGUgMTAwNjQ0IFdlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaWRsCiBjcmVhdGUg
bW9kZSAxMDA2NDQgV2ViQ29yZS9jc3MvTWVkaWFRdWVyeU1hdGNoZXIuY3BwCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgV2ViQ29yZS9jc3MvTWVkaWFRdWVyeU1hdGNoZXIuaAoKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlZWM3ODc3
Li4wOWE0MDM0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTAtMTAtMjEgIEx1aXogQWdvc3Rp
bmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IENTU09NIFZpZXcgbWF0Y2hNZWRp
YSBpbnRlcmZhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTM3MjA1CisKKyAgICAgICAgTmV3IHByb3BlcnR5IG1hdGNoTWVkaWEgd2FzIGFkZGVkIHRv
IHdpbmRvdy4KKworICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1k
ZXNjcmlwdG9ycy1leHBlY3RlZC50eHQ6CisKKyAgICAgICAgd2luZG93Lm1hdGNoTWVkaWEgYW5k
IE1lZGlhUXVlcnlMaXN0IHRlc3RzLgorCisgICAgICAgICogZmFzdC9tZWRpYS9tZWRpYS1xdWVy
eS1saXN0LTAxLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYS9tZWRp
YS1xdWVyeS1saXN0LTAxLmh0bWw6IEFkZGVkLgorCisgICAgICAgIFRoZSBmb2xsb3dpbmcgdGVz
dHMgZGVwZW5kIG9uIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRWaWV3TW9kZU1lZGlhRmVhdHVy
ZSgpIHRvIHdvcmsuCisgICAgICAgIEFzIGl0IGlzIG9ubHkgaW1wbGVtZW50ZWQgYnkgUXQgYW5k
IEd0ayB0aGUgdGVzdHMgbmVlZGVkIHRvIGJlIHNraXBwZWQgaW4gYWxsIG90aGVyIHBsYXRmb3Jt
cy4KKworICAgICAgICAqIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMi1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMi5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA0LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0
LTA0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0w
NS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnkt
bGlzdC0wNS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxp
c3QtMDYtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhL21lZGlhLXF1
ZXJ5LWxpc3QtMDYuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYS9tZWRpYS1xdWVy
eS1saXN0LTA3LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYS9tZWRp
YS1xdWVyeS1saXN0LTA3Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVt
L3Rlc3RfZXhwZWN0YXRpb25zLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2tpcHBlZDoK
KyAgICAgICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDoKKwogMjAxMC0xMS0xMiAgSnVzdGluIFNj
aHVoICA8anNjaHVoQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJh
cnRoLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9w
ZXJ0aWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ct
cHJvcGVydGllcy1leHBlY3RlZC50eHQKaW5kZXggYWZiZjQ1Ni4uNGUyMjMzYiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMt
ZXhwZWN0ZWQudHh0CkBAIC0yMjk2LDYgKzIyOTYsNyBAQCB3aW5kb3cubG9jYXRpb25iYXIudmlz
aWJsZSBbYm9vbGVhbl0KIHdpbmRvdy5sb2cgW2Z1bmN0aW9uXQogd2luZG93LmxvZ1Byb3BlcnRp
ZXMgW2Z1bmN0aW9uXQogd2luZG93LmxvZ1ZhbHVlIFtmdW5jdGlvbl0KK3dpbmRvdy5tYXRjaE1l
ZGlhIFtmdW5jdGlvbl0KIHdpbmRvdy5tZW51YmFyIFtvYmplY3QgQmFySW5mb10KIHdpbmRvdy5t
ZW51YmFyLnZpc2libGUgW2Jvb2xlYW5dCiB3aW5kb3cubW92ZUJ5IFtmdW5jdGlvbl0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktZGVzY3Jp
cHRvcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1w
cm9wZXJ0eS1kZXNjcmlwdG9ycy1leHBlY3RlZC50eHQKaW5kZXggZGMwYzY5OC4uOTAzZDJlNiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1k
ZXNjcmlwdG9ycy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93
L3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy1leHBlY3RlZC50eHQKQEAgLTUwOSw2ICs1MDks
NyBAQCBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnZ2V0TWF0
Y2hlZENTU1J1bGVzJykgaXMgdW5kZWZpbmVkLgogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKHdpbmRvdywgJ2dldFNlbGVjdGlvbicpIGlzIHVuZGVmaW5lZC4KIFBBU1MgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdoYXNPd25Qcm9wZXJ0eScpIGlz
IHVuZGVmaW5lZC4KIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3cs
ICdpc1Byb3RvdHlwZU9mJykgaXMgdW5kZWZpbmVkLgorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKHdpbmRvdywgJ21hdGNoTWVkaWEnKSBpcyB1bmRlZmluZWQuCiBQQVNTIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnbW92ZUJ5JykgaXMgdW5kZWZp
bmVkLgogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ21vdmVU
bycpIGlzIHVuZGVmaW5lZC4KIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3
aW5kb3csICdvcGVuJykgaXMgdW5kZWZpbmVkLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uNGViYTNmNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxNSBAQAorVGVzdCB0aGUgTWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlOiBodHRwOi8vZGV2Lncz
Lm9yZy9jc3N3Zy9jc3NvbS12aWV3LyN0aGUtbWVkaWFxdWVyeWxpc3QtaW50ZXJmYWNlLgorCisi
c2NyZWVuIiBldmFsdWF0ZXMgdG8gdHJ1ZTogUEFTUworInByb2plY3Rpb24iIGV2YWx1YXRlcyB0
byBmYWxzZTogUEFTUworImFsbCBhbmQgKGNvbG9yKSIgZXZhbHVhdGVzIHRvIHRydWU6IFBBU1MK
KyJub3QgcHJvamVjdGlvbiBhbmQgKGNvbG9yKSIgZXZhbHVhdGVzIHRvIHRydWU6IFBBU1MKKyIo
Y29sb3IpIiBldmFsdWF0ZXMgdG8gdHJ1ZTogUEFTUworIihjb2xvciIgZXZhbHVhdGVzIHRvIGZh
bHNlOiBQQVNTCisiY29sb3IiIGV2YWx1YXRlcyB0byBmYWxzZTogUEFTUworImdhcmJhZ2UiIGV2
YWx1YXRlcyB0byBmYWxzZTogUEFTUworIihtaW4tZGV2aWNlLXdpZHRoOiAxMDBweCkiIGV2YWx1
YXRlcyB0byB0cnVlOiBQQVNTCisiKG1pbi1kZXZpY2Utd2lkdGg6IDUwMDAwcHgpIiBldmFsdWF0
ZXMgdG8gZmFsc2U6IFBBU1MKKyIoLXdlYmtpdC1hbmltYXRpb246IDEpIiBldmFsdWF0ZXMgdG8g
dHJ1ZTogUEFTUworIigtd2Via2l0LXRyYW5zZm9ybS0yZCkiIGV2YWx1YXRlcyB0byB0cnVlOiBQ
QVNTCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlz
dC0wMS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAxLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzNkY2M2NwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMS5odG1s
CkBAIC0wLDAgKzEsNTIgQEAKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+VGVzdCBDU1NPTSBWaWV3
IG1vZHVsZTogTWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlPC90aXRsZT4KKzxzdHlsZSB0eXBlPSJ0
ZXh0L2NzcyI+CisKKzwvc3R5bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hh
cnNldD0idXRmLTgiPgorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworICAgIGZ1bmN0aW9uIGxv
ZyhtKQorICAgIHsKKyAgICAgICAgdmFyIHJlc3VsdHMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgncmVzdWx0cycpOworICAgICAgICByZXN1bHRzLmlubmVySFRNTCArPSBtICsgJzxicj4nOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIHRlc3RRdWVyeShxdWVyeSwgZXhwZWN0ZWQpCisgICAgewor
ICAgICAgICB2YXIgaXNUcnVlID0gd2luZG93Lm1hdGNoTWVkaWEocXVlcnkpLm1hdGNoZXM7Cisg
ICAgICAgIHZhciBtZXNzYWdlID0gJ1wiJyArIHF1ZXJ5ICsgJ1wiIGV2YWx1YXRlcyB0byAnICsg
KGlzVHJ1ZSA/ICd0cnVlJyA6ICdmYWxzZScpOworICAgICAgICBtZXNzYWdlICs9IChpc1RydWUg
PT0gZXhwZWN0ZWQpID8gJzogUEFTUycgOiAnOiBGQUlMJzsKKyAgICAgICAgbG9nKG1lc3NhZ2Up
OworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3RzKCkKKyAgICB7CisgICAgICAgIHRlc3RR
dWVyeSgnc2NyZWVuJywgdHJ1ZSk7CisgICAgICAgIHRlc3RRdWVyeSgncHJvamVjdGlvbicsIGZh
bHNlKTsKKworICAgICAgICB0ZXN0UXVlcnkoJ2FsbCBhbmQgKGNvbG9yKScsIHRydWUpOworICAg
ICAgICB0ZXN0UXVlcnkoJ25vdCBwcm9qZWN0aW9uIGFuZCAoY29sb3IpJywgdHJ1ZSk7CisgICAg
ICAgIHRlc3RRdWVyeSgnKGNvbG9yKScsIHRydWUpOworICAgICAgICB0ZXN0UXVlcnkoJyhjb2xv
cicsIGZhbHNlKTsKKyAgICAgICAgdGVzdFF1ZXJ5KCdjb2xvcicsIGZhbHNlKTsKKworICAgICAg
ICB0ZXN0UXVlcnkoJ2dhcmJhZ2UnLCBmYWxzZSk7CisKKyAgICAgICAgdGVzdFF1ZXJ5KCcobWlu
LWRldmljZS13aWR0aDogMTAwcHgpJywgdHJ1ZSk7CisgICAgICAgIHRlc3RRdWVyeSgnKG1pbi1k
ZXZpY2Utd2lkdGg6IDUwMDAwcHgpJywgZmFsc2UpOworCisgICAgICAgIHRlc3RRdWVyeSgnKC13
ZWJraXQtYW5pbWF0aW9uOiAxKScsIHRydWUpOworICAgICAgICB0ZXN0UXVlcnkoJygtd2Via2l0
LXRyYW5zZm9ybS0yZCknLCB0cnVlKTsKKyAgICB9CisKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHkgb25sb2FkPSJydW5UZXN0cygpIj4KKyAgICA8cD5UZXN0IHRoZSBNZWRpYVF1ZXJ5TGlzdCBp
bnRlcmZhY2U6IDxhIGhyZWY9Imh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzc29tLXZpZXcvI3Ro
ZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2UiIHRpdGxlPSJDU1NPTSBWaWV3IE1vZHVsZSI+aHR0
cDovL2Rldi53My5vcmcvY3Nzd2cvY3Nzb20tdmlldy8jdGhlLW1lZGlhcXVlcnlsaXN0LWludGVy
ZmFjZTwvYT4uPC9wPgorICAgIDxkaXYgaWQ9InJlc3VsdHMiPgorICAgIDwvZGl2PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVy
eS1saXN0LTAyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVl
cnktbGlzdC0wMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uNjM2NDNkOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVk
aWEtcXVlcnktbGlzdC0wMi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNSBAQAorVGVzdCB0aGUg
TWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlOiBodHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9jc3NvbS12
aWV3LyN0aGUtbWVkaWFxdWVyeWxpc3QtaW50ZXJmYWNlLgorCitUZXN0aW5nIGFkZExpc3RlbmVy
IGluIGRpZmZlcmVudCBNZWRpYVF1ZXJ5TGlzdCBvYmplY3RzIGFuZCB0aGUgY2FsbGJhY2sgY2Fs
bCBzZXF1ZW5jZQorCistLS0tLS0tLS0tLS0tIG1pbmltaXplZCAtLS0tLS0tLS0tLS0tCitbMV0g
LSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFuZ2VkIHRvIGZhbHNlCitb
MV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCkgY2hhbmdlZCB0byB0cnVl
CitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFuZ2VkIHRvIGZh
bHNlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCkgY2hhbmdlZCB0
byB0cnVlCistLS0tLS0tLS0tLS0tIG1heGltaXplZCAtLS0tLS0tLS0tLS0tCitbMV0gLSBxdWVy
eSAoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCkgY2hhbmdlZCB0byBmYWxzZQorWzFdIC0g
cXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtYXhpbWl6ZWQpIGNoYW5nZWQgdG8gdHJ1ZQorWzJd
IC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQpIGNoYW5nZWQgdG8gZmFsc2UK
K1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWF4aW1pemVkKSBjaGFuZ2VkIHRvIHRy
dWUKKy0tLS0tLS0tLS0tLS0gd2luZG93ZWQgLS0tLS0tLS0tLS0tLQorWzFdIC0gcXVlcnkgKC13
ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0byB0cnVlCitbMV0gLSBxdWVyeSAo
LXdlYmtpdC12aWV3LW1vZGU6IG1heGltaXplZCkgY2hhbmdlZCB0byBmYWxzZQorWzJdIC0gcXVl
cnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0byB0cnVlCitbMl0gLSBx
dWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1heGltaXplZCkgY2hhbmdlZCB0byBmYWxzZQorLS0t
LS0tLS0tLS0tLSBmbG9hdGluZyAtLS0tLS0tLS0tLS0tCitbMV0gLSBxdWVyeSAoLXdlYmtpdC12
aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFuZ2VkIHRvIGZhbHNlCitbMV0gLSBxdWVyeSAoLXdlYmtp
dC12aWV3LW1vZGU6IGZsb2F0aW5nKSBjaGFuZ2VkIHRvIHRydWUKK1syXSAtIHF1ZXJ5ICgtd2Vi
a2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQgdG8gZmFsc2UKK1syXSAtIHF1ZXJ5ICgt
d2Via2l0LXZpZXctbW9kZTogZmxvYXRpbmcpIGNoYW5nZWQgdG8gdHJ1ZQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDIuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMi5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcwOTNjYTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDIuaHRtbApAQCAtMCwwICsxLDYzIEBA
Cis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPlRlc3QgQ1NTT00gVmlldyBtb2R1bGU6IE1lZGlhUXVl
cnlMaXN0IGludGVyZmFjZTwvdGl0bGU+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorCis8L3N0
eWxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KKyAg
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyAgICBmdW5jdGlvbiBsb2cobSkgeworICAgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0cycpLmlubmVySFRNTCArPSBtICsgJzxicj4n
OworICAgIH0KKworICAgIGZ1bmN0aW9uIGNhbGxiYWNrMShxdWVyeSkgeworICAgICAgICBsb2co
IlsxXSAtIHF1ZXJ5ICIgKyBxdWVyeS5tZWRpYSArICIgY2hhbmdlZCB0byAiICsgKHF1ZXJ5Lm1h
dGNoZXMgPyAidHJ1ZSIgOiAiZmFsc2UiKSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gY2FsbGJh
Y2syKHF1ZXJ5KSB7CisgICAgICAgIGxvZygiWzJdIC0gcXVlcnkgIiArIHF1ZXJ5Lm1lZGlhICsg
IiBjaGFuZ2VkIHRvICIgKyAocXVlcnkubWF0Y2hlcyA/ICJ0cnVlIiA6ICJmYWxzZSIpKTsKKyAg
ICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0cygpCisgICAgeworICAgICAgICBpZiAoIXdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSgid2luZG93ZWQiKTsK
KworICAgICAgICB3aW5kb3dlZFF1ZXJ5ID0gd2luZG93Lm1hdGNoTWVkaWEoIigtd2Via2l0LXZp
ZXctbW9kZTogd2luZG93ZWQpIik7CisgICAgICAgIGZsb2F0aW5nUXVlcnkgPSB3aW5kb3cubWF0
Y2hNZWRpYSgiKC13ZWJraXQtdmlldy1tb2RlOiBmbG9hdGluZykiKTsKKyAgICAgICAgbWluaW1p
emVkUXVlcnkgPSB3aW5kb3cubWF0Y2hNZWRpYSgiKC13ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6
ZWQpIik7CisgICAgICAgIG1heGltaXplZFF1ZXJ5ID0gd2luZG93Lm1hdGNoTWVkaWEoIigtd2Vi
a2l0LXZpZXctbW9kZTogbWF4aW1pemVkKSIpOworCisgICAgICAgIHdpbmRvd2VkUXVlcnkuYWRk
TGlzdGVuZXIoY2FsbGJhY2sxKTsKKyAgICAgICAgZmxvYXRpbmdRdWVyeS5hZGRMaXN0ZW5lcihj
YWxsYmFjazEpOworICAgICAgICBtaW5pbWl6ZWRRdWVyeS5hZGRMaXN0ZW5lcihjYWxsYmFjazEp
OworICAgICAgICBtYXhpbWl6ZWRRdWVyeS5hZGRMaXN0ZW5lcihjYWxsYmFjazEpOworCisgICAg
ICAgIHdpbmRvd2VkUXVlcnkuYWRkTGlzdGVuZXIoY2FsbGJhY2syKTsKKyAgICAgICAgZmxvYXRp
bmdRdWVyeS5hZGRMaXN0ZW5lcihjYWxsYmFjazIpOworICAgICAgICBtaW5pbWl6ZWRRdWVyeS5h
ZGRMaXN0ZW5lcihjYWxsYmFjazIpOworICAgICAgICBtYXhpbWl6ZWRRdWVyeS5hZGRMaXN0ZW5l
cihjYWxsYmFjazIpOworCisgICAgICAgIGxvZygiLS0tLS0tLS0tLS0tLSBtaW5pbWl6ZWQgLS0t
LS0tLS0tLS0tLSIpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9kZU1l
ZGlhRmVhdHVyZSgibWluaW1pemVkIik7CisgICAgICAgIGxvZygiLS0tLS0tLS0tLS0tLSBtYXhp
bWl6ZWQgLS0tLS0tLS0tLS0tLSIpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRW
aWV3TW9kZU1lZGlhRmVhdHVyZSgibWF4aW1pemVkIik7CisgICAgICAgIGxvZygiLS0tLS0tLS0t
LS0tLSB3aW5kb3dlZCAtLS0tLS0tLS0tLS0tIik7CisgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCJ3aW5kb3dlZCIpOworICAgICAgICBsb2coIi0t
LS0tLS0tLS0tLS0gZmxvYXRpbmcgLS0tLS0tLS0tLS0tLSIpOworICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSgiZmxvYXRpbmciKTsKKyAgICB9CisK
Kzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0cygpIj4KKyAgICA8cD5U
ZXN0IHRoZSBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U6IDxhIGhyZWY9Imh0dHA6Ly9kZXYudzMu
b3JnL2Nzc3dnL2Nzc29tLXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2UiIHRpdGxl
PSJDU1NPTSBWaWV3IE1vZHVsZSI+aHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3Nzb20tdmlldy8j
dGhlLW1lZGlhcXVlcnlsaXN0LWludGVyZmFjZTwvYT4uPC9wPgorICAgIDxwPlRlc3RpbmcgYWRk
TGlzdGVuZXIgaW4gZGlmZmVyZW50IE1lZGlhUXVlcnlMaXN0IG9iamVjdHMgYW5kIHRoZSBjYWxs
YmFjayBjYWxsIHNlcXVlbmNlPC9wPgorICAgIDxkaXYgaWQ9InJlc3VsdHMiPgorICAgIDwvZGl2
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9t
ZWRpYS1xdWVyeS1saXN0LTAzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEv
bWVkaWEtcXVlcnktbGlzdC0wMy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uZjI0ZTIwNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
bWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0MSBAQAor
VGVzdCB0aGUgTWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlOiBodHRwOi8vZGV2LnczLm9yZy9jc3N3
Zy9jc3NvbS12aWV3LyN0aGUtbWVkaWFxdWVyeWxpc3QtaW50ZXJmYWNlLgorCitUZXN0aW5nIHJl
bW92ZUxpc3RlbmVyIGluIGRpZmZlcmVudCBNZWRpYVF1ZXJ5TGlzdCBvYmplY3RzIGFuZCB0aGUg
Y2FsbGJhY2sgY2FsbCBzZXF1ZW5jZQorCithZGRpbmcgd2luZG93ZWRbMV0sIG1pbmltaXplZFsx
XSwgd2luZG93ZWRbMl0gYW5kIG1pbmltaXplZFsyXQorCistLS0tLS0tLS0tLS0tIG1pbmltaXpl
ZCAtLS0tLS0tLS0tLS0tCitbMV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2Vk
KSBjaGFuZ2VkIHRvIGZhbHNlCitbMV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmlt
aXplZCkgY2hhbmdlZCB0byB0cnVlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdp
bmRvd2VkKSBjaGFuZ2VkIHRvIGZhbHNlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6
IG1pbmltaXplZCkgY2hhbmdlZCB0byB0cnVlCistLS0tLS0tLS0tLS0tIHdpbmRvd2VkIC0tLS0t
LS0tLS0tLS0KK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5n
ZWQgdG8gdHJ1ZQorWzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQpIGNo
YW5nZWQgdG8gZmFsc2UKK1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQp
IGNoYW5nZWQgdG8gdHJ1ZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6
ZWQpIGNoYW5nZWQgdG8gZmFsc2UKKworCityZW1vdmluZyB3aW5kb3dlZFsxXSBhbmQgbWluaW1p
emVkWzJdCisKKy0tLS0tLS0tLS0tLS0gbWluaW1pemVkIC0tLS0tLS0tLS0tLS0KK1sxXSAtIHF1
ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSBjaGFuZ2VkIHRvIHRydWUKK1syXSAt
IHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQgdG8gZmFsc2UKKy0t
LS0tLS0tLS0tLS0gd2luZG93ZWQgLS0tLS0tLS0tLS0tLQorWzFdIC0gcXVlcnkgKC13ZWJraXQt
dmlldy1tb2RlOiBtaW5pbWl6ZWQpIGNoYW5nZWQgdG8gZmFsc2UKK1syXSAtIHF1ZXJ5ICgtd2Vi
a2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQgdG8gdHJ1ZQorCisKK2FkZGluZyB3aW5k
b3dlZFsxXSBhbmQgbWluaW1pemVkWzJdCisKKy0tLS0tLS0tLS0tLS0gbWluaW1pemVkIC0tLS0t
LS0tLS0tLS0KK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSBjaGFu
Z2VkIHRvIHRydWUKK1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNo
YW5nZWQgdG8gZmFsc2UKK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQp
IGNoYW5nZWQgdG8gZmFsc2UKK1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1p
emVkKSBjaGFuZ2VkIHRvIHRydWUKKy0tLS0tLS0tLS0tLS0gd2luZG93ZWQgLS0tLS0tLS0tLS0t
LQorWzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQpIGNoYW5nZWQgdG8g
ZmFsc2UKK1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQg
dG8gdHJ1ZQorWzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdl
ZCB0byB0cnVlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCkgY2hh
bmdlZCB0byBmYWxzZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlh
LXF1ZXJ5LWxpc3QtMDMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnkt
bGlzdC0wMy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgzM2JkZGUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxp
c3QtMDMuaHRtbApAQCAtMCwwICsxLDcyIEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPlRlc3Qg
Q1NTT00gVmlldyBtb2R1bGU6IE1lZGlhUXVlcnlMaXN0IGludGVyZmFjZTwvdGl0bGU+Cis8c3R5
bGUgdHlwZT0idGV4dC9jc3MiPgorCis8L3N0eWxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyAgICBm
dW5jdGlvbiBsb2cobSkgeworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0
cycpLmlubmVySFRNTCArPSBtICsgJzxicj4nOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNhbGxi
YWNrMShxdWVyeSkgeworICAgICAgICBsb2coIlsxXSAtIHF1ZXJ5ICIgKyBxdWVyeS5tZWRpYSAr
ICIgY2hhbmdlZCB0byAiICsgKHF1ZXJ5Lm1hdGNoZXMgPyAidHJ1ZSIgOiAiZmFsc2UiKSk7Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gY2FsbGJhY2syKHF1ZXJ5KSB7CisgICAgICAgIGxvZygiWzJd
IC0gcXVlcnkgIiArIHF1ZXJ5Lm1lZGlhICsgIiBjaGFuZ2VkIHRvICIgKyAocXVlcnkubWF0Y2hl
cyA/ICJ0cnVlIiA6ICJmYWxzZSIpKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0cygp
CisgICAgeworICAgICAgICBpZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAg
ICAgICAgIHJldHVybjsKKworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9k
ZU1lZGlhRmVhdHVyZSgid2luZG93ZWQiKTsKKworICAgICAgICB3aW5kb3dlZFF1ZXJ5ID0gd2lu
ZG93Lm1hdGNoTWVkaWEoIigtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIik7CisgICAgICAg
IG1pbmltaXplZFF1ZXJ5ID0gd2luZG93Lm1hdGNoTWVkaWEoIigtd2Via2l0LXZpZXctbW9kZTog
bWluaW1pemVkKSIpOworCisgICAgICAgIGxvZygiYWRkaW5nIHdpbmRvd2VkWzFdLCBtaW5pbWl6
ZWRbMV0sIHdpbmRvd2VkWzJdIGFuZCBtaW5pbWl6ZWRbMl08YnI+Iik7CisgICAgICAgIHdpbmRv
d2VkUXVlcnkuYWRkTGlzdGVuZXIoY2FsbGJhY2sxKTsKKyAgICAgICAgbWluaW1pemVkUXVlcnku
YWRkTGlzdGVuZXIoY2FsbGJhY2sxKTsKKyAgICAgICAgd2luZG93ZWRRdWVyeS5hZGRMaXN0ZW5l
cihjYWxsYmFjazIpOworICAgICAgICBtaW5pbWl6ZWRRdWVyeS5hZGRMaXN0ZW5lcihjYWxsYmFj
azIpOworCisgICAgICAgIGxvZygiLS0tLS0tLS0tLS0tLSBtaW5pbWl6ZWQgLS0tLS0tLS0tLS0t
LSIpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVy
ZSgibWluaW1pemVkIik7CisgICAgICAgIGxvZygiLS0tLS0tLS0tLS0tLSB3aW5kb3dlZCAtLS0t
LS0tLS0tLS0tIik7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFZpZXdNb2RlTWVk
aWFGZWF0dXJlKCJ3aW5kb3dlZCIpOworCisgICAgICAgIGxvZygiPGJyPjxicj5yZW1vdmluZyB3
aW5kb3dlZFsxXSBhbmQgbWluaW1pemVkWzJdPGJyPiIpOworICAgICAgICB3aW5kb3dlZFF1ZXJ5
LnJlbW92ZUxpc3RlbmVyKGNhbGxiYWNrMSk7CisgICAgICAgIG1pbmltaXplZFF1ZXJ5LnJlbW92
ZUxpc3RlbmVyKGNhbGxiYWNrMik7CisKKyAgICAgICAgbG9nKCItLS0tLS0tLS0tLS0tIG1pbmlt
aXplZCAtLS0tLS0tLS0tLS0tIik7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFZp
ZXdNb2RlTWVkaWFGZWF0dXJlKCJtaW5pbWl6ZWQiKTsKKyAgICAgICAgbG9nKCItLS0tLS0tLS0t
LS0tIHdpbmRvd2VkIC0tLS0tLS0tLS0tLS0iKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoIndpbmRvd2VkIik7CisKKyAgICAgICAgbG9nKCI8
YnI+PGJyPmFkZGluZyB3aW5kb3dlZFsxXSBhbmQgbWluaW1pemVkWzJdPGJyPiIpOworICAgICAg
ICB3aW5kb3dlZFF1ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNrMSk7CisgICAgICAgIG1pbmltaXpl
ZFF1ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNrMik7CisKKyAgICAgICAgbG9nKCItLS0tLS0tLS0t
LS0tIG1pbmltaXplZCAtLS0tLS0tLS0tLS0tIik7CisgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCJtaW5pbWl6ZWQiKTsKKyAgICAgICAgbG9nKCIt
LS0tLS0tLS0tLS0tIHdpbmRvd2VkIC0tLS0tLS0tLS0tLS0iKTsKKyAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoIndpbmRvd2VkIik7CisKKyAgICB9
CisKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0cygpIj4KKyAgICA8
cD5UZXN0IHRoZSBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U6IDxhIGhyZWY9Imh0dHA6Ly9kZXYu
dzMub3JnL2Nzc3dnL2Nzc29tLXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2UiIHRp
dGxlPSJDU1NPTSBWaWV3IE1vZHVsZSI+aHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3Nzb20tdmll
dy8jdGhlLW1lZGlhcXVlcnlsaXN0LWludGVyZmFjZTwvYT4uPC9wPgorICAgIDxwPlRlc3Rpbmcg
cmVtb3ZlTGlzdGVuZXIgaW4gZGlmZmVyZW50IE1lZGlhUXVlcnlMaXN0IG9iamVjdHMgYW5kIHRo
ZSBjYWxsYmFjayBjYWxsIHNlcXVlbmNlPC9wPgorICAgIDxkaXYgaWQ9InJlc3VsdHMiPgorICAg
IDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
bWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uM2E2ZDBkYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwy
NSBAQAorVGVzdCB0aGUgTWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlOiBodHRwOi8vZGV2LnczLm9y
Zy9jc3N3Zy9jc3NvbS12aWV3LyN0aGUtbWVkaWFxdWVyeWxpc3QtaW50ZXJmYWNlLgorCitUZXN0
aW5nIHBhZ2UgY2FjaGUKKworLS0tLS0tLS0tLS0tLSBtaW5pbWl6ZWQgLS0tLS0tLS0tLS0tLQor
WzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0byBmYWxz
ZQorWzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQpIGNoYW5nZWQgdG8g
dHJ1ZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0
byBmYWxzZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQpIGNoYW5n
ZWQgdG8gdHJ1ZQorLS0tLS0tLS0tLS0tLSBtYXhpbWl6ZWQgLS0tLS0tLS0tLS0tLQorWzFdIC0g
cXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQpIGNoYW5nZWQgdG8gZmFsc2UKK1sx
XSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWF4aW1pemVkKSBjaGFuZ2VkIHRvIHRydWUK
K1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSBjaGFuZ2VkIHRvIGZh
bHNlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1heGltaXplZCkgY2hhbmdlZCB0
byB0cnVlCistLS0tLS0tLS0tLS0tIHdpbmRvd2VkIC0tLS0tLS0tLS0tLS0KK1sxXSAtIHF1ZXJ5
ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQgdG8gdHJ1ZQorWzFdIC0gcXVl
cnkgKC13ZWJraXQtdmlldy1tb2RlOiBtYXhpbWl6ZWQpIGNoYW5nZWQgdG8gZmFsc2UKK1syXSAt
IHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQgdG8gdHJ1ZQorWzJd
IC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtYXhpbWl6ZWQpIGNoYW5nZWQgdG8gZmFsc2UK
Ky0tLS0tLS0tLS0tLS0gZmxvYXRpbmcgLS0tLS0tLS0tLS0tLQorWzFdIC0gcXVlcnkgKC13ZWJr
aXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0byBmYWxzZQorWzFdIC0gcXVlcnkgKC13
ZWJraXQtdmlldy1tb2RlOiBmbG9hdGluZykgY2hhbmdlZCB0byB0cnVlCitbMl0gLSBxdWVyeSAo
LXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFuZ2VkIHRvIGZhbHNlCitbMl0gLSBxdWVy
eSAoLXdlYmtpdC12aWV3LW1vZGU6IGZsb2F0aW5nKSBjaGFuZ2VkIHRvIHRydWUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA0Lmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hODc3YTVhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA0Lmh0bWwKQEAgLTAsMCArMSw3
NSBAQAorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5UZXN0IENTU09NIFZpZXcgbW9kdWxlOiBNZWRp
YVF1ZXJ5TGlzdCBpbnRlcmZhY2U8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIGNoYXJzZXQ9InV0Zi04Ij4KKworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0VXNlc1BhZ2VDYWNoZVByZWZl
cmVuY2VLZXkiLCAxKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBsb2cobSkgeworICAgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0cycpLmlubmVySFRNTCArPSBtICsgJzxicj4n
OworICAgIH0KKworICAgIGZ1bmN0aW9uIGNhbGxiYWNrMShxdWVyeSkgeworICAgICAgICBsb2co
IlsxXSAtIHF1ZXJ5ICIgKyBxdWVyeS5tZWRpYSArICIgY2hhbmdlZCB0byAiICsgKHF1ZXJ5Lm1h
dGNoZXMgPyAidHJ1ZSIgOiAiZmFsc2UiKSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gY2FsbGJh
Y2syKHF1ZXJ5KSB7CisgICAgICAgIGxvZygiWzJdIC0gcXVlcnkgIiArIHF1ZXJ5Lm1lZGlhICsg
IiBjaGFuZ2VkIHRvICIgKyAocXVlcnkubWF0Y2hlcyA/ICJ0cnVlIiA6ICJmYWxzZSIpKTsKKyAg
ICB9CisKKyAgICBmdW5jdGlvbiBwYWdlc2hvdyhldnQpCisgICAgeworICAgICAgICBpZiAoIWV2
dC5wZXJzaXN0ZWQpIHsKKyAgICAgICAgICAgIC8vIHRoaXMgd2lsbCBydW4gb25seSB3aGVuIHRo
ZSBwYWdlIGlzIGxvYWRlZCBmb3IgdGhlIGZpcnN0IHRpbWUuCisKKyAgICAgICAgICAgIHdpbmRv
d2VkUXVlcnkgPSB3aW5kb3cubWF0Y2hNZWRpYSgiKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dl
ZCkiKTsKKyAgICAgICAgICAgIGZsb2F0aW5nUXVlcnkgPSB3aW5kb3cubWF0Y2hNZWRpYSgiKC13
ZWJraXQtdmlldy1tb2RlOiBmbG9hdGluZykiKTsKKyAgICAgICAgICAgIG1pbmltaXplZFF1ZXJ5
ID0gd2luZG93Lm1hdGNoTWVkaWEoIigtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSIpOwor
ICAgICAgICAgICAgbWF4aW1pemVkUXVlcnkgPSB3aW5kb3cubWF0Y2hNZWRpYSgiKC13ZWJraXQt
dmlldy1tb2RlOiBtYXhpbWl6ZWQpIik7CisKKyAgICAgICAgICAgIHdpbmRvd2VkUXVlcnkuYWRk
TGlzdGVuZXIoY2FsbGJhY2sxKTsKKyAgICAgICAgICAgIGZsb2F0aW5nUXVlcnkuYWRkTGlzdGVu
ZXIoY2FsbGJhY2sxKTsKKyAgICAgICAgICAgIG1pbmltaXplZFF1ZXJ5LmFkZExpc3RlbmVyKGNh
bGxiYWNrMSk7CisgICAgICAgICAgICBtYXhpbWl6ZWRRdWVyeS5hZGRMaXN0ZW5lcihjYWxsYmFj
azEpOworCisgICAgICAgICAgICB3aW5kb3dlZFF1ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNrMik7
CisgICAgICAgICAgICBmbG9hdGluZ1F1ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNrMik7CisgICAg
ICAgICAgICBtaW5pbWl6ZWRRdWVyeS5hZGRMaXN0ZW5lcihjYWxsYmFjazIpOworICAgICAgICAg
ICAgbWF4aW1pemVkUXVlcnkuYWRkTGlzdGVuZXIoY2FsbGJhY2syKTsKKworICAgICAgICAgICAg
c2V0VGltZW91dCgnd2luZG93LmxvY2F0aW9uID0gImRhdGE6dGV4dC9odG1sLDxzY3JpcHQ+aGlz
dG9yeS5iYWNrKCk8IiArICIvc2NyaXB0PiInLCAwKTsKKworICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgLy8gaWYgdGhpcyBwb2ludCBpcyByZWFjaGVkIHRoZSBwYWdlIGlzIGNvbW1pbmcg
ZnJvbSB0aGUgcGFnZSBjYWNoZS4KKworICAgICAgICAgICAgbG9nKCItLS0tLS0tLS0tLS0tIG1p
bmltaXplZCAtLS0tLS0tLS0tLS0tIik7CisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSgibWluaW1pemVkIik7CisgICAgICAgICAgICBsb2co
Ii0tLS0tLS0tLS0tLS0gbWF4aW1pemVkIC0tLS0tLS0tLS0tLS0iKTsKKyAgICAgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCJtYXhpbWl6ZWQiKTsK
KyAgICAgICAgICAgIGxvZygiLS0tLS0tLS0tLS0tLSB3aW5kb3dlZCAtLS0tLS0tLS0tLS0tIik7
CisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVy
ZSgid2luZG93ZWQiKTsKKyAgICAgICAgICAgIGxvZygiLS0tLS0tLS0tLS0tLSBmbG9hdGluZyAt
LS0tLS0tLS0tLS0tIik7CisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3
TW9kZU1lZGlhRmVhdHVyZSgiZmxvYXRpbmciKTsKKworICAgICAgICAgICAgc2V0VGltZW91dChm
dW5jdGlvbigpIHsgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgbGF5b3V0VGVzdENv
bnRyb2xsZXIubm90aWZ5RG9uZSgpOyB9LCAwKTsKKworICAgICAgICB9CisgICAgfQorCisgICAg
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSgid2luZG93ZWQiKTsKKyAgICAgICAgd2lu
ZG93Lm9ucGFnZXNob3cgPSBwYWdlc2hvdzsKKyAgICB9CisKKzwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+CisgICAgPHA+VGVzdCB0aGUgTWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlOiA8YSBocmVm
PSJodHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9jc3NvbS12aWV3LyN0aGUtbWVkaWFxdWVyeWxpc3Qt
aW50ZXJmYWNlIiB0aXRsZT0iQ1NTT00gVmlldyBNb2R1bGUiPmh0dHA6Ly9kZXYudzMub3JnL2Nz
c3dnL2Nzc29tLXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2U8L2E+LjwvcD4KKyAg
ICA8cD5UZXN0aW5nIHBhZ2UgY2FjaGU8L3A+CisgICAgPGRpdiBpZD0icmVzdWx0cyI+PC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21l
ZGlhLXF1ZXJ5LWxpc3QtMDUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9t
ZWRpYS1xdWVyeS1saXN0LTA1LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi4wNDdlMTA2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA1LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK1Rl
c3QgdGhlIE1lZGlhUXVlcnlMaXN0IGludGVyZmFjZTogaHR0cDovL2Rldi53My5vcmcvY3Nzd2cv
Y3Nzb20tdmlldy8jdGhlLW1lZGlhcXVlcnlsaXN0LWludGVyZmFjZS4KKworVGVzdGluZyBsaXN0
ZW5lciBjb21wYXJpc29uLiBUd28gY2FsbGJhY2tzIGFyZSBleHBlY3RlZC4KKworWzFdIC0gcXVl
cnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0byBmYWxzZQorWzJdIC0g
cXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0byBmYWxzZQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDUuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZiNjZiMGEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDUuaHRtbApAQCAtMCww
ICsxLDQ3IEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPlRlc3QgQ1NTT00gVmlldyBtb2R1bGU6
IE1lZGlhUXVlcnlMaXN0IGludGVyZmFjZTwvdGl0bGU+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3Mi
PgorCis8L3N0eWxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0
Zi04Ij4KKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyAgICBmdW5jdGlvbiBsb2cobSkgewor
ICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0cycpLmlubmVySFRNTCArPSBt
ICsgJzxicj4nOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNhbGxiYWNrMShxdWVyeSkgeworICAg
ICAgICBsb2coIlsxXSAtIHF1ZXJ5ICIgKyBxdWVyeS5tZWRpYSArICIgY2hhbmdlZCB0byAiICsg
KHF1ZXJ5Lm1hdGNoZXMgPyAidHJ1ZSIgOiAiZmFsc2UiKSk7CisgICAgfQorCisgICAgZnVuY3Rp
b24gY2FsbGJhY2syKHF1ZXJ5KSB7CisgICAgICAgIGxvZygiWzJdIC0gcXVlcnkgIiArIHF1ZXJ5
Lm1lZGlhICsgIiBjaGFuZ2VkIHRvICIgKyAocXVlcnkubWF0Y2hlcyA/ICJ0cnVlIiA6ICJmYWxz
ZSIpKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0cygpCisgICAgeworICAgICAgICBp
ZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgIHJldHVybjsKKwor
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSgid2lu
ZG93ZWQiKTsKKworICAgICAgICB2YXIgcXVlcnkgPSB3aW5kb3cubWF0Y2hNZWRpYSgiKC13ZWJr
aXQtdmlldy1tb2RlOiB3aW5kb3dlZCkiKTsKKworICAgICAgICBxdWVyeS5hZGRMaXN0ZW5lcihj
YWxsYmFjazEpOworICAgICAgICBxdWVyeS5hZGRMaXN0ZW5lcihjYWxsYmFjazEpOworICAgICAg
ICBxdWVyeS5hZGRMaXN0ZW5lcihjYWxsYmFjazIpOworCisgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCJtaW5pbWl6ZWQiKTsKKyAgICB9CisKKzwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0cygpIj4KKyAgICA8cD5UZXN0
IHRoZSBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U6IDxhIGhyZWY9Imh0dHA6Ly9kZXYudzMub3Jn
L2Nzc3dnL2Nzc29tLXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2UiIHRpdGxlPSJD
U1NPTSBWaWV3IE1vZHVsZSI+aHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3Nzb20tdmlldy8jdGhl
LW1lZGlhcXVlcnlsaXN0LWludGVyZmFjZTwvYT4uPC9wPgorICAgIDxwPlRlc3RpbmcgbGlzdGVu
ZXIgY29tcGFyaXNvbi4gVHdvIGNhbGxiYWNrcyBhcmUgZXhwZWN0ZWQuPC9wPgorICAgIDxkaXYg
aWQ9InJlc3VsdHMiPgorICAgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA2LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNi1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWM2NTQ2NQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNi1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw3IEBACitUZXN0IHRoZSBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U6
IGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzc29tLXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1p
bnRlcmZhY2UuCisKK1Rlc3RpbmcgcXVlcmllcyB0aGF0IGhhdmUgbm8gcmVnaXN0ZXJlZCBsaXN0
ZW5lci4KKworUXVlcnkgcmVzdWx0IGJlZm9yZSBjaGFuZ2luZyB2aWV3LW1vZGU6IHRydWUKK1F1
ZXJ5IHJlc3VsdCBhZnRlciBjaGFuZ2luZyB2aWV3LW1vZGU6IGZhbHNlCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNi5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA2Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uNTkxM2U1NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNi5odG1sCkBAIC0wLDAgKzEsMzYgQEAK
KzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+VGVzdCBDU1NPTSBWaWV3IG1vZHVsZTogTWVkaWFRdWVy
eUxpc3QgaW50ZXJmYWNlPC90aXRsZT4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisKKzwvc3R5
bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgorICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKKworICAgIGZ1bmN0aW9uIGxvZyhtKSB7CisgICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHRzJykuaW5uZXJIVE1MICs9IG0gKyAnPGJyPic7
CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdHMoKQorICAgIHsKKyAgICAgICAgaWYgKCF3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoIndpbmRvd2Vk
Iik7CisKKyAgICAgICAgdmFyIHF1ZXJ5ID0gd2luZG93Lm1hdGNoTWVkaWEoIigtd2Via2l0LXZp
ZXctbW9kZTogd2luZG93ZWQpIik7CisgICAgICAgIGxvZygnUXVlcnkgcmVzdWx0IGJlZm9yZSBj
aGFuZ2luZyB2aWV3LW1vZGU6ICcgKyBxdWVyeS5tYXRjaGVzKTsKKyAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoIm1pbmltaXplZCIpOworICAgICAg
ICBsb2coJ1F1ZXJ5IHJlc3VsdCBhZnRlciBjaGFuZ2luZyB2aWV3LW1vZGU6ICcgKyBxdWVyeS5t
YXRjaGVzKTsKKyAgICB9CisKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5U
ZXN0cygpIj4KKyAgICA8cD5UZXN0IHRoZSBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U6IDxhIGhy
ZWY9Imh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzc29tLXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlz
dC1pbnRlcmZhY2UiIHRpdGxlPSJDU1NPTSBWaWV3IE1vZHVsZSI+aHR0cDovL2Rldi53My5vcmcv
Y3Nzd2cvY3Nzb20tdmlldy8jdGhlLW1lZGlhcXVlcnlsaXN0LWludGVyZmFjZTwvYT4uPC9wPgor
ICAgIDxwPlRlc3RpbmcgcXVlcmllcyB0aGF0IGhhdmUgbm8gcmVnaXN0ZXJlZCBsaXN0ZW5lci48
L3A+CisgICAgPGRpdiBpZD0icmVzdWx0cyI+CisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDct
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA3
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YjBlN2Y5
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1s
aXN0LTA3LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK1Rlc3QgdGhlIE1lZGlhUXVlcnlM
aXN0IGludGVyZmFjZTogaHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3Nzb20tdmlldy8jdGhlLW1l
ZGlhcXVlcnlsaXN0LWludGVyZmFjZS4KKworSW52YWxpZCBsaXN0ZW5lcnMuIFR3byBjYWxsYmFj
a3MgYXJlIGV4cGVjdGVkLgorCitbMV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRv
d2VkKSBjaGFuZ2VkIHRvIGZhbHNlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdp
bmRvd2VkKSBjaGFuZ2VkIHRvIGZhbHNlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
bWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9t
ZWRpYS1xdWVyeS1saXN0LTA3Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uMDM0NDI2MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVk
aWEtcXVlcnktbGlzdC0wNy5odG1sCkBAIC0wLDAgKzEsNDkgQEAKKzxodG1sPgorPGhlYWQ+Cis8
dGl0bGU+VGVzdCBDU1NPTSBWaWV3IG1vZHVsZTogTWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlPC90
aXRsZT4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisKKzwvc3R5bGU+Cis8c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgorICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKKworICAgIGZ1bmN0aW9uIGxvZyhtKSB7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdyZXN1bHRzJykuaW5uZXJIVE1MICs9IG0gKyAnPGJyPic7CisgICAgfQorCisgICAgZnVu
Y3Rpb24gY2FsbGJhY2sxKHF1ZXJ5KSB7CisgICAgICAgIGxvZygiWzFdIC0gcXVlcnkgIiArIHF1
ZXJ5Lm1lZGlhICsgIiBjaGFuZ2VkIHRvICIgKyAocXVlcnkubWF0Y2hlcyA/ICJ0cnVlIiA6ICJm
YWxzZSIpKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjYWxsYmFjazIocXVlcnkpIHsKKyAgICAg
ICAgbG9nKCJbMl0gLSBxdWVyeSAiICsgcXVlcnkubWVkaWEgKyAiIGNoYW5nZWQgdG8gIiArIChx
dWVyeS5tYXRjaGVzID8gInRydWUiIDogImZhbHNlIikpOworICAgIH0KKworICAgIGZ1bmN0aW9u
IHJ1blRlc3RzKCkKKyAgICB7CisgICAgICAgIGlmICghd2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCJ3aW5kb3dlZCIpOworCisgICAgICAgIHZhciBxdWVy
eSA9IHdpbmRvdy5tYXRjaE1lZGlhKCIoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSIpOwor
CisgICAgICAgIHF1ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNrMSk7CisgICAgICAgIHF1ZXJ5LmFk
ZExpc3RlbmVyKDUpOworICAgICAgICBxdWVyeS5hZGRMaXN0ZW5lcignY2luY28nKTsKKyAgICAg
ICAgcXVlcnkuYWRkTGlzdGVuZXIoWzEsMl0pOworICAgICAgICBxdWVyeS5hZGRMaXN0ZW5lcihj
YWxsYmFjazIpOworCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFZpZXdNb2RlTWVk
aWFGZWF0dXJlKCJtaW5pbWl6ZWQiKTsKKyAgICB9CisKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHkgb25sb2FkPSJydW5UZXN0cygpIj4KKyAgICA8cD5UZXN0IHRoZSBNZWRpYVF1ZXJ5TGlzdCBp
bnRlcmZhY2U6IDxhIGhyZWY9Imh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzc29tLXZpZXcvI3Ro
ZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2UiIHRpdGxlPSJDU1NPTSBWaWV3IE1vZHVsZSI+aHR0
cDovL2Rldi53My5vcmcvY3Nzd2cvY3Nzb20tdmlldy8jdGhlLW1lZGlhcXVlcnlsaXN0LWludGVy
ZmFjZTwvYT4uPC9wPgorICAgIDxwPkludmFsaWQgbGlzdGVuZXJzLiBUd28gY2FsbGJhY2tzIGFy
ZSBleHBlY3RlZC48L3A+CisgICAgPGRpdiBpZD0icmVzdWx0cyI+CisgICAgPC9kaXY+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90
ZXN0X2V4cGVjdGF0aW9ucy50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0
X2V4cGVjdGF0aW9ucy50eHQKaW5kZXggYzViZDZkMC4uNWY5YzY1ZSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dApAQCAtMjI2
OSw4ICsyMjY5LDE0IEBAIEJVRzM4NTc4IDogcGx1Z2lucy9vdmVycmlkZS1ub2RlLW1ldGhvZC5o
dG1sID0gVEVYVAogLy8gTmVlZHMgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0TWVkaWFUeXBlKCkg
KGltcGxlbWVudGVkIG9uIFF0IG9ubHkpCiBCVUczODY1NiA6IGZhc3QvbWVkaWEvcHJpbnQtcmVz
dG9yZXMtcHJldmlvdXMtbWVkaWF0eXBlLmh0bWwgPSBURVhUCiAKLS8vIE5lZWRzIGxheW91dFRl
c3RDb250cm9sbGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCkgKGltcGxlbWVudGVkIG9uIFF0
IG9ubHkpCisvLyBOZWVkcyBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9kZU1lZGlhRmVh
dHVyZSgpCiBCVUc0MDY4MCBTS0lQIDogZmFzdC9tZWRpYS92aWV3LW1vZGUtbWVkaWEtZmVhdHVy
ZS5odG1sID0gRkFJTAorQlVHNDA2ODAgU0tJUCA6IGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlz
dC0wMi5odG1sID0gRkFJTAorQlVHNDA2ODAgU0tJUCA6IGZhc3QvbWVkaWEvbWVkaWEtcXVlcnkt
bGlzdC0wMy5odG1sID0gRkFJTAorQlVHNDA2ODAgU0tJUCA6IGZhc3QvbWVkaWEvbWVkaWEtcXVl
cnktbGlzdC0wNC5odG1sID0gRkFJTAorQlVHNDA2ODAgU0tJUCA6IGZhc3QvbWVkaWEvbWVkaWEt
cXVlcnktbGlzdC0wNS5odG1sID0gRkFJTAorQlVHNDA2ODAgU0tJUCA6IGZhc3QvbWVkaWEvbWVk
aWEtcXVlcnktbGlzdC0wNi5odG1sID0gRkFJTAorQlVHNDA2ODAgU0tJUCA6IGZhc3QvbWVkaWEv
bWVkaWEtcXVlcnktbGlzdC0wNy5odG1sID0gRkFJTAogCiAvLyBVbmtub3duIGZsYWtpbmVzcy4K
IEJVRzM4NzA2IDogc3ZnL2N1c3RvbS9kZWVwLWR5bmFtaWMtdXBkYXRlcy5zdmcgPSBJTUFHRStU
RVhUIElNQUdFIFBBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lw
cGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKaW5kZXggYjA2Mzg5Ni4uOTRh
YmI4YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKQEAgLTEyNCw4ICsxMjQsMTQgQEAgaHR0
cC90ZXN0cy9wbHVnaW5zL3BsdWdpbi1kb2N1bWVudC1oYXMtZm9jdXMuaHRtbAogIyBNaXNzZXMg
c2V0TWVkaWFUeXBlKCkgYW5kIGltcGxlbWVudGF0aW9uCiBmYXN0L21lZGlhL3ByaW50LXJlc3Rv
cmVzLXByZXZpb3VzLW1lZGlhdHlwZS5odG1sCiAKLSMgdmlldyBtb2RlIG1lZGlhIGZlYXR1cmUK
KyMgTmVlZHMgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoKQog
ZmFzdC9tZWRpYS92aWV3LW1vZGUtbWVkaWEtZmVhdHVyZS5odG1sCitmYXN0L21lZGlhL21lZGlh
LXF1ZXJ5LWxpc3QtMDIuaHRtbAorZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAzLmh0bWwK
K2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNC5odG1sCitmYXN0L21lZGlhL21lZGlhLXF1
ZXJ5LWxpc3QtMDUuaHRtbAorZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA2Lmh0bWwKK2Zh
c3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNy5odG1sCiAKICMgVGVzdCBpcyBmbGFreSBhbmQg
dGh1cyBub3QgdXNlZnVsIHVudGlsIGZpeGVkLgogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MzY2NDIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dp
bi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKaW5kZXggMzk3M2Yz
My4uNjViMGFlYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKQEAgLTkxMSw2ICs5MTEsMTIg
QEAgZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9wcm9ncmVzcy1iYXItdmFsdWUtcHNldWRv
LWVsZW1lbnQuaHRtbAogCiAjIHZpZXcgbW9kZSBtZWRpYSBmZWF0dXJlCiBmYXN0L21lZGlhL3Zp
ZXctbW9kZS1tZWRpYS1mZWF0dXJlLmh0bWwKK2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0w
Mi5odG1sCitmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMuaHRtbAorZmFzdC9tZWRpYS9t
ZWRpYS1xdWVyeS1saXN0LTA0Lmh0bWwKK2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNS5o
dG1sCitmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDYuaHRtbAorZmFzdC9tZWRpYS9tZWRp
YS1xdWVyeS1saXN0LTA3Lmh0bWwKIAogIyBOZWVkIGV4cGVjdGF0aW9ucy4gU2VlIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNjQ2MQogZmFzdC9yZXBhaW50L292ZXJm
bG93LXNjcm9sbC1ib2R5LWFwcGVhci5odG1sCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0IGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA3MGM5Y2IwLi5iYjQwMWQwIDEw
MDY0NAotLS0gYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTEzMSw2ICsxMzEsNyBAQCBTRVQoV2ViQ29yZV9JRExfRklMRVMKICAgICBjc3Mv
Q1NTVmFyaWFibGVzRGVjbGFyYXRpb24uaWRsCiAgICAgY3NzL0NTU1ZhcmlhYmxlc1J1bGUuaWRs
CiAgICAgY3NzL01lZGlhTGlzdC5pZGwKKyAgICBjc3MvTWVkaWFRdWVyeUxpc3QuaWRsCiAgICAg
Y3NzL1JlY3QuaWRsCiAgICAgY3NzL1JHQkNvbG9yLmlkbAogICAgIGNzcy9TdHlsZU1lZGlhLmlk
bApAQCAtNzcwLDYgKzc3MSw5IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBjc3MvTWVkaWFR
dWVyeS5jcHAKICAgICBjc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKICAgICBjc3MvTWVkaWFR
dWVyeUV4cC5jcHAKKyAgICBjc3MvTWVkaWFRdWVyeUxpc3QuY3BwCisgICAgY3NzL01lZGlhUXVl
cnlMaXN0TGlzdGVuZXIuY3BwCisgICAgY3NzL01lZGlhUXVlcnlNYXRjaGVyLmNwcAogICAgIGNz
cy9SR0JDb2xvci5jcHAKICAgICBjc3MvU2hhZG93VmFsdWUuY3BwCiAgICAgY3NzL1N0eWxlQmFz
ZS5jcHAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggNDJjZWYzNy4uZDg3NjE2YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4OSBAQAorMjAxMC0xMC0yMSAgTHVpeiBB
Z29zdGluaSAgPGx1aXouYWdvc3RpbmlAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgQ1NTT00gVmlldyBtYXRj
aE1lZGlhIGludGVyZmFjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MzcyMDUKKworICAgICAgICBOZXcgaW50ZXJmYWNlcyBtYXkgYmUgdXNlZCB0byBl
dmFsdWF0ZSBtZWRpYSBxdWVyaWVzIGFuZCB0byBhc3NvY2lhdGUgbGlzdGVuZXJzCisgICAgICAg
IHRvIG1lZGlhIHF1ZXJpZXMuIFRob3NlIGxpc3RlbmVycyBhcmUgY2FsbGVkIHdoZW5ldmVyIHRo
ZSBhc3NvY2lhdGVkIHF1ZXJ5IGNoYW5nZXMuCisgICAgICAgIFNwZWNpZmljYXRpb24gbWF5IGJl
IGZvdW5kIGF0IGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzc29tLXZpZXcvI3RoZS1tZWRpYXF1
ZXJ5bGlzdC1pbnRlcmZhY2UKKworICAgICAgICBvcGVyYXRvcj09IGFkZGVkIHRvIEpTIHZlcnNp
b24gb2YgU2NyaXB0VmFsdWUuCisgICAgICAgIE1ldGhvZCBpc0Z1bmN0aW9uIGFkZGVkIHRvIEpT
IGFuZCBWOCB2ZXJzaW9ucyBvZiBTY3JpcHRWYWx1ZS4KKworICAgICAgICAqIGJpbmRpbmdzL2pz
L1NjcmlwdFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFZhbHVlOjppc0Z1bmN0
aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRWYWx1ZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6U2NyaXB0VmFsdWU6Om9wZXJhdG9yPT0pOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Nj
cmlwdFZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRWYWx1ZTo6aXNGdW5jdGlvbik6
CisKKyAgICAgICAgU29tZSBjaGFuZ2VzIHdlcmUgbmVlZGVkIHRvIHRoZSBjb2RlIGdlbmVyYXRv
cnMgdG8gaGFuZGxlIHR5cGUgTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci4KKworICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG06CisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yVjgucG06CisKKyAgICAgICAgU29tZSBjaGFuZ2VzIHRvIHRoZSBiaW5k
aW5ncyB0ZXN0IHJlc3VsdHMgdGhhdCB3ZXJlIHByZXZpb3VzbHkgYWRkZWQuCisKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0TWVkaWFRdWVyeUxp
c3RMaXN0ZW5lci5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3Qv
V2ViS2l0RE9NVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaDoKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBlRnVuY3Rp
b25NZXRob2QpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RNZWRpYVF1ZXJ5
TGlzdExpc3RlbmVySW50ZXJuYWw6Om1ldGhvZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6
OkNvbmZpZ3VyZVY4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJUZW1wbGF0ZSk6CisKKyAgICAg
ICAgTmV3IGludGVyZmFjZXM6CisKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUxpc3QuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUxpc3QuaDogQWRkZWQuCisgICAgICAgICog
Y3NzL01lZGlhUXVlcnlMaXN0LmlkbDogQWRkZWQuCisKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVy
eUxpc3RMaXN0ZW5lci5jcHA6IEFkZGVkLgorICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyLmg6IEFkZGVkLgorICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmlk
bDogQWRkZWQuCisKKyAgICAgICAgVG8gYXZvaWQgYWRkaW5nIGNvZGUgdG8gY2xhc3NlcyBET01X
aW5kb3cgYW5kIERvY3VtZW50IGEgbmV3IGNsYXNzIE1lZGlhUXVlcnlNYXRjaGVyIHdhcyBjcmVh
dGVkLgorCisgICAgICAgICogY3NzL01lZGlhUXVlcnlNYXRjaGVyLmNwcDogQWRkZWQuCisgICAg
ICAgICogY3NzL01lZGlhUXVlcnlNYXRjaGVyLmg6IEFkZGVkLgorCisgICAgICAgIERvY3VtZW50
IGFuZCBET01XaW5kb3cgaGF2ZSBjaGFuZ2VkIHRvIHN1cHBvcnQgbmV3IGZlYXR1cmVzLiBET01X
aW5kb3cgaXMgdGhlIGNsYXNzIHRoYXQKKyAgICAgICAgcHVibGlzaGVzIG1ldGhvZHMgbWF0Y2hN
ZWRpYSBidXQgZm9yIHBhZ2UgY2FjaGUgdG8gd29yayBwcm9wZXJseSAgdGhlIHJlZmVyZW5jZSB0
byB0aGUKKyAgICAgICAgTWVkaWFRdWVyeU1hdGNoZXIgbXVzdCBiZSBpbiBEb2N1bWVudC4KKwor
ICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
fkRvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjptZWRpYVF1ZXJ5TWF0Y2hl
cik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c3R5bGVTZWxlY3RvckNoYW5nZWQpOgor
ICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6bWF0Y2hNZWRpYSk6CisgICAgICAgICogcGFn
ZS9ET01XaW5kb3cuaDoKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5pZGw6CisKKyAgICAgICAg
QnVpbGQgc3lzdGVtcworCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVy
aXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBX
ZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5wcmk6CisgICAgICAgICogV2ViQ29yZS5w
cm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2dv
YmplY3QvR05VbWFrZWZpbGUuYW06CisKKyAgICAgICAgVGVzdHM6IGZhc3QvbWVkaWEvbWVkaWEt
cXVlcnktbGlzdC0wMS5odG1sCisgICAgICAgICAgICAgICBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5
LWxpc3QtMDIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0
LTAzLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNC5o
dG1sCisgICAgICAgICAgICAgICBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDUuaHRtbAor
ICAgICAgICAgICAgICAgZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA2Lmh0bWwKKyAgICAg
ICAgICAgICAgIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNy5odG1sCisKIDIwMTAtMTEt
MTIgIEx1aXogQWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UK
aW5kZXggMjU1MzI1ZS4uMDBmODkxOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlCisrKyBiL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMjcwLDYgKzI3MCw4
IEBAIERPTV9DTEFTU0VTID0gXAogICAgIExvY2F0aW9uIFwKICAgICBNZWRpYUVycm9yIFwKICAg
ICBNZWRpYUxpc3QgXAorICAgIE1lZGlhUXVlcnlMaXN0IFwKKyAgICBNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyIFwKICAgICBNZW1vcnlJbmZvIFwKICAgICBNZXNzYWdlQ2hhbm5lbCBcCiAgICAgTWVz
c2FnZUV2ZW50IFwKQEAgLTUwNSw3ICs1MDcsNyBAQCBET01fQ0xBU1NFUyA9IFwKIAogLlBIT05Z
IDogYWxsCiAKLUpTX0RPTV9IRUFERVJTPSQoZmlsdGVyLW91dCBKU0V2ZW50TGlzdGVuZXIuaCBK
U0V2ZW50VGFyZ2V0LmgsJChET01fQ0xBU1NFUzolPUpTJS5oKSkKK0pTX0RPTV9IRUFERVJTPSQo
ZmlsdGVyLW91dCBKU01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCBKU0V2ZW50TGlzdGVuZXIuaCBK
U0V2ZW50VGFyZ2V0LmgsJChET01fQ0xBU1NFUzolPUpTJS5oKSkKIAogV0VCX0RPTV9IRUFERVJT
IDo9CiBpZmVxICgkKGZpbmRzdHJpbmcgQlVJTERJTkdfV1gsJChGRUFUVVJFX0RFRklORVMpKSwg
QlVJTERJTkdfV1gpCmRpZmYgLS1naXQgYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbQppbmRleCA3YWI2MjU5Li4xOTgyNTU5IDEwMDY0NAotLS0gYS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTQzMyw2
ICs0MzMsOCBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNNZWRpYUVycm9yLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYUxp
c3QuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFMaXN0LmggXAorCURlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVF1ZXJ5TGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNNZWRpYVF1ZXJ5TGlzdC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
TWVtb3J5SW5mby5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZW1vcnlJbmZvLmgg
XAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZXNzYWdlQ2hhbm5lbC5jcHAgXApAQCAtMTAw
MywxMSArMTAwNSwxNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvY3NzL01lZGlh
TGlzdC5jcHAgXAogCVdlYkNvcmUvY3NzL01lZGlhTGlzdC5oIFwKIAlXZWJDb3JlL2Nzcy9NZWRp
YVF1ZXJ5LmNwcCBcCisJV2ViQ29yZS9jc3MvTWVkaWFRdWVyeS5oIFwKIAlXZWJDb3JlL2Nzcy9N
ZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcCBcCiAJV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRv
ci5oIFwKIAlXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwLmNwcCBcCiAJV2ViQ29yZS9jc3MvTWVk
aWFRdWVyeUV4cC5oIFwKLQlXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5LmggXAorCVdlYkNvcmUvY3Nz
L01lZGlhUXVlcnlMaXN0LmNwcCBcCisJV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3QuaCBcCisJ
V2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgXAorCVdlYkNvcmUvY3NzL01l
ZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCBcCisJV2ViQ29yZS9jc3MvTWVkaWFRdWVyeU1hdGNoZXIu
Y3BwIFwKKwlXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TWF0Y2hlci5oIFwKIAlXZWJDb3JlL2Nzcy9Q
YWlyLmggXAogCVdlYkNvcmUvY3NzL1JlY3QuaCBcCiAJV2ViQ29yZS9jc3MvUkdCQ29sb3IuY3Bw
IFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5
cGkKaW5kZXggZWVhZjliMi4uOTMwYzY3NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5
cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTE5LDYgKzE5LDcgQEAKICAgICAgICAg
ICAgICdjc3MvQ1NTVmFyaWFibGVzUnVsZS5pZGwnLAogICAgICAgICAgICAgJ2Nzcy9Db3VudGVy
LmlkbCcsCiAgICAgICAgICAgICAnY3NzL01lZGlhTGlzdC5pZGwnLAorICAgICAgICAgICAgJ2Nz
cy9NZWRpYVF1ZXJ5TGlzdC5pZGwnLAogICAgICAgICAgICAgJ2Nzcy9SZWN0LmlkbCcsCiAgICAg
ICAgICAgICAnY3NzL1JHQkNvbG9yLmlkbCcsCiAgICAgICAgICAgICAnY3NzL1N0eWxlTWVkaWEu
aWRsJywKQEAgLTEwNjksMTEgKzEwNzAsMTcgQEAKICAgICAgICAgICAgICdjc3MvTWVkaWFMaXN0
LmNwcCcsCiAgICAgICAgICAgICAnY3NzL01lZGlhTGlzdC5oJywKICAgICAgICAgICAgICdjc3Mv
TWVkaWFRdWVyeS5jcHAnLAorICAgICAgICAgICAgJ2Nzcy9NZWRpYVF1ZXJ5LmgnLAogICAgICAg
ICAgICAgJ2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcCcsCiAgICAgICAgICAgICAnY3NzL01l
ZGlhUXVlcnlFdmFsdWF0b3IuaCcsCiAgICAgICAgICAgICAnY3NzL01lZGlhUXVlcnlFeHAuY3Bw
JywKICAgICAgICAgICAgICdjc3MvTWVkaWFRdWVyeUV4cC5oJywKLSAgICAgICAgICAgICdjc3Mv
TWVkaWFRdWVyeS5oJywKKyAgICAgICAgICAgICdjc3MvTWVkaWFRdWVyeUxpc3QuY3BwJywKKyAg
ICAgICAgICAgICdjc3MvTWVkaWFRdWVyeUxpc3QuaCcsCisgICAgICAgICAgICAnY3NzL01lZGlh
UXVlcnlMaXN0TGlzdGVuZXIuY3BwJywKKyAgICAgICAgICAgICdjc3MvTWVkaWFRdWVyeUxpc3RM
aXN0ZW5lci5oJywKKyAgICAgICAgICAgICdjc3MvTWVkaWFRdWVyeU1hdGNoZXIuY3BwJywKKyAg
ICAgICAgICAgICdjc3MvTWVkaWFRdWVyeU1hdGNoZXIuaCcsCiAgICAgICAgICAgICAnY3NzL1Bh
aXIuaCcsCiAgICAgICAgICAgICAnY3NzL1JlY3QuaCcsCiAgICAgICAgICAgICAnY3NzL1JHQkNv
bG9yLmNwcCcsCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJpIGIvV2ViQ29yZS9XZWJD
b3JlLnByaQppbmRleCA5ZDk5MDZhLi43YThkNDkxIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNv
cmUucHJpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcmkKQEAgLTg2LDYgKzg2LDcgQEAgSURMX0JJ
TkRJTkdTICs9IFwKICAgICBjc3MvQ1NTVmFyaWFibGVzRGVjbGFyYXRpb24uaWRsIFwKICAgICBj
c3MvQ1NTVmFyaWFibGVzUnVsZS5pZGwgXAogICAgIGNzcy9NZWRpYUxpc3QuaWRsIFwKKyAgICBj
c3MvTWVkaWFRdWVyeUxpc3QuaWRsIFwKICAgICBjc3MvUmVjdC5pZGwgXAogICAgIGNzcy9SR0JD
b2xvci5pZGwgXAogICAgIGNzcy9TdHlsZU1lZGlhLmlkbCBcCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L1dlYkNvcmUucHJvIGIvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCBlMWNkNWExLi4zMjUxNjMx
IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5w
cm8KQEAgLTY1OCw2ICs2NTgsOSBAQCBTT1VSQ0VTICs9IFwKICAgICBjc3MvTWVkaWFRdWVyeS5j
cHAgXAogICAgIGNzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcCBcCiAgICAgY3NzL01lZGlhUXVl
cnlFeHAuY3BwIFwKKyAgICBjc3MvTWVkaWFRdWVyeUxpc3QuY3BwIFwKKyAgICBjc3MvTWVkaWFR
dWVyeUxpc3RMaXN0ZW5lci5jcHAgXAorICAgIGNzcy9NZWRpYVF1ZXJ5TWF0Y2hlci5jcHAgXAog
ICAgIGNzcy9SR0JDb2xvci5jcHAgXAogICAgIGNzcy9TaGFkb3dWYWx1ZS5jcHAgXAogICAgIGNz
cy9TdHlsZUJhc2UuY3BwIFwKQEAgLTE1NzIsOSArMTU3NSwxMiBAQCBIRUFERVJTICs9IFwKICAg
ICBjc3MvRm9udFZhbHVlLmggXAogICAgIGNzcy9NZWRpYUZlYXR1cmVOYW1lcy5oIFwKICAgICBj
c3MvTWVkaWFMaXN0LmggXAorICAgIGNzcy9NZWRpYVF1ZXJ5LmggXAogICAgIGNzcy9NZWRpYVF1
ZXJ5RXZhbHVhdG9yLmggXAogICAgIGNzcy9NZWRpYVF1ZXJ5RXhwLmggXAotICAgIGNzcy9NZWRp
YVF1ZXJ5LmggXAorICAgIGNzcy9NZWRpYVF1ZXJ5TGlzdC5oIFwKKyAgICBjc3MvTWVkaWFRdWVy
eUxpc3RMaXN0ZW5lci5oIFwKKyAgICBjc3MvTWVkaWFRdWVyeU1hdGNoZXIuaCBcCiAgICAgY3Nz
L1JHQkNvbG9yLmggXAogICAgIGNzcy9TaGFkb3dWYWx1ZS5oIFwKICAgICBjc3MvU3R5bGVCYXNl
LmggXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBi
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKb2xkIG1vZGUgMTAwNjQ0Cm5l
dyBtb2RlIDEwMDc1NQppbmRleCAxZjE4YjQwLi45NDE4OTkzCi0tLSBhL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvagpAQCAtOTk2NCw2ICs5OTY0LDYyIEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJ
CQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9q
ZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNNZWRpYVF1ZXJ5TGlzdC5jcHAiDQorCQkJCT4NCisJ
CQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCisJCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4N
CisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0KKwkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnX0ludGVybmFs
fFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8
VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRl
YnVnX0NhaXJvfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+
DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0K
KwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJ
CU5hbWU9IlJlbGVhc2VfQ2Fpcm98V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIN
CisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJh
dGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxl
clRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCTwvRmlsZT4N
CisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQ
cm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNNZWRpYVF1ZXJ5TGlzdC5oIg0KKwkJCQk+DQor
CQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXRE
aXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0tleWJvYXJkRXZlbnQuY3Bw
Ig0KIAkJCQk+DQogCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KQEAgLTMwNjg4LDYgKzMwNzQ0LDMw
IEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XGNzc1xNZWRpYVF1ZXJ5TGlzdC5jcHAiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUN
CisJCQkJUmVsYXRpdmVQYXRoPSIuLlxjc3NcTWVkaWFRdWVyeUxpc3QuaCINCisJCQkJPg0KKwkJ
CTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xNZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyLmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGNzc1xNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgiDQorCQkJCT4NCisJ
CQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxjc3NcTWVkaWFRdWVy
eU1hdGNoZXIuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0
aXZlUGF0aD0iLi5cY3NzXE1lZGlhUXVlcnlNYXRjaGVyLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+
DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxjc3NcUGFpci5oIg0KIAkJCQk+DQog
CQkJPC9GaWxlPg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggNzc1YjMzMy4uNmNmODZiOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTUzNDMsOCArNTM0MywxNiBAQAogCQlEMjNDQTU1RDBBQjBFQUFFMDA1MTA4
QTUgLyogSlNSYW5nZUV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRDIzQ0E1NUMwQUIwRUFBRTAwNTEwOEE1IC8qIEpTUmFuZ2VFeGNlcHRp
b24uaCAqLzsgfTsKIAkJRDIzQ0E1NUYwQUIwRUFCNjAwNTEwOEE1IC8qIEpTUmFuZ2VFeGNlcHRp
b24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDIz
Q0E1NUUwQUIwRUFCNjAwNTEwOEE1IC8qIEpTUmFuZ2VFeGNlcHRpb24uY3BwICovOyB9OwogCQlE
MjNDQTU2QzBBQjBFQjhEMDA1MTA4QTUgLyogUmFuZ2VFeGNlcHRpb24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQyM0NBNTZCMEFCMEVCOEQwMDUxMDhB
NSAvKiBSYW5nZUV4Y2VwdGlvbi5oICovOyB9OworCQlEMzQwNjI5QjEyNTNCQzhDMDA5RTQyNTkg
LyogTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBEMzQwNjI5QTEyNTNCQzhDMDA5RTQyNTkgLyogTWVkaWFRdWVy
eUxpc3RMaXN0ZW5lci5jcHAgKi87IH07CiAJCUQzOUQwMDZEMTFGOEUzMDgwMDYwNDFGMiAvKiBQ
b3B1cE1lbnVNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEQzOUQwMDZDMTFGOEUzMDgwMDYwNDFGMiAvKiBQb3B1cE1lbnVNYWMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlEMzlEMDA5RDExRjkwN0U2
MDA2MDQxRjIgLyogU2VhcmNoUG9wdXBNZW51TWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMzlEMDA5QzExRjkwN0U2MDA2MDQxRjIgLyogU2VhcmNo
UG9wdXBNZW51TWFjLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJRDNBOTRBMzgxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQTk0QTMxMTIy
REFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdC5jcHAgKi87IH07CisJCUQzQTk0QTM5MTIy
REFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNBOTRBMzIxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlh
UXVlcnlMaXN0LmggKi87IH07CisJCUQzQTk0QTNCMTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBEM0E5NEEzNDEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeUxpc3RMaXN0ZW5l
ci5oICovOyB9OworCQlEM0E5NEE0NjEyMkRDNDBGMDBBMzdCQkMgLyogSlNNZWRpYVF1ZXJ5TGlz
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0E5
NEE0MjEyMkRDNDBGMDBBMzdCQkMgLyogSlNNZWRpYVF1ZXJ5TGlzdC5jcHAgKi87IH07CisJCUQz
QTk0QTQ3MTIyREM0MEYwMEEzN0JCQyAvKiBKU01lZGlhUXVlcnlMaXN0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0E5NEE0MzEyMkRDNDBGMDBBMzdC
QkMgLyogSlNNZWRpYVF1ZXJ5TGlzdC5oICovOyB9OworCQlEM0FBMTBGMzEyM0E5OEFBMDA5MjE1
MkIgLyogTWVkaWFRdWVyeU1hdGNoZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRDNBQTEwRjExMjNBOThBQTAwOTIxNTJCIC8qIE1lZGlhUXVlcnlN
YXRjaGVyLmNwcCAqLzsgfTsKKwkJRDNBQTEwRjQxMjNBOThBQTAwOTIxNTJCIC8qIE1lZGlhUXVl
cnlNYXRjaGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBEM0FBMTBGMjEyM0E5OEFBMDA5MjE1MkIgLyogTWVkaWFRdWVyeU1hdGNoZXIuaCAqLzsgfTsK
IAkJRDhCNjE1MkYxMDMyNDk1MTAwQzg1NTRBIC8qIENvb2tpZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDhCNjE1MkUxMDMyNDk1MTAwQzg1NTRBIC8q
IENvb2tpZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCURCMjNDMkNCMEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQjIzQzJDOTBB
NTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuY3BwICovOyB9OwogCQlEQjIz
QzJDQzBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERCMjNDMkNBMEE1MDhEMjkwMDI0
ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5oICovOyB9OwpAQCAtMTE0MTcsOCArMTE0MjUs
MTggQEAKIAkJRDIzQ0E1NUMwQUIwRUFBRTAwNTEwOEE1IC8qIEpTUmFuZ2VFeGNlcHRpb24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUmFuZ2VFeGNlcHRpb24uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDIzQ0E1NUUwQUIwRUFCNjAwNTEwOEE1IC8qIEpT
UmFuZ2VFeGNlcHRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTUmFuZ2VFeGNlcHRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMjND
QTU2QjBBQjBFQjhEMDA1MTA4QTUgLyogUmFuZ2VFeGNlcHRpb24uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJhbmdlRXhjZXB0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUQzNDA2MjlBMTI1M0JDOEMwMDlFNDI1OSAvKiBNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMzlEMDA2QzEx
RjhFMzA4MDA2MDQxRjIgLyogUG9wdXBNZW51TWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFBvcHVwTWVudU1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlE
MzlEMDA5QzExRjkwN0U2MDA2MDQxRjIgLyogU2VhcmNoUG9wdXBNZW51TWFjLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlYXJjaFBvcHVwTWVudU1hYy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlEM0E5NEEzMTEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVy
eUxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFRdWVy
eUxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEM0E5NEEzMjEyMkRBQkFD
MDBBMzdCQkMgLyogTWVkaWFRdWVyeUxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTWVkaWFRdWVyeUxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDNB
OTRBMzMxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0LmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBNZWRpYVF1ZXJ5TGlzdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUQzQTk0QTM0MTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDNBOTRBMzUxMjJEQUJBQzAwQTM3QkJD
IC8qIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlE
M0E5NEE0MjEyMkRDNDBGMDBBMzdCQkMgLyogSlNNZWRpYVF1ZXJ5TGlzdC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU01lZGlhUXVlcnlMaXN0LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDNBOTRBNDMxMjJEQzQwRjAwQTM3QkJDIC8qIEpTTWVk
aWFRdWVyeUxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNZWRpYVF1
ZXJ5TGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEM0FBMTBGMTEyM0E5OEFB
MDA5MjE1MkIgLyogTWVkaWFRdWVyeU1hdGNoZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTWVkaWFRdWVyeU1hdGNoZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlEM0FBMTBGMjEyM0E5OEFBMDA5MjE1MkIgLyogTWVkaWFRdWVyeU1hdGNoZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFRdWVyeU1hdGNoZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDhCNjE1MkUxMDMyNDk1MTAwQzg1NTRBIC8q
IENvb2tpZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb29raWUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREIyM0MyQzkwQTUwOEQyOTAwMjQ4OUVCIC8qIElu
ZGVudE91dGRlbnRDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBJbmRlbnRPdXRkZW50Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCURCMjNDMkNBMEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5kZW50T3V0ZGVudENvbW1hbmQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1ODI4LDYgKzE1ODQ2LDggQEAKIAkJCQlC
QzY4NkM3QTBFMEMzMzAxMDBERThBMDggLyogSlNDU1NWYXJpYWJsZXNSdWxlLmNwcCAqLywKIAkJ
CQlCQzY4NkM3QjBFMEMzMzAxMDBERThBMDggLyogSlNDU1NWYXJpYWJsZXNSdWxlLmggKi8sCiAJ
CQkJQkMzQzM5QjQwQzBEM0Q4RDAwNUY0RDdBIC8qIEpTTWVkaWFMaXN0LmNwcCAqLywKKwkJCQlE
M0E5NEE0MjEyMkRDNDBGMDBBMzdCQkMgLyogSlNNZWRpYVF1ZXJ5TGlzdC5jcHAgKi8sCisJCQkJ
RDNBOTRBNDMxMjJEQzQwRjAwQTM3QkJDIC8qIEpTTWVkaWFRdWVyeUxpc3QuaCAqLywKIAkJCQlC
QzNDMzlCNTBDMEQzRDhEMDA1RjREN0EgLyogSlNNZWRpYUxpc3QuaCAqLywKIAkJCQlCQ0ZFMkYw
RjBDMUI1ODM3MDAyMDIzNUYgLyogSlNSZWN0LmNwcCAqLywKIAkJCQlCQ0ZFMkYxMDBDMUI1ODM3
MDAyMDIzNUYgLyogSlNSZWN0LmggKi8sCkBAIC0xNzgzOCw2ICsxNzg1OCwxNCBAQAogCQkJCTRF
MTk1OTI2MEEzOURBQ0MwMDIyMEZFNSAvKiBNZWRpYVF1ZXJ5RXZhbHVhdG9yLmggKi8sCiAJCQkJ
NEUxOTU5MjcwQTM5REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnlFeHAuY3BwICovLAogCQkJCTRF
MTk1OTI4MEEzOURBQ0MwMDIyMEZFNSAvKiBNZWRpYVF1ZXJ5RXhwLmggKi8sCisJCQkJRDNBOTRB
MzExMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0LmNwcCAqLywKKwkJCQlEM0E5NEEz
MjEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeUxpc3QuaCAqLywKKwkJCQlEM0E5NEEzMzEy
MkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeUxpc3QuaWRsICovLAorCQkJCUQzQTk0QTM0MTIy
REFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggKi8sCisJCQkJRDM0MDYy
OUExMjUzQkM4QzAwOUU0MjU5IC8qIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwICovLAorCQkJ
CUQzQTk0QTM1MTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmlkbCAq
LywKKwkJCQlEM0FBMTBGMTEyM0E5OEFBMDA5MjE1MkIgLyogTWVkaWFRdWVyeU1hdGNoZXIuY3Bw
ICovLAorCQkJCUQzQUExMEYyMTIzQTk4QUEwMDkyMTUyQiAvKiBNZWRpYVF1ZXJ5TWF0Y2hlci5o
ICovLAogCQkJCUE4MEU2Q0QxMEExOTg5Q0EwMDdGQjhDNSAvKiBQYWlyLmggKi8sCiAJCQkJOTND
QTRDOUYwOURGOTNGQTAwREY4Njc3IC8qIHF1aXJrcy5jc3MgKi8sCiAJCQkJQkM0MzY4RTcwQzIy
NkUzMjAwNUVGQjVGIC8qIFJlY3QuaCAqLywKQEAgLTIxMzY5LDYgKzIxMzk3LDEwIEBACiAJCQkJ
NDk5QjNDNTkxMjhDNjQxRTAwRTcyNkMyIC8qIEdyYXBoaWNzTGF5ZXJNYWMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTA4MjUwOTM5MTI4QkQ0RDgwMEUyRUQ4RSAvKiBTVkdBbmltYXRlZFRyYW5zZm9y
bUxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTM4ODhGNkVGMTI4Qzk4ODkwMDBDQThFMCAvKiBJ
bnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUQzQTk0QTM5MTIy
REFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRDNB
OTRBM0IxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUQzQTk0QTQ3MTIyREM0MEYwMEEzN0JCQyAvKiBKU01lZGlhUXVlcnlMaXN0
LmggaW4gSGVhZGVycyAqLywKKwkJCQlEM0FBMTBGNDEyM0E5OEFBMDA5MjE1MkIgLyogTWVkaWFR
dWVyeU1hdGNoZXIuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3lt
ZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjM5NDAsNiArMjM5NzIsMTAgQEAKIAkJ
CQk5N0RENEQ4NjBGREY0RDZFMDBFQ0Y5QTQgLyogWFNTQXVkaXRvci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk0OTlCM0M1QTEyOEM2NDFFMDBFNzI2QzIgLyogR3JhcGhpY3NMYXllck1hYy5tbSBp
biBTb3VyY2VzICovLAogCQkJCTM4ODhGNkVFMTI4Qzk4ODkwMDBDQThFMCAvKiBJbnNwZWN0b3JG
aWxlU3lzdGVtQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRDNBOTRBMzgxMjJEQUJBQzAw
QTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUQzQTk0QTQ2
MTIyREM0MEYwMEEzN0JCQyAvKiBKU01lZGlhUXVlcnlMaXN0LmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCUQzQUExMEYzMTIzQTk4QUEwMDkyMTUyQiAvKiBNZWRpYVF1ZXJ5TWF0Y2hlci5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlEMzQwNjI5QjEyNTNCQzhDMDA5RTQyNTkgLyogTWVkaWFRdWVyeUxp
c3RMaXN0ZW5lci5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95
bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGlu
Z3MvZ29iamVjdC9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9HTlVt
YWtlZmlsZS5hbQppbmRleCAzMzhkN2Y5Li5iZjg5NmJkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Jp
bmRpbmdzL2dvYmplY3QvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9nb2Jq
ZWN0L0dOVW1ha2VmaWxlLmFtCkBAIC0xOTYsNiArMTk2LDggQEAgd2Via2l0Z3RrX2dkb21fYnVp
bHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTU1lZGlhRXJy
b3JQcml2YXRlLmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01NZWRpYUxpc3Qu
Y3BwIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NTWVkaWFMaXN0UHJpdmF0ZS5o
IFwKKwlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NTWVkaWFRdWVyeUxpc3QuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NTWVkaWFRdWVyeUxpc3RQcml2YXRlLmgg
XAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01NZW1vcnlJbmZvLmNwcCBcCiAJRGVy
aXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTU1lbW9yeUluZm9Qcml2YXRlLmggXAogCURlcml2
ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01NZXNzYWdlUG9ydC5jcHAgXApAQCAtMjU0LDYgKzI1
Niw3IEBAIHdlYmtpdGd0a19idWlsdF9oX2FwaSArPSBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0
L1dlYktpdERPTUNTU1N0eWxlU2hlZXQuaCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktp
dERPTUNTU1ZhbHVlLmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01NZWRpYUxp
c3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTU1lZGlhUXVlcnlMaXN0Lmgg
XAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01TdHlsZU1lZGlhLmggXAogCURlcml2
ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01TdHlsZVNoZWV0LmggXAogCURlcml2ZWRTb3VyY2Vz
L3dlYmtpdC9XZWJLaXRET01TdHlsZVNoZWV0TGlzdC5oIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
YmluZGluZ3MvanMvU2NyaXB0VmFsdWUuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRW
YWx1ZS5jcHAKaW5kZXggYTU4ZTBjNy4uZTc4ZTAzYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5k
aW5ncy9qcy9TY3JpcHRWYWx1ZS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRW
YWx1ZS5jcHAKQEAgLTg0LDYgKzg0LDEzIEBAIGJvb2wgU2NyaXB0VmFsdWU6OmlzT2JqZWN0KCkg
Y29uc3QKICAgICByZXR1cm4gbV92YWx1ZS5nZXQoKS5pc09iamVjdCgpOwogfQogCitib29sIFNj
cmlwdFZhbHVlOjppc0Z1bmN0aW9uKCkgY29uc3QKK3sKKyAgICBDYWxsRGF0YSBjYWxsRGF0YTsK
KyAgICBDYWxsVHlwZSBjYWxsVHlwZSA9IGdldENhbGxEYXRhKG1fdmFsdWUsIGNhbGxEYXRhKTsK
KyAgICByZXR1cm4gY2FsbFR5cGUgIT0gQ2FsbFR5cGVOb25lOworfQorCiBQYXNzUmVmUHRyPFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4gU2NyaXB0VmFsdWU6OnNlcmlhbGl6ZShTY3JpcHRTdGF0ZSog
c2NyaXB0U3RhdGUpCiB7CiAgICAgcmV0dXJuIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRl
KHNjcmlwdFN0YXRlLCBqc1ZhbHVlKCkpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHRWYWx1ZS5oIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRWYWx1ZS5oCmluZGV4
IGIxNzBmY2YuLmUyNGY5NjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
VmFsdWUuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFZhbHVlLmgKQEAgLTU3LDYg
KzU3LDkgQEAgcHVibGljOgogICAgIGJvb2wgaXNPYmplY3QoKSBjb25zdDsKICAgICBib29sIGhh
c05vVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlID09IEpTQzo6SlNWYWx1ZSgpOyB9CiAK
KyAgICBib29sIGlzRnVuY3Rpb24oKSBjb25zdDsKKyAgICBib29sIG9wZXJhdG9yPT0oY29uc3Qg
U2NyaXB0VmFsdWUmIG90aGVyKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlID09IG90aGVyLm1fdmFs
dWU7IH0KKwogICAgIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBzZXJpYWxpemUo
U2NyaXB0U3RhdGUqKTsKICAgICBzdGF0aWMgU2NyaXB0VmFsdWUgZGVzZXJpYWxpemUoU2NyaXB0
U3RhdGUqLCBTZXJpYWxpemVkU2NyaXB0VmFsdWUqKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtIGIvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCmluZGV4IDZjNDUwYWQuLmVlYzM0OTMg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVj
dC5wbQorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3Qu
cG0KQEAgLTIxMCw4ICsyMTAsMTEgQEAgc3ViIFNraXBGdW5jdGlvbiB7CiAKICAgICAjIFNraXAg
ZnVuY3Rpb25zIHRoYXQgaGF2ZSBbIkNhbGxiYWNrIl0gcGFyYW1ldGVycywgYmVjYXVzZSB0aGlz
CiAgICAgIyBjb2RlIGdlbmVyYXRvciBkb2Vzbid0IGtub3cgaG93IHRvIGF1dG8tZ2VuZXJhdGUg
Y2FsbGJhY2tzLgorICAgICMgU2tpcCBmdW5jdGlvbnMgdGhhdCBoYXZlICJNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyIiBwYXJhbWV0ZXJzLCBiZWNhdXNlIHRoaXMKKyAgICAjIGNvZGUgZ2VuZXJhdG9y
IGRvZXNuJ3Qga25vdyBob3cgdG8gYXV0by1nZW5lcmF0ZSBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
LgogICAgIGZvcmVhY2ggbXkgJHBhcmFtIChAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc30pIHsKLSAg
ICAgICAgaWYgKCRwYXJhbS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNhbGxiYWNrIn0pIHsKKyAg
ICAgICAgaWYgKCRwYXJhbS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNhbGxiYWNrIn0gfHwKKyAg
ICAgICAgICAgICRwYXJhbS0+dHlwZSBlcSAiTWVkaWFRdWVyeUxpc3RMaXN0ZW5lciIpIHsKICAg
ICAgICAgICAgIHJldHVybiAxOwogICAgICAgICB9CiAgICAgfQpAQCAtNTk5LDcgKzYwMiw4IEBA
IEVPRgogICAgIHB1c2goQHR4dFNldFByb3BzLCAkdHh0U2V0UHJvcHMpOwogCiAgICAgZm9yZWFj
aCBteSAkYXR0cmlidXRlIChAcmVhZGFibGVQcm9wZXJ0aWVzKSB7Ci0gICAgICAgIGlmICgkYXR0
cmlidXRlLT5zaWduYXR1cmUtPnR5cGUgbmUgIkV2ZW50TGlzdGVuZXIiKSB7CisgICAgICAgIGlm
ICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUgbmUgIkV2ZW50TGlzdGVuZXIiICYmCisgICAg
ICAgICAgICAkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUgbmUgIk1lZGlhUXVlcnlMaXN0TGlz
dGVuZXIiKSB7CiAgICAgICAgICAgICBHZW5lcmF0ZVByb3BlcnR5KCRhdHRyaWJ1dGUsICRpbnRl
cmZhY2VOYW1lLCBcQHdyaXRlYWJsZVByb3BlcnRpZXMpOwogICAgICAgICB9CiAgICAgfQpAQCAt
NzY2LDYgKzc3MCw3IEBAIHN1YiBnZXRJbmNsdWRlSGVhZGVyIHsKICAgICByZXR1cm4gIiIgaWYg
JHR5cGUgZXEgInVuc2lnbmVkIHNob3J0IjsKICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgIkRP
TVRpbWVTdGFtcCI7CiAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJFdmVudExpc3RlbmVyIjsK
KyAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgIk1lZGlhUXVlcnlMaXN0TGlzdGVuZXIiOwogICAg
IHJldHVybiAiIiBpZiAkdHlwZSBlcSAidW5zaWduZWQgY2hhciI7CiAgICAgcmV0dXJuICIiIGlm
ICR0eXBlIGVxICJET01TdHJpbmciOwogICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAiZmxvYXQi
OwpAQCAtODAwLDYgKzgwNSwxMCBAQCBzdWIgR2VuZXJhdGVGdW5jdGlvbiB7CiAKICAgICBteSAk
ZGVjYW1lbGl6ZSA9IEZpeFVwRGVjYW1lbGl6ZWROYW1lKGRlY2FtZWxpemUoJGludGVyZmFjZU5h
bWUpKTsKIAorICAgIGlmICgkb2JqZWN0IGVxICJNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIikgewor
ICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgaWYgKFNraXBGdW5jdGlvbigkZnVuY3Rpb24s
ICRkZWNhbWVsaXplLCAkcHJlZml4KSkgewogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtODIx
LDcgKzgzMCw3IEBAIHN1YiBHZW5lcmF0ZUZ1bmN0aW9uIHsKIAogICAgIGZvcmVhY2ggbXkgJHBh
cmFtIChAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc30pIHsKICAgICAgICAgbXkgJHBhcmFtSURMVHlw
ZSA9ICRwYXJhbS0+dHlwZTsKLSAgICAgICAgaWYgKCRwYXJhbUlETFR5cGUgZXEgIkV2ZW50TGlz
dGVuZXIiKSB7CisgICAgICAgIGlmICgkcGFyYW1JRExUeXBlIGVxICJFdmVudExpc3RlbmVyIiB8
fCAkcGFyYW1JRExUeXBlIGVxICJNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIikgewogICAgICAgICAg
ICAgcHVzaChAaEJvZHksICJcbi8qIFRPRE86IGV2ZW50IGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1l
fSAqL1xuXG4iKTsKICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiXG4vKiBUT0RPOiBldmVudCBm
dW5jdGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CiAgICAgICAgICAgICByZXR1cm47CkBA
IC0xMDc1LDcgKzEwODQsOSBAQCBzdWIgR2VuZXJhdGVGdW5jdGlvbnMgewogCiAgICAgVE9QOgog
ICAgIGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQHskZGF0YU5vZGUtPmF0dHJpYnV0ZXN9KSB7Ci0g
ICAgICAgIGlmIChTa2lwQXR0cmlidXRlKCRhdHRyaWJ1dGUpIHx8ICRhdHRyaWJ1dGUtPnNpZ25h
dHVyZS0+dHlwZSBlcSAiRXZlbnRMaXN0ZW5lciIpIHsKKyAgICAgICAgaWYgKFNraXBBdHRyaWJ1
dGUoJGF0dHJpYnV0ZSkgfHwKKyAgICAgICAgICAgICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlw
ZSBlcSAiRXZlbnRMaXN0ZW5lciIgfHwKKyAgICAgICAgICAgICRhdHRyaWJ1dGUtPnNpZ25hdHVy
ZS0+dHlwZSBlcSAiTWVkaWFRdWVyeUxpc3RMaXN0ZW5lciIpIHsKICAgICAgICAgICAgIG5leHQg
VE9QOwogICAgICAgICB9CiAgICAgICAgIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG0KaW5kZXggMDc1NzVmNy4uZmY5YWQ4ZCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC02LDYgKzYsNyBAQAogIyBDb3B5cmln
aHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogIyBDb3B5cmlnaHQgKEMpIDIwMDkgQ2FtZXJvbiBNY0Nvcm1hY2sgPGNhbUBt
Y2MuaWQuYXU+CiAjIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAx
MC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBv
cmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogIwogIyBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAjIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0y
NzMsNiArMjc0LDEwIEBAIHN1YiBBZGRJbmNsdWRlc0ZvclR5cGUKICAgICBpZiAoJHR5cGUgZXEg
IkRvY3VtZW50IikgewogICAgICAgICAkaW1wbEluY2x1ZGVzeyJOb2RlRmlsdGVyLmgifSA9IDE7
CiAgICAgfQorCisgICAgaWYgKCR0eXBlIGVxICJNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIikgewor
ICAgICAgICAkaW1wbEluY2x1ZGVzeyJNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgifSA9IDE7Cisg
ICAgfQogfQogCiAjIEZJWE1FOiBUaGlzIG1ldGhvZCB3aWxsIGdvIGF3YXkgb25jZSBhbGwgU1ZH
IGFuaW1hdGVkIHByb3BlcnRpZXMgYXJlIGNvbnZlcnRlZCB0byB0aGUgbmV3IHNjaGVtZS4KQEAg
LTIzOTYsNiArMjQwMSw3IEBAIG15ICVuYXRpdmVUeXBlID0gKAogICAgICJ1bnNpZ25lZCBzaG9y
dCIgPT4gInVuc2lnbmVkIHNob3J0IiwKICAgICAibG9uZyBsb25nIiA9PiAibG9uZyBsb25nIiwK
ICAgICAidW5zaWduZWQgbG9uZyBsb25nIiA9PiAidW5zaWduZWQgbG9uZyBsb25nIiwKKyAgICAi
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciIgPT4gIlJlZlB0cjxNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
PiIKICk7CiAKIHN1YiBHZXROYXRpdmVUeXBlCkBAIC0yNDc5LDYgKzI0ODUsMTEgQEAgc3ViIEpT
VmFsdWVUb05hdGl2ZQogICAgICAgICByZXR1cm4gIiR2YWx1ZSI7CiAgICAgfQogCisgICAgaWYg
KCR0eXBlIGVxICJNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIikgeworICAgICAgICAkaW1wbEluY2x1
ZGVzeyJNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgifSA9IDE7CisgICAgICAgIHJldHVybiAiTWVk
aWFRdWVyeUxpc3RMaXN0ZW5lcjo6Y3JlYXRlKCIgLiAkdmFsdWUgLiIpIjsKKyAgICB9CisKICAg
ICBpZiAoJHR5cGUgZXEgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSIgb3IgJHR5cGUgZXEgImFueSIp
IHsKICAgICAgICAgJGltcGxJbmNsdWRlc3siU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgifSA9IDE7
CiAgICAgICAgIHJldHVybiAiU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUoZXhlYywgJHZh
bHVlKSI7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
clY4LnBtIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQppbmRl
eCAyNWVlYTdmLi5kMGYzZDVhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvclY4LnBtCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yVjgucG0KQEAgLTcsNiArNyw3IEBACiAjIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwg
MjAwOSBHb29nbGUgSW5jLgogIyBDb3B5cmlnaHQgKEMpIDIwMDkgQ2FtZXJvbiBNY0Nvcm1hY2sg
PGNhbUBtY2MuaWQuYXU+CiAjIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0
ZWQgMjAxMC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDEwIE5va2lh
IENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogIwogIyBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAjIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CkBAIC0yODcwLDYgKzI4NzEsOCBAQCBzdWIgR2V0TmF0aXZlVHlwZQogCiAgICAgcmV0dXJuICJS
ZWZQdHI8JHt0eXBlfT4iIGlmIElzUmVmUHRyVHlwZSgkdHlwZSkgYW5kIG5vdCAkaXNQYXJhbWV0
ZXI7CiAKKyAgICByZXR1cm4gIlJlZlB0cjxNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyPiIgaWYgJHR5
cGUgZXEgIk1lZGlhUXVlcnlMaXN0TGlzdGVuZXIiOworCiAgICAgIyBEZWZhdWx0LCBhc3N1bWUg
bmF0aXZlIHR5cGUgaXMgYSBwb2ludGVyIHdpdGggc2FtZSB0eXBlIG5hbWUgYXMgaWRsIHR5cGUK
ICAgICByZXR1cm4gIiR7dHlwZX0qIjsKIH0KQEAgLTI5NDksNiArMjk1MiwxMSBAQCBzdWIgSlNW
YWx1ZVRvTmF0aXZlCiAgICAgICAgICRpbXBsSW5jbHVkZXN7IkZsb2F0UmVjdC5oIn0gPSAxOwog
ICAgIH0KIAorICAgIGlmICgkdHlwZSBlcSAiTWVkaWFRdWVyeUxpc3RMaXN0ZW5lciIpIHsKKyAg
ICAgICAgJGltcGxJbmNsdWRlc3siTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oIn0gPSAxOworICAg
ICAgICByZXR1cm4gIk1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OmNyZWF0ZSgiIC4gJHZhbHVlIC4g
IikiOworICAgIH0KKwogICAgICMgRGVmYXVsdCwgYXNzdW1lIGF1dG9nZW5lcmF0ZWQgdHlwZSBj
b252ZXJzaW9uIHJvdXRpbmVzCiAgICAgaWYgKCR0eXBlIGVxICJFdmVudFRhcmdldCIpIHsKICAg
ICAgICAgJGltcGxJbmNsdWRlc3siVjhOb2RlLmgifSA9IDE7CkBAIC0zMDc2LDcgKzMwODQsOCBA
QCBteSAlbm9uX3dyYXBwZXJfdHlwZXMgPSAoCiAgICAgJ05vZGVGaWx0ZXInID0+IDEsCiAgICAg
J0V2ZW50TGlzdGVuZXInID0+IDEsCiAgICAgJ0lEQktleScgPT4gMSwKLSAgICAnRGF0ZScgPT4g
MQorICAgICdEYXRlJyA9PiAxLAorICAgICdNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyJyA9PiAxCiAp
OwogCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3Qv
V2ViS2l0RE9NVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwIGIvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5l
ci5jcHAKaW5kZXggYWY5MzAwZC4uZjVkZWQ3OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5l
ci5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRE
T01UZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKQEAgLTI4LDggKzI4LDYgQEAKICNpbmNs
dWRlICJUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oIgogI2luY2x1ZGUgIldlYktpdERPTUJp
bmRpbmcuaCIKICNpbmNsdWRlICJnb2JqZWN0L0NvbnZlcnRUb1VURjhTdHJpbmcuaCIKLSNpbmNs
dWRlICJ3ZWJraXQvV2ViS2l0RE9NTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oIgotI2luY2x1ZGUg
IndlYmtpdC9XZWJLaXRET01NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJpdmF0ZS5oIgogI2luY2x1
ZGUgIndlYmtpdC9XZWJLaXRET01UZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oIgogI2luY2x1
ZGUgIndlYmtpdC9XZWJLaXRET01UZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByaXZhdGUuaCIK
ICNpbmNsdWRlICJ3ZWJraXRtYXJzaGFsLmgiCkBAIC00OSwyMSArNDcsNiBAQCBncG9pbnRlciBr
aXQoV2ViQ29yZTo6VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqIG9iaikKICAgICAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdCAvLwogCi12b2lkCi13ZWJraXRfZG9tX3Rlc3RfbWVkaWFfcXVlcnlf
bGlzdF9saXN0ZW5lcl9tZXRob2QoV2ViS2l0RE9NVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIq
IHNlbGYsIFdlYktpdERPTU1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqIGxpc3RlbmVyKQotewotICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl9pZl9m
YWlsKHNlbGYpOwotICAgIFdlYkNvcmU6OlRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyICogaXRl
bSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBnX3JldHVybl9pZl9mYWlsKGxpc3RlbmVyKTsK
LSAgICBXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyICogY29udmVydGVkX2xpc3RlbmVy
ID0gTlVMTDsKLSAgICBpZiAobGlzdGVuZXIgIT0gTlVMTCkgewotICAgICAgICBjb252ZXJ0ZWRf
bGlzdGVuZXIgPSBXZWJLaXQ6OmNvcmUobGlzdGVuZXIpOwotICAgICAgICBnX3JldHVybl9pZl9m
YWlsKGNvbnZlcnRlZF9saXN0ZW5lcik7Ci0gICAgfQotICAgIGl0ZW0tPm1ldGhvZChjb252ZXJ0
ZWRfbGlzdGVuZXIpOwotfQotCiAKIEdfREVGSU5FX1RZUEUoV2ViS2l0RE9NVGVzdE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXIsIHdlYmtpdF9kb21fdGVzdF9tZWRpYV9xdWVyeV9saXN0X2xpc3RlbmVy
LCBXRUJLSVRfVFlQRV9ET01fT0JKRUNUKQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
LmggYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgKaW5kZXggOTRlODI1ZS4uNjEyNDM5YiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lci5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0dPYmplY3QvV2ViS2l0RE9NVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaApAQCAtNDYsOSAr
NDYsNiBAQCBzdHJ1Y3QgX1dlYktpdERPTVRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ2xhc3Mg
ewogV0VCS0lUX0FQSSBHVHlwZQogd2Via2l0X2RvbV90ZXN0X21lZGlhX3F1ZXJ5X2xpc3RfbGlz
dGVuZXJfZ2V0X3R5cGUgKHZvaWQpOwogCi1XRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9kb21fdGVz
dF9tZWRpYV9xdWVyeV9saXN0X2xpc3RlbmVyX21ldGhvZChXZWJLaXRET01UZXN0TWVkaWFRdWVy
eUxpc3RMaXN0ZW5lciogc2VsZiwgV2ViS2l0RE9NTWVkaWFRdWVyeUxpc3RMaXN0ZW5lciogbGlz
dGVuZXIpOwotCiBHX0VORF9ERUNMUwogCiAjZW5kaWYgLyogV2ViS2l0RE9NVGVzdE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXJfaCAqLwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgYi9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcAppbmRl
eCBjZGU5NjcyLi5lNTA1ZWQyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcAorKysgYi9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcApA
QCAtMjMsNyArMjMsNyBAQAogCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUg
IkpTRE9NQmluZGluZy5oIgotI2luY2x1ZGUgIkpTTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oIgor
I2luY2x1ZGUgIk1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCIKICNpbmNsdWRlICJUZXN0TWVkaWFR
dWVyeUxpc3RMaXN0ZW5lci5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3IuaD4KICNpbmNsdWRl
IDx3dGYvR2V0UHRyLmg+CkBAIC0xNzQsNyArMTc0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBlRnVuY3Rpb25NZXRo
b2QKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAgICAgSlNUZXN0TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lciogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXIqPihhc09iamVjdCh0aGlzVmFsdWUpKTsKICAgICBUZXN0TWVkaWFR
dWVyeUxpc3RMaXN0ZW5lciogaW1wID0gc3RhdGljX2Nhc3Q8VGVzdE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXIqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwotICAgIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIq
IGxpc3RlbmVyID0gdG9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKGV4ZWMtPmFyZ3VtZW50KDApKTsK
KyAgICBSZWZQdHI8TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4gbGlzdGVuZXIgPSBNZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyOjpjcmVhdGUoZXhlYy0+YXJndW1lbnQoMCkpOwogICAgIGlmIChleGVjLT5o
YWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhU
ZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9WOC9WOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcAppbmRleCAxZjc4ZjM5Li5m
MWM0ZTJiIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRl
c3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9WOC9WOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcApAQCAtMjIsMTMgKzIy
LDEzIEBACiAjaW5jbHVkZSAiVjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oIgogCiAjaW5j
bHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIk1lZGlhUXVlcnlMaXN0TGlzdGVuZXIu
aCIKICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiVjhCaW5k
aW5nLmgiCiAjaW5jbHVkZSAiVjhCaW5kaW5nTWFjcm9zLmgiCiAjaW5jbHVkZSAiVjhCaW5kaW5n
U3RhdGUuaCIKICNpbmNsdWRlICJWOERPTVdyYXBwZXIuaCIKICNpbmNsdWRlICJWOElzb2xhdGVk
Q29udGV4dC5oIgotI2luY2x1ZGUgIlY4TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oIgogI2luY2x1
ZGUgIlY4UHJveHkuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDMsMjggKzQzLDI1IEBA
IHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbWV0aG9kQ2FsbGJhY2soY29uc3Qgdjg6OkFy
Z3VtZW50cyYgYXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0TWVkaWFRdWVyeUxpc3RM
aXN0ZW5lci5tZXRob2QiKTsKICAgICBUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciogaW1wID0g
VjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0g
ICAgRVhDRVBUSU9OX0JMT0NLKE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqLCBsaXN0ZW5lciwgVjhN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjpIYXNJbnN0YW5jZShhcmdzWzBdKSA/IFY4TWVkaWFRdWVy
eUxpc3RMaXN0ZW5lcjo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChhcmdz
WzBdKSkgOiAwKTsKKyAgICBFWENFUFRJT05fQkxPQ0soUmVmUHRyPE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXI+LCBsaXN0ZW5lciwgTWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6Y3JlYXRlKGFyZ3NbMF0p
KTsKICAgICBpbXAtPm1ldGhvZChsaXN0ZW5lcik7CiAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6
OlZhbHVlPigpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5l
ckludGVybmFsCiAKK3N0YXRpYyBjb25zdCBCYXRjaGVkQ2FsbGJhY2sgVGVzdE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXJDYWxsYmFja3NbXSA9IHsKKyAgICB7Im1ldGhvZCIsIFRlc3RNZWRpYVF1ZXJ5
TGlzdExpc3RlbmVySW50ZXJuYWw6Om1ldGhvZENhbGxiYWNrfSwKK307CiBzdGF0aWMgdjg6OlBl
cnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IENvbmZpZ3VyZVY4VGVzdE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXJUZW1wbGF0ZSh2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4g
ZGVzYykKIHsKICAgICB2ODo6TG9jYWw8djg6OlNpZ25hdHVyZT4gZGVmYXVsdFNpZ25hdHVyZSA9
IGNvbmZpZ3VyZVRlbXBsYXRlKGRlc2MsICJUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciIsIHY4
OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPigpLCBWOFRlc3RNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyOjppbnRlcm5hbEZpZWxkQ291bnQsCiAgICAgICAgIDAsIDAsCi0gICAgICAgIDAs
IDApOworICAgICAgICBUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNhbGxiYWNrcywgc2l6ZW9m
KFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ2FsbGJhY2tzKSAvIHNpemVvZigqVGVzdE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXJDYWxsYmFja3MpKTsKICAgICB2ODo6TG9jYWw8djg6Ok9iamVjdFRl
bXBsYXRlPiBpbnN0YW5jZSA9IGRlc2MtPkluc3RhbmNlVGVtcGxhdGUoKTsKICAgICB2ODo6TG9j
YWw8djg6Ok9iamVjdFRlbXBsYXRlPiBwcm90byA9IGRlc2MtPlByb3RvdHlwZVRlbXBsYXRlKCk7
CiAgICAgCiAKLSAgICAvLyBDdXN0b20gU2lnbmF0dXJlICdtZXRob2QnCi0gICAgY29uc3QgaW50
IG1ldGhvZEFyZ2MgPSAxOwotICAgIHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IG1l
dGhvZEFyZ3ZbbWV0aG9kQXJnY10gPSB7IFY4TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6R2V0UmF3
VGVtcGxhdGUoKSB9OwotICAgIHY4OjpIYW5kbGU8djg6OlNpZ25hdHVyZT4gbWV0aG9kU2lnbmF0
dXJlID0gdjg6OlNpZ25hdHVyZTo6TmV3KGRlc2MsIG1ldGhvZEFyZ2MsIG1ldGhvZEFyZ3YpOwot
ICAgIHByb3RvLT5TZXQodjg6OlN0cmluZzo6TmV3KCJtZXRob2QiKSwgdjg6OkZ1bmN0aW9uVGVt
cGxhdGU6Ok5ldyhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckludGVybmFsOjptZXRob2RDYWxs
YmFjaywgdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCksIG1ldGhvZFNpZ25hdHVyZSkpOwotCiAgICAg
Ly8gQ3VzdG9tIHRvU3RyaW5nIHRlbXBsYXRlCiAgICAgZGVzYy0+U2V0KGdldFRvU3RyaW5nTmFt
ZSgpLCBnZXRUb1N0cmluZ1RlbXBsYXRlKCkpOwogICAgIHJldHVybiBkZXNjOwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRWYWx1ZS5oIGIvV2ViQ29yZS9iaW5kaW5ncy92
OC9TY3JpcHRWYWx1ZS5oCmluZGV4IDE3NDNkYTAuLmQ0MTI5MDEgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvYmluZGluZ3MvdjgvU2NyaXB0VmFsdWUuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Nj
cmlwdFZhbHVlLmgKQEAgLTEwMCw2ICsxMDAsMTEgQEAgcHVibGljOgogICAgICAgICByZXR1cm4g
bV92YWx1ZSA9PSB2YWx1ZS5tX3ZhbHVlOwogICAgIH0KIAorICAgIGJvb2wgaXNGdW5jdGlvbigp
IGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV92YWx1ZS0+SXNGdW5jdGlvbigpOworICAg
IH0KKwogICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBTY3JpcHRWYWx1ZSB2YWx1ZSkgY29uc3QK
ICAgICB7CiAgICAgICAgIHJldHVybiAhb3BlcmF0b3I9PSh2YWx1ZSk7CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdC5jcHAgYi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlz
dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmU1NWE5NgotLS0gL2Rl
di9udWxsCisrKyBiL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0LmNwcApAQCAtMCwwICsxLDEw
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3Ig
aXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiTWVkaWFRdWVyeUxpc3QuaCIKKworI2luY2x1ZGUgIk1lZGlhTGlzdC5oIgorI2luY2x1ZGUg
Ik1lZGlhUXVlcnlFdmFsdWF0b3IuaCIKKyNpbmNsdWRlICJNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
LmgiCisjaW5jbHVkZSAiTWVkaWFRdWVyeU1hdGNoZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0PiBNZWRpYVF1ZXJ5TGlzdDo6Y3JlYXRlKFBh
c3NSZWZQdHI8TWVkaWFRdWVyeU1hdGNoZXI+IHZlY3RvciwgUGFzc1JlZlB0cjxNZWRpYUxpc3Q+
IG1lZGlhLCBib29sIG1hdGNoZXMpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZWRpYVF1
ZXJ5TGlzdCh2ZWN0b3IsIG1lZGlhLCBtYXRjaGVzKSk7Cit9CisKK01lZGlhUXVlcnlMaXN0OjpN
ZWRpYVF1ZXJ5TGlzdChQYXNzUmVmUHRyPE1lZGlhUXVlcnlNYXRjaGVyPiB2ZWN0b3IsIFBhc3NS
ZWZQdHI8TWVkaWFMaXN0PiBtZWRpYSwgYm9vbCBtYXRjaGVzKQorICAgIDogbV9tYXRjaGVyKHZl
Y3RvcikKKyAgICAsIG1fbWVkaWEobWVkaWEpCisgICAgLCBtX2V2YWx1YXRpb25Sb3VuZChtX21h
dGNoZXItPmV2YWx1YXRpb25Sb3VuZCgpKQorICAgICwgbV9jaGFuZ2VSb3VuZChtX2V2YWx1YXRp
b25Sb3VuZCAtIDEpIC8vIG1fZXZhbHVhdGlvblJvdW5kIGFuZCBtX2NoYW5nZVJvdW5kIGluaXRp
YWwgdmFsdWVzIG11c3QgYmUgZGlmZmVyZW50LgorICAgICwgbV9tYXRjaGVzKG1hdGNoZXMpCit7
Cit9CisKK01lZGlhUXVlcnlMaXN0Ojp+TWVkaWFRdWVyeUxpc3QoKQoreworfQorCitTdHJpbmcg
TWVkaWFRdWVyeUxpc3Q6Om1lZGlhKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9tZWRpYS0+bWVk
aWFUZXh0KCk7Cit9CisKK3ZvaWQgTWVkaWFRdWVyeUxpc3Q6OmFkZExpc3RlbmVyKFBhc3NSZWZQ
dHI8TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4gbGlzdGVuZXIpCit7CisgICAgaWYgKCFsaXN0ZW5l
cikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9tYXRjaGVyLT5hZGRMaXN0ZW5lcihsaXN0ZW5l
ciwgdGhpcyk7Cit9CisKK3ZvaWQgTWVkaWFRdWVyeUxpc3Q6OnJlbW92ZUxpc3RlbmVyKFBhc3NS
ZWZQdHI8TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4gbGlzdGVuZXIpCit7CisgICAgaWYgKCFsaXN0
ZW5lcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9tYXRjaGVyLT5yZW1vdmVMaXN0ZW5lcihs
aXN0ZW5lciwgdGhpcyk7Cit9CisKK3ZvaWQgTWVkaWFRdWVyeUxpc3Q6OmV2YWx1YXRlKE1lZGlh
UXVlcnlFdmFsdWF0b3IqIGV2YWx1YXRvciwgYm9vbCYgbm90aWZpY2F0aW9uTmVlZGVkKQorewor
ICAgIGlmIChtX2V2YWx1YXRpb25Sb3VuZCAhPSBtX21hdGNoZXItPmV2YWx1YXRpb25Sb3VuZCgp
ICYmIGV2YWx1YXRvcikKKyAgICAgICAgc2V0TWF0Y2hlcyhldmFsdWF0b3ItPmV2YWwobV9tZWRp
YS5nZXQoKSkpOworICAgIG5vdGlmaWNhdGlvbk5lZWRlZCA9IG1fY2hhbmdlUm91bmQgPT0gbV9t
YXRjaGVyLT5ldmFsdWF0aW9uUm91bmQoKTsKK30KKwordm9pZCBNZWRpYVF1ZXJ5TGlzdDo6c2V0
TWF0Y2hlcyhib29sIG5ld1ZhbHVlKQoreworICAgIG1fZXZhbHVhdGlvblJvdW5kID0gbV9tYXRj
aGVyLT5ldmFsdWF0aW9uUm91bmQoKTsKKworICAgIGlmIChuZXdWYWx1ZSA9PSBtX21hdGNoZXMp
CisgICAgICAgIHJldHVybjsKKworICAgIG1fbWF0Y2hlcyA9IG5ld1ZhbHVlOworICAgIG1fY2hh
bmdlUm91bmQgPSBtX2V2YWx1YXRpb25Sb3VuZDsKK30KKworYm9vbCBNZWRpYVF1ZXJ5TGlzdDo6
bWF0Y2hlcygpCit7CisgICAgaWYgKG1fZXZhbHVhdGlvblJvdW5kICE9IG1fbWF0Y2hlci0+ZXZh
bHVhdGlvblJvdW5kKCkpCisgICAgICAgIHNldE1hdGNoZXMobV9tYXRjaGVyLT5ldmFsdWF0ZSht
X21lZGlhLmdldCgpKSk7CisgICAgcmV0dXJuIG1fbWF0Y2hlczsKK30KKworfQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3QuaCBiL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlM
aXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzhiMzYyMAotLS0gL2Rl
di9udWxsCisrKyBiL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0LmgKQEAgLTAsMCArMSw3MiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRz
IHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE1lZGlhUXVlcnlMaXN0X2gKKyNkZWZp
bmUgTWVkaWFRdWVyeUxpc3RfaAorCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBN
ZWRpYUxpc3Q7CitjbGFzcyBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOworY2xhc3MgTWVkaWFRdWVy
eUV2YWx1YXRvcjsKK2NsYXNzIE1lZGlhUXVlcnlNYXRjaGVyOworCisvLyAgTWVkaWFRdWVyeUxp
c3QgaW50ZXJmYWNlIGlzIHNwZWNpZmllZCBhdCBodHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9jc3Nv
bS12aWV3LyN0aGUtbWVkaWFxdWVyeWxpc3QtaW50ZXJmYWNlCisvLyAgVGhlIG9iamVjdHMgb2Yg
dGhpcyBjbGFzcyBhcmUgcmV0dXJuZWQgYnkgd2luZG93Lm1hdGNoTWVkaWEuIFRoZXkgbWF5IGJl
IHVzZWQgdG8KKy8vICByZXRyaWV2ZSB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgZ2l2ZW4gbWVk
aWEgcXVlcnkgYW5kIHRvIGFkZC9yZW1vdmUgbGlzdGVuZXJzIHRoYXQKKy8vICB3aWxsIGJlIGNh
bGxlZCB3aGVuZXZlciB0aGUgdmFsdWUgb2YgdGhlIHF1ZXJ5IGNoYW5nZXMuCisKK2NsYXNzIE1l
ZGlhUXVlcnlMaXN0IDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFRdWVyeUxpc3Q+IHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdD4gY3JlYXRlKFBhc3NSZWZQ
dHI8TWVkaWFRdWVyeU1hdGNoZXI+LCBQYXNzUmVmUHRyPE1lZGlhTGlzdD4sIGJvb2wpOworICAg
IH5NZWRpYVF1ZXJ5TGlzdCgpOworCisgICAgU3RyaW5nIG1lZGlhKCkgY29uc3Q7CisgICAgYm9v
bCBtYXRjaGVzKCk7CisKKyAgICB2b2lkIGFkZExpc3RlbmVyKFBhc3NSZWZQdHI8TWVkaWFRdWVy
eUxpc3RMaXN0ZW5lcj4pOworICAgIHZvaWQgcmVtb3ZlTGlzdGVuZXIoUGFzc1JlZlB0cjxNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyPik7CisKKyAgICB2b2lkIGV2YWx1YXRlKE1lZGlhUXVlcnlFdmFs
dWF0b3IqLCBib29sJiBub3RpZmljYXRpb25OZWVkZWQpOworCitwcml2YXRlOgorICAgIE1lZGlh
UXVlcnlMaXN0KFBhc3NSZWZQdHI8TWVkaWFRdWVyeU1hdGNoZXI+LCBQYXNzUmVmUHRyPE1lZGlh
TGlzdD4sIGJvb2wgbWF0Y2hlcyk7CisgICAgdm9pZCBzZXRNYXRjaGVzKGJvb2wpOworCisgICAg
UmVmUHRyPE1lZGlhUXVlcnlNYXRjaGVyPiBtX21hdGNoZXI7CisgICAgUmVmUHRyPE1lZGlhTGlz
dD4gbV9tZWRpYTsKKyAgICBpbnQgbV9ldmFsdWF0aW9uUm91bmQ7IC8vIEluZGljYXRlcyBpZiB0
aGUgcXVlcnkgaGFzIGJlZW4gZXZhbHVhdGVkIGFmdGVyIHRoZSBsYXN0IHN0eWxlIHNlbGVjdG9y
IGNoYW5nZS4KKyAgICBpbnQgbV9jaGFuZ2VSb3VuZDsgLy8gVXNlZCB0byBrbm93IGlmIHRoZSBx
dWVyeSBoYXMgY2hhbmdlZCBpbiB0aGUgbGFzdCBzdHlsZSBzZWxlY3RvciBjaGFuZ2UuCisgICAg
Ym9vbCBtX21hdGNoZXM7Cit9OworCit9CisKKyNlbmRpZiAvLyBNZWRpYVF1ZXJ5TGlzdF9oCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdC5pZGwgYi9XZWJDb3JlL2Nzcy9N
ZWRpYVF1ZXJ5TGlzdC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTQy
NGE3OQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0LmlkbApA
QCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0
aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSB2aWV3IHsKKyAg
ICBpbnRlcmZhY2UgTWVkaWFRdWVyeUxpc3QgeworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
RE9NU3RyaW5nIG1lZGlhOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBtYXRj
aGVzOworICAgICAgICB2b2lkIGFkZExpc3RlbmVyKGluIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIg
bGlzdGVuZXIpOworICAgICAgICB2b2lkIHJlbW92ZUxpc3RlbmVyKGluIE1lZGlhUXVlcnlMaXN0
TGlzdGVuZXIgbGlzdGVuZXIpOworICAgIH07Cit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9N
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcCBiL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0TGlz
dGVuZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdjZDI4NjMKLS0t
IC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcApA
QCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0
aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgiCisKKyNpbmNsdWRlICJNZWRp
YVF1ZXJ5TGlzdC5oIgorI2luY2x1ZGUgIlNjcmlwdEZ1bmN0aW9uQ2FsbC5oIgorCisjaWYgVVNF
KEpTQykKKyNpbmNsdWRlICJKU01lZGlhUXVlcnlMaXN0LmgiCisjZWxzZQorI2luY2x1ZGUgIlY4
TWVkaWFRdWVyeUxpc3QuaCIKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQg
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6cXVlcnlDaGFuZ2VkKFNjcmlwdFN0YXRlKiBzdGF0ZSwg
TWVkaWFRdWVyeUxpc3QqIHF1ZXJ5KQoreworICAgIFNjcmlwdENhbGxiYWNrIGNhbGxiYWNrKHN0
YXRlLCBtX3ZhbHVlKTsKKyNpZiBVU0UoSlNDKQorICAgIGNhbGxiYWNrLmFwcGVuZEFyZ3VtZW50
KHRvSlMoc3RhdGUsIHF1ZXJ5KSk7CisjZWxzZQorICAgIGNhbGxiYWNrLmFwcGVuZEFyZ3VtZW50
KHRvVjgocXVlcnkpKTsKKyNlbmRpZgorICAgIGNhbGxiYWNrLmNhbGwoKTsKK30KKworYm9vbCBN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjppc0VxdWFsVG8oY29uc3QgTWVkaWFRdWVyeUxpc3RMaXN0
ZW5lciogb3RoZXIpCit7CisgICAgcmV0dXJuIG90aGVyICYmIG90aGVyLT5tX3ZhbHVlID09IG1f
dmFsdWU7Cit9CisKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0TGlz
dGVuZXIuaCBiL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZWI0ZWI4Ci0tLSAvZGV2L251bGwKKysrIGIvV2Vi
Q29yZS9jc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRp
YXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyX2gKKyNkZWZp
bmUgTWVkaWFRdWVyeUxpc3RMaXN0ZW5lcl9oCisKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5o
IgorI2luY2x1ZGUgIlNjcmlwdFN0YXRlLmgiCisjaW5jbHVkZSAiU2NyaXB0VmFsdWUuaCIKKwor
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgTWVkaWFRdWVyeUxpc3Q7CisKKy8vICBTZWUgaHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3Nz
b20tdmlldy8jdGhlLW1lZGlhcXVlcnlsaXN0LWludGVyZmFjZQorCitjbGFzcyBNZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyIDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4g
eworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+
IGNyZWF0ZShTY3JpcHRWYWx1ZSB2YWx1ZSkKKyAgICB7CisgICAgICAgIGlmICghdmFsdWUuaXNG
dW5jdGlvbigpKQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgTWVkaWFRdWVyeUxpc3RMaXN0ZW5lcih2YWx1ZSkpOworICAgIH0KKyAgICB2b2lkIHF1
ZXJ5Q2hhbmdlZChTY3JpcHRTdGF0ZSosIE1lZGlhUXVlcnlMaXN0Kik7CisgICAgYm9vbCBpc0Vx
dWFsVG8oY29uc3QgTWVkaWFRdWVyeUxpc3RMaXN0ZW5lciopOworCitwcml2YXRlOgorICAgIE1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXIoU2NyaXB0VmFsdWUgdmFsdWUpIDogbV92YWx1ZSh2YWx1ZSkg
eyB9CisKKyAgICBTY3JpcHRWYWx1ZSBtX3ZhbHVlOworfTsKKworfQorCisjZW5kaWYgLy8gTWVk
aWFRdWVyeUxpc3RMaXN0ZW5lcl9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyLmlkbCBiL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaWRs
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZjZThhZWMKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmlkbApAQCAtMCwwICsx
LDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSB2aWV3IHsKKyAgICBpbnRlcmZh
Y2UgWworICAgICAgICBOb1N0YXRpY1RhYmxlcywKKyAgICAgICAgT2JqQ1Byb3RvY29sLAorICAg
ICAgICBQdXJlSW50ZXJmYWNlLAorICAgICAgICBPbWl0Q29uc3RydWN0b3IKKyAgICBdIE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXIgeworICAgICAgICB2b2lkIHF1ZXJ5Q2hhbmdlZChpbiBNZWRpYVF1
ZXJ5TGlzdCBsaXN0KTsKKyAgICB9OworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvTWVkaWFR
dWVyeU1hdGNoZXIuY3BwIGIvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeU1hdGNoZXIuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQzM2MwYmYKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TWF0Y2hlci5jcHAKQEAgLTAsMCArMSwxNjYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlh
UXVlcnlNYXRjaGVyLmgiCisKKyNpbmNsdWRlICJDU1NTdHlsZVNlbGVjdG9yLmgiCisjaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiRnJhbWVWaWV3
LmgiCisjaW5jbHVkZSAiTWVkaWFMaXN0LmgiCisjaW5jbHVkZSAiTWVkaWFRdWVyeUV2YWx1YXRv
ci5oIgorI2luY2x1ZGUgIk1lZGlhUXVlcnlMaXN0LmgiCisjaW5jbHVkZSAiTWVkaWFRdWVyeUxp
c3RMaXN0ZW5lci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK01lZGlhUXVlcnlNYXRjaGVy
OjpMaXN0ZW5lcjo6TGlzdGVuZXIoUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyPiBs
aXN0ZW5lciwgUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdD4gcXVlcnkpCisgICAgOiBtX2xpc3Rl
bmVyKGxpc3RlbmVyKQorICAgICwgbV9xdWVyeShxdWVyeSkKK3sKK30KKworTWVkaWFRdWVyeU1h
dGNoZXI6Okxpc3RlbmVyOjp+TGlzdGVuZXIoKQoreworfQorCit2b2lkIE1lZGlhUXVlcnlNYXRj
aGVyOjpMaXN0ZW5lcjo6ZXZhbHVhdGUoU2NyaXB0U3RhdGUqIHN0YXRlLCBNZWRpYVF1ZXJ5RXZh
bHVhdG9yKiBldmFsdWF0b3IpCit7CisgICAgYm9vbCBub3RpZnk7CisgICAgbV9xdWVyeS0+ZXZh
bHVhdGUoZXZhbHVhdG9yLCBub3RpZnkpOworICAgIGlmIChub3RpZnkpCisgICAgICAgIG1fbGlz
dGVuZXItPnF1ZXJ5Q2hhbmdlZChzdGF0ZSwgbV9xdWVyeS5nZXQoKSk7Cit9CisKK01lZGlhUXVl
cnlNYXRjaGVyOjpNZWRpYVF1ZXJ5TWF0Y2hlcihEb2N1bWVudCogZG9jdW1lbnQpCisgICAgOiBt
X2RvY3VtZW50KGRvY3VtZW50KQorICAgICwgbV9ldmFsdWF0aW9uUm91bmQoMCkKK3sKKyAgICBB
U1NFUlQobV9kb2N1bWVudCk7Cit9CisKK01lZGlhUXVlcnlNYXRjaGVyOjp+TWVkaWFRdWVyeU1h
dGNoZXIoKQoreworfQorCit2b2lkIE1lZGlhUXVlcnlNYXRjaGVyOjpkb2N1bWVudERlc3Ryb3ll
ZCgpCit7CisgICAgbV9saXN0ZW5lcnMuY2xlYXIoKTsKKyAgICBtX2RvY3VtZW50ID0gMDsKK30K
KworU3RyaW5nIE1lZGlhUXVlcnlNYXRjaGVyOjptZWRpYVR5cGUoKSBjb25zdAoreworICAgIGlm
ICghbV9kb2N1bWVudCB8fCAhbV9kb2N1bWVudC0+ZnJhbWUoKSB8fCAhbV9kb2N1bWVudC0+ZnJh
bWUoKS0+dmlldygpKQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisKKyAgICByZXR1cm4gbV9k
b2N1bWVudC0+ZnJhbWUoKS0+dmlldygpLT5tZWRpYVR5cGUoKTsKK30KKworUGFzc093blB0cjxN
ZWRpYVF1ZXJ5RXZhbHVhdG9yPiBNZWRpYVF1ZXJ5TWF0Y2hlcjo6cHJlcGFyZUV2YWx1YXRvcigp
IGNvbnN0Cit7CisgICAgaWYgKCFtX2RvY3VtZW50IHx8ICFtX2RvY3VtZW50LT5mcmFtZSgpKQor
ICAgICAgICByZXR1cm4gMDsKKworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IG1fZG9jdW1lbnQt
PmZyYW1lKCktPmRvY3VtZW50KCk7CisgICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJu
IDA7CisKKyAgICBFbGVtZW50KiBkb2N1bWVudEVsZW1lbnQgPSBkb2N1bWVudC0+ZG9jdW1lbnRF
bGVtZW50KCk7CisgICAgaWYgKCFkb2N1bWVudEVsZW1lbnQpCisgICAgICAgIHJldHVybiAwOwor
CisgICAgQ1NTU3R5bGVTZWxlY3Rvciogc3R5bGVTZWxlY3RvciA9IGRvY3VtZW50LT5zdHlsZVNl
bGVjdG9yKCk7CisgICAgaWYgKCFzdHlsZVNlbGVjdG9yKQorICAgICAgICByZXR1cm4gMDsKKwor
ICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gcm9vdFN0eWxlID0gc3R5bGVTZWxlY3Rvci0+c3R5bGVG
b3JFbGVtZW50KGRvY3VtZW50RWxlbWVudCwgMCAvKmRlZmF1bHRQYXJlbnQqLywgZmFsc2UgLyph
bGxvd1NoYXJpbmcqLywgdHJ1ZSAvKnJlc29sdmVGb3JSb290RGVmYXVsdCovKTsKKworICAgIHJl
dHVybiBhZG9wdFB0cihuZXcgTWVkaWFRdWVyeUV2YWx1YXRvcihtZWRpYVR5cGUoKSwgbV9kb2N1
bWVudC0+ZnJhbWUoKSwgcm9vdFN0eWxlLmdldCgpKSk7Cit9CisKK2Jvb2wgTWVkaWFRdWVyeU1h
dGNoZXI6OmV2YWx1YXRlKE1lZGlhTGlzdCogbWVkaWEpCit7CisgICAgaWYgKCFtZWRpYSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgT3duUHRyPE1lZGlhUXVlcnlFdmFsdWF0b3I+IGV2
YWx1YXRvcihwcmVwYXJlRXZhbHVhdG9yKCkpOworICAgIHJldHVybiBldmFsdWF0b3IgJiYgZXZh
bHVhdG9yLT5ldmFsKG1lZGlhKTsKK30KKworUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdD4gTWVk
aWFRdWVyeU1hdGNoZXI6Om1hdGNoTWVkaWEoY29uc3QgU3RyaW5nJiBxdWVyeSkKK3sKKyAgICBp
ZiAoIW1fZG9jdW1lbnQpCisgICAgICAgIHJldHVybiAwOworCisgICAgUmVmUHRyPE1lZGlhTGlz
dD4gbWVkaWEgPSBNZWRpYUxpc3Q6OmNyZWF0ZShxdWVyeSwgZmFsc2UpOworICAgIHJldHVybiBN
ZWRpYVF1ZXJ5TGlzdDo6Y3JlYXRlKHRoaXMsIG1lZGlhLCBldmFsdWF0ZShtZWRpYS5nZXQoKSkp
OworfQorCit2b2lkIE1lZGlhUXVlcnlNYXRjaGVyOjphZGRMaXN0ZW5lcihQYXNzUmVmUHRyPE1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXI+IGxpc3RlbmVyLCBQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0
PiBxdWVyeSkKK3sKKyAgICBpZiAoIW1fZG9jdW1lbnQgfHwgIW1fZG9jdW1lbnQtPmZyYW1lKCkp
CisgICAgICAgIHJldHVybjsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9saXN0ZW5l
cnMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgaWYgKG1fbGlzdGVuZXJzW2ldLT5saXN0ZW5lcigp
LT5pc0VxdWFsVG8obGlzdGVuZXIuZ2V0KCkpICYmIG1fbGlzdGVuZXJzW2ldLT5xdWVyeSgpID09
IHF1ZXJ5LmdldCgpKQorICAgICAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fbGlzdGVu
ZXJzLmFwcGVuZChuZXcgTGlzdGVuZXIobGlzdGVuZXIsIHF1ZXJ5KSk7Cit9CisKK3ZvaWQgTWVk
aWFRdWVyeU1hdGNoZXI6OnJlbW92ZUxpc3RlbmVyKFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3RM
aXN0ZW5lcj4gbGlzdGVuZXIsIFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3Q+IHF1ZXJ5KQorewor
ICAgIGlmICghbV9kb2N1bWVudCB8fCAhbV9kb2N1bWVudC0+ZnJhbWUoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgZm9yIChpbnQgaSA9IG1fbGlzdGVuZXJzLnNpemUoKSAtIDE7IGkgPj0gMDsg
LS1pKSB7CisgICAgICAgIGlmIChtX2xpc3RlbmVyc1tpXS0+bGlzdGVuZXIoKS0+aXNFcXVhbFRv
KGxpc3RlbmVyLmdldCgpKSAmJiBtX2xpc3RlbmVyc1tpXS0+cXVlcnkoKSA9PSBxdWVyeS5nZXQo
KSkgeworICAgICAgICAgICAgbV9saXN0ZW5lcnMucmVtb3ZlKGkpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisgICAgfQorfQorCit2b2lkIE1lZGlhUXVlcnlNYXRjaGVyOjpzdHls
ZVNlbGVjdG9yQ2hhbmdlZCgpCit7CisgICAgQVNTRVJUKG1fZG9jdW1lbnQpOworCisgICAgU2Ny
aXB0U3RhdGUqIGV4ZWMgPSBtYWluV29ybGRTY3JpcHRTdGF0ZShtX2RvY3VtZW50LT5mcmFtZSgp
KTsKKyAgICBpZiAoIWV4ZWMpCisgICAgICAgIHJldHVybjsKKworICAgICsrbV9ldmFsdWF0aW9u
Um91bmQ7CisgICAgT3duUHRyPE1lZGlhUXVlcnlFdmFsdWF0b3I+IGV2YWx1YXRvciA9IHByZXBh
cmVFdmFsdWF0b3IoKTsKKyAgICBpZiAoIWV2YWx1YXRvcikKKyAgICAgICAgcmV0dXJuOworCisg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2xpc3RlbmVycy5zaXplKCk7ICsraSkKKyAgICAg
ICAgbV9saXN0ZW5lcnNbaV0tPmV2YWx1YXRlKGV4ZWMsIGV2YWx1YXRvci5nZXQoKSk7Cit9CisK
K30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlNYXRjaGVyLmggYi9XZWJDb3Jl
L2Nzcy9NZWRpYVF1ZXJ5TWF0Y2hlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmJkMzQ5YmMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TWF0
Y2hlci5oCkBAIC0wLDAgKzEsOTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEg
Q29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBN
ZWRpYVF1ZXJ5TWF0Y2hlcl9oCisjZGVmaW5lIE1lZGlhUXVlcnlNYXRjaGVyX2gKKworI2luY2x1
ZGUgIlNjcmlwdFN0YXRlLmgiCisKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERv
Y3VtZW50OworY2xhc3MgTWVkaWFMaXN0OworY2xhc3MgTWVkaWFRdWVyeUxpc3Q7CitjbGFzcyBN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOworY2xhc3MgTWVkaWFRdWVyeUV2YWx1YXRvcjsKKworLy8g
IE1lZGlhUXVlcnlNYXRjaGVyIGNsYXNzIGlzIHJlc3BvbnNpYmxlIGZvciBrZWVwaW5nIGEgdmVj
dG9yIG9mIHBhaXJzCisvLyAgTWVkaWFRdWVyeUxpc3QgeCBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
LiBJdCBpcyByZXNwb25zaWJsZSBmb3IgZXZhbHVhdGluZyB0aGUgcXVlcmllcworLy8gIHdoZW5l
dmVyIGl0IGlzIG5lZWRlZCBhbmQgdG8gY2FsbCB0aGUgbGlzdGVuZXJzIGlmIHRoZSBjb3JyZXNw
b25kaW5nIHF1ZXJ5IGhhcyBjaGFuZ2VkLgorLy8gVGhlIGxpc3RlbmVycyBtdXN0IGJlIGNhbGxl
ZCBpbiB0aGUgdmVyeSBzYW1lIG9yZGVyIGluIHdoaWNoIHRoZXkgaGF2ZSBiZWVuIGFkZGVkLgor
CitjbGFzcyBNZWRpYVF1ZXJ5TWF0Y2hlciA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhUXVlcnlN
YXRjaGVyPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFRdWVyeU1hdGNo
ZXI+IGNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZWRp
YVF1ZXJ5TWF0Y2hlcihkb2N1bWVudCkpOyB9CisgICAgfk1lZGlhUXVlcnlNYXRjaGVyKCk7Cisg
ICAgdm9pZCBkb2N1bWVudERlc3Ryb3llZCgpOworCisgICAgdm9pZCBhZGRMaXN0ZW5lcihQYXNz
UmVmUHRyPE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+LCBQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0
Pik7CisgICAgdm9pZCByZW1vdmVMaXN0ZW5lcihQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXI+LCBQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0Pik7CisKKyAgICBQYXNzUmVmUHRyPE1l
ZGlhUXVlcnlMaXN0PiBtYXRjaE1lZGlhKGNvbnN0IFN0cmluZyYpOworCisgICAgaW50IGV2YWx1
YXRpb25Sb3VuZCgpIGNvbnN0IHsgcmV0dXJuIG1fZXZhbHVhdGlvblJvdW5kOyB9CisgICAgdm9p
ZCBzdHlsZVNlbGVjdG9yQ2hhbmdlZCgpOworICAgIGJvb2wgZXZhbHVhdGUoTWVkaWFMaXN0Kik7
CisKK3ByaXZhdGU6CisgICAgY2xhc3MgTGlzdGVuZXIgeworICAgIHB1YmxpYzoKKyAgICAgICAg
TGlzdGVuZXIoUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyPiwgUGFzc1JlZlB0cjxN
ZWRpYVF1ZXJ5TGlzdD4pOworICAgICAgICB+TGlzdGVuZXIoKTsKKworICAgICAgICB2b2lkIGV2
YWx1YXRlKFNjcmlwdFN0YXRlKiwgTWVkaWFRdWVyeUV2YWx1YXRvciopOworCisgICAgICAgIE1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXIqIGxpc3RlbmVyKCkgeyByZXR1cm4gbV9saXN0ZW5lci5nZXQo
KTsgfQorICAgICAgICBNZWRpYVF1ZXJ5TGlzdCogcXVlcnkoKSB7IHJldHVybiBtX3F1ZXJ5Lmdl
dCgpOyB9CisKKyAgICBwcml2YXRlOgorICAgICAgICBSZWZQdHI8TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lcj4gbV9saXN0ZW5lcjsKKyAgICAgICAgUmVmUHRyPE1lZGlhUXVlcnlMaXN0PiBtX3F1ZXJ5
OworICAgIH07CisKKyAgICBNZWRpYVF1ZXJ5TWF0Y2hlcihEb2N1bWVudCopOworICAgIFBhc3NP
d25QdHI8TWVkaWFRdWVyeUV2YWx1YXRvcj4gcHJlcGFyZUV2YWx1YXRvcigpIGNvbnN0OworICAg
IFN0cmluZyBtZWRpYVR5cGUoKSBjb25zdDsKKworICAgIERvY3VtZW50KiBtX2RvY3VtZW50Owor
ICAgIFZlY3RvcjxPd25QdHI8TGlzdGVuZXI+ID4gbV9saXN0ZW5lcnM7CisKKyAgICAvLyBUaGlz
IHZhbHVlIGlzIGluY3JlbWVudGVkIGF0IHN0eWxlIHNlbGVjdG9yIGNoYW5nZXMuCisgICAgLy8g
SXQgaXMgdXNlZCB0byBhdm9pZCBldmFsdWF0aW5nIHF1ZXJpZXMgbW9yZSB0aGVuIG9uY2UgYW5k
IHRvIG1ha2Ugc3VyZQorICAgIC8vIHRoYXQgYSBtZWRpYSBxdWVyeSByZXN1bHQgY2hhbmdlIGlz
IG5vdGlmaWVkIGV4YWN0bHkgb25jZS4KKyAgICBpbnQgbV9ldmFsdWF0aW9uUm91bmQ7Cit9Owor
Cit9CisKKyNlbmRpZiAvLyBNZWRpYVF1ZXJ5TWF0Y2hlcl9oCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggN2Y3N2Iz
ZS4uZTIzYmUzOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNiw2ICs2LDcgQEAKICAqIENvcHlyaWdodCAoQykg
MjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDkgVG9yY2ggTW9iaWxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLykKICAqIENv
cHlyaWdodCAoQykgMjAwOCwgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lk
aWFyeSgtaWVzKQogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC05Miw2ICs5Myw4IEBACiAjaW5jbHVk
ZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5o
IgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJNZWRpYVF1ZXJ5TGlzdC5oIgorI2lu
Y2x1ZGUgIk1lZGlhUXVlcnlNYXRjaGVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZUV2ZW50LmgiCiAj
aW5jbHVkZSAiTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIk1vdXNlRXZlbnRXaXRoSGl0VGVzdFJl
c3VsdHMuaCIKQEAgLTU4Nyw2ICs1OTAsMTYgQEAgRG9jdW1lbnQ6On5Eb2N1bWVudCgpCiAgICAg
fQogCiAgICAgbV93ZWFrUmVmZXJlbmNlLT5jbGVhcigpOworCisgICAgaWYgKG1fbWVkaWFRdWVy
eU1hdGNoZXIpCisgICAgICAgIG1fbWVkaWFRdWVyeU1hdGNoZXItPmRvY3VtZW50RGVzdHJveWVk
KCk7Cit9CisKK01lZGlhUXVlcnlNYXRjaGVyKiBEb2N1bWVudDo6bWVkaWFRdWVyeU1hdGNoZXIo
KQoreworICAgIGlmICghbV9tZWRpYVF1ZXJ5TWF0Y2hlcikKKyAgICAgICAgbV9tZWRpYVF1ZXJ5
TWF0Y2hlciA9IE1lZGlhUXVlcnlNYXRjaGVyOjpjcmVhdGUodGhpcyk7CisgICAgcmV0dXJuIG1f
bWVkaWFRdWVyeU1hdGNoZXIuZ2V0KCk7CiB9CiAKICNpZiBVU0UoSlNDKQpAQCAtMjkwMSw2ICsy
OTE0LDkgQEAgdm9pZCBEb2N1bWVudDo6c3R5bGVTZWxlY3RvckNoYW5nZWQoU3R5bGVTZWxlY3Rv
clVwZGF0ZUZsYWcgdXBkYXRlRmxhZykKICAgICAgICAgaWYgKHZpZXcoKSkKICAgICAgICAgICAg
IHZpZXcoKS0+c2NoZWR1bGVSZWxheW91dCgpOwogICAgIH0KKworICAgIGlmIChtX21lZGlhUXVl
cnlNYXRjaGVyKQorICAgICAgICBtX21lZGlhUXVlcnlNYXRjaGVyLT5zdHlsZVNlbGVjdG9yQ2hh
bmdlZCgpOwogfQogCiB2b2lkIERvY3VtZW50OjphZGRTdHlsZVNoZWV0Q2FuZGlkYXRlTm9kZShO
b2RlKiBub2RlLCBib29sIGNyZWF0ZWRCeVBhcnNlcikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmggYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDhjYzYyNzIuLjVjNmRl
YTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvV2ViQ29yZS9kb20v
RG9jdW1lbnQuaApAQCAtNSw2ICs1LDcgQEAKICAqICAgICAgICAgICAoQykgMjAwNiBBbGV4ZXkg
UHJvc2t1cnlha292IChhcEB3ZWJraXQub3JnKQogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1
LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSBUb3JjaCBNb2JpbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQorICogQ29weXJp
Z2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVz
KQogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC05NCw2ICs5NSw4IEBAIGNsYXNzIEludFBvaW50Owog
Y2xhc3MgRE9NV3JhcHBlcldvcmxkOwogY2xhc3MgSlNOb2RlOwogY2xhc3MgTWVkaWFDYW5TdGFy
dExpc3RlbmVyOworY2xhc3MgTWVkaWFRdWVyeUxpc3Q7CitjbGFzcyBNZWRpYVF1ZXJ5TWF0Y2hl
cjsKIGNsYXNzIE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHM7CiBjbGFzcyBOb2RlRmlsdGVy
OwogY2xhc3MgTm9kZUl0ZXJhdG9yOwpAQCAtMjAzLDYgKzIwNiw4IEBAIHB1YmxpYzoKICAgICB9
CiAgICAgdmlydHVhbCB+RG9jdW1lbnQoKTsKIAorICAgIE1lZGlhUXVlcnlNYXRjaGVyKiBtZWRp
YVF1ZXJ5TWF0Y2hlcigpOworCiAgICAgdXNpbmcgQ29udGFpbmVyTm9kZTo6cmVmOwogICAgIHVz
aW5nIENvbnRhaW5lck5vZGU6OmRlcmVmOwogCkBAIC0xMzYzLDYgKzEzNjgsNyBAQCBwcml2YXRl
OgogICAgIGJvb2wgbV93cml0aW5nTW9kZVNldE9uRG9jdW1lbnRFbGVtZW50OwogCiAgICAgRG9j
dW1lbnRUaW1pbmcgbV9kb2N1bWVudFRpbWluZzsKKyAgICBSZWZQdHI8TWVkaWFRdWVyeU1hdGNo
ZXI+IG1fbWVkaWFRdWVyeU1hdGNoZXI7CiB9OwogCiBpbmxpbmUgYm9vbCBEb2N1bWVudDo6RG9j
dW1lbnRPcmRlcmVkTWFwOjpjb250YWlucyhBdG9taWNTdHJpbmdJbXBsKiBpZCkgY29uc3QKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5jcHAKaW5kZXggMWNmMmEzYS4uNjI2NzQ4YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTEsNSAr
MSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3Jh
dGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtNjcsNyArNjgsOCBAQAogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5oIgogI2luY2x1ZGUgIktVUkwuaCIKICNpbmNsdWRlICJMb2NhdGlvbi5oIgotI2luY2x1
ZGUgIlN0eWxlTWVkaWEuaCIKKyNpbmNsdWRlICJNZWRpYVF1ZXJ5TGlzdC5oIgorI2luY2x1ZGUg
Ik1lZGlhUXVlcnlNYXRjaGVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZUV2ZW50LmgiCiAjaW5jbHVk
ZSAiTmF2aWdhdG9yLmgiCiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uQ2VudGVyLmgiCkBAIC04Myw2
ICs4NSw3IEBACiAjaW5jbHVkZSAiU3RvcmFnZS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VBcmVhLmgi
CiAjaW5jbHVkZSAiU3RvcmFnZU5hbWVzcGFjZS5oIgorI2luY2x1ZGUgIlN0eWxlTWVkaWEuaCIK
ICNpbmNsdWRlICJTdWRkZW5UZXJtaW5hdGlvbi5oIgogI2luY2x1ZGUgIldlYktpdFBvaW50Lmgi
CiAjaW5jbHVkZSA8YWxnb3JpdGhtPgpAQCAtNDExLDYgKzQxNCwxMSBAQCBTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBET01XaW5kb3c6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdAogICAg
IHJldHVybiBkb2N1bWVudCgpOwogfQogCitQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0PiBET01X
aW5kb3c6Om1hdGNoTWVkaWEoY29uc3QgU3RyaW5nJiBtZWRpYSkKK3sKKyAgICByZXR1cm4gZG9j
dW1lbnQoKSA/IGRvY3VtZW50KCktPm1lZGlhUXVlcnlNYXRjaGVyKCktPm1hdGNoTWVkaWEobWVk
aWEpIDogMDsKK30KKwogdm9pZCBET01XaW5kb3c6OmRpc2Nvbm5lY3RGcmFtZSgpCiB7CiAgICAg
bV9mcmFtZSA9IDA7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmggYi9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmgKaW5kZXggZDg3YTM4Ni4uNTRmY2M4OCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCisrKyBiL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaApA
QCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDkgQXBw
bGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tp
YSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtNTgsMTAgKzU5LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICBjbGFzcyBIaXN0b3J5OwogICAgIGNsYXNzIElEQkZhY3Rvcnk7CiAgICAgY2xhc3MgTG9j
YXRpb247Ci0gICAgY2xhc3MgU3R5bGVNZWRpYTsKKyAgICBjbGFzcyBNZWRpYVF1ZXJ5TGlzdDsK
ICAgICBjbGFzcyBOYXZpZ2F0b3I7CiAgICAgY2xhc3MgTm9kZTsKICAgICBjbGFzcyBOb3RpZmlj
YXRpb25DZW50ZXI7CisgICAgY2xhc3MgU3R5bGVNZWRpYTsKIAogI2lmIEVOQUJMRShXRUJfVElN
SU5HKQogICAgIGNsYXNzIFBlcmZvcm1hbmNlOwpAQCAtOTYsNiArOTgsOCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKICAgICAgICAgdm9pZCBjbGVhcigpOwogCisgICAgICAgIFBhc3NSZWZQdHI8
TWVkaWFRdWVyeUxpc3Q+IG1hdGNoTWVkaWEoY29uc3QgU3RyaW5nJik7CisKICNpZiBFTkFCTEUo
T1JJRU5UQVRJT05fRVZFTlRTKQogICAgICAgICAvLyBUaGlzIGlzIHRoZSBpbnRlcmZhY2Ugb3Jp
ZW50YXRpb24gaW4gZGVncmVlcy4gU29tZSBleGFtcGxlcyBhcmU6CiAgICAgICAgIC8vICAwIGlz
IHN0cmFpZ2h0IHVwOyAtOTAgaXMgd2hlbiB0aGUgZGV2aWNlIGlzIHJvdGF0ZWQgOTAgY2xvY2t3
aXNlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwgYi9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmlkbAppbmRleCAzMDIwNWVjLi4yYjA1NmJkIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmlkbAorKysgYi9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbApA
QCAtMTQwLDcgKzE0MCwxMCBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIERvY3VtZW50IGRvY3VtZW50OwogCiAgICAgICAgIC8vIENTU09NIFZpZXcgTW9kdWxl
CisKKyAgICAgICAgLy8gc3R5bGVNZWRpYSBoYXMgYmVlbiByZW1vdmVkIGZyb20gdGhlIGNzc29t
LXZpZXcgc3BlY2lmaWNhdGlvbi4KICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFN0eWxlTWVk
aWEgc3R5bGVNZWRpYTsKKyAgICAgICAgTWVkaWFRdWVyeUxpc3QgbWF0Y2hNZWRpYShpbiBET01T
dHJpbmcgcXVlcnkpOwogCiAgICAgICAgIC8vIERPTSBMZXZlbCAyIFN0eWxlIEludGVyZmFjZQog
ICAgICAgICBDU1NTdHlsZURlY2xhcmF0aW9uIGdldENvbXB1dGVkU3R5bGUoaW4gRWxlbWVudCBl
bGVtZW50LAotLSAKMS43LjIuMgoK
</data>
<flag name="review"
          id="64264"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74474</attachid>
            <date>2010-11-20 01:00:55 -0800</date>
            <delta_ts>2010-11-22 08:41:02 -0800</delta_ts>
            <desc>patch</desc>
            <filename>0001-Implement-CSSOM-View-matchMedia-interface.patch</filename>
            <type>text/plain</type>
            <size>102688</size>
            <attacher name="Luiz Agostini">luiz</attacher>
            
              <data encoding="base64">RnJvbSAwMmQ3ZDMwY2U4Y2RmOTk1MDM5NGY3OGY5NTA1YWZiMjVjOWQ1ZTE3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWl6IEFnb3N0aW5pIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IFRodSwgMjEgT2N0IDIwMTAgMjE6MTg6NTIgLTAzMDAKU3ViamVjdDogW1BB
VENIXSBJbXBsZW1lbnQgQ1NTT00gVmlldyBtYXRjaE1lZGlhIGludGVyZmFjZQogaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3MjA1CgpSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KCldlYkNvcmU6CgpOZXcgaW50ZXJmYWNlcyBtYXkgYmUgdXNlZCB0byBldmFsdWF0
ZSBtZWRpYSBxdWVyaWVzIGFuZCB0byBhc3NvY2lhdGUgbGlzdGVuZXJzCnRvIG1lZGlhIHF1ZXJp
ZXMuIFRob3NlIGxpc3RlbmVycyBhcmUgY2FsbGVkIHdoZW5ldmVyIHRoZSBhc3NvY2lhdGVkIHF1
ZXJ5IGNoYW5nZXMuClNwZWNpZmljYXRpb24gbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9kZXYudzMu
b3JnL2Nzc3dnL2Nzc29tLXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2UKCm9wZXJh
dG9yPT0gYWRkZWQgdG8gSlMgdmVyc2lvbiBvZiBTY3JpcHRWYWx1ZS4KTWV0aG9kIGlzRnVuY3Rp
b24gYWRkZWQgdG8gSlMgYW5kIFY4IHZlcnNpb25zIG9mIFNjcmlwdFZhbHVlLgoKKiBiaW5kaW5n
cy9qcy9TY3JpcHRWYWx1ZS5jcHA6CihXZWJDb3JlOjpTY3JpcHRWYWx1ZTo6aXNGdW5jdGlvbik6
CiogYmluZGluZ3MvanMvU2NyaXB0VmFsdWUuaDoKKFdlYkNvcmU6OlNjcmlwdFZhbHVlOjpvcGVy
YXRvcj09KToKKiBiaW5kaW5ncy92OC9TY3JpcHRWYWx1ZS5oOgooV2ViQ29yZTo6U2NyaXB0VmFs
dWU6OmlzRnVuY3Rpb24pOgoKU29tZSBjaGFuZ2VzIHdlcmUgbmVlZGVkIHRvIHRoZSBjb2RlIGdl
bmVyYXRvcnMgdG8gaGFuZGxlIHR5cGUgTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci4KCiogYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbToKKiBiaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbToKKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbToK
ClNvbWUgY2hhbmdlcyB0byB0aGUgYmluZGluZ3MgdGVzdCByZXN1bHRzIHRoYXQgd2VyZSBwcmV2
aW91c2x5IGFkZGVkLgoKKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01U
ZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHA6CiogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dP
YmplY3QvV2ViS2l0RE9NVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaDoKKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHA6CihXZWJDb3Jl
Ojpqc1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBlRnVuY3Rpb25NZXRob2QpOgoq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNw
cDoKKFdlYkNvcmU6OlRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVySW50ZXJuYWw6Om1ldGhvZENh
bGxiYWNrKToKKFdlYkNvcmU6OkNvbmZpZ3VyZVY4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJU
ZW1wbGF0ZSk6CgpOZXcgaW50ZXJmYWNlczoKCiogY3NzL01lZGlhUXVlcnlMaXN0LmNwcDogQWRk
ZWQuCiogY3NzL01lZGlhUXVlcnlMaXN0Lmg6IEFkZGVkLgoqIGNzcy9NZWRpYVF1ZXJ5TGlzdC5p
ZGw6IEFkZGVkLgoKKiBjc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHA6IEFkZGVkLgoqIGNz
cy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmg6IEFkZGVkLgoqIGNzcy9NZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyLmlkbDogQWRkZWQuCgpUbyBhdm9pZCBhZGRpbmcgY29kZSB0byBjbGFzc2VzIERPTVdp
bmRvdyBhbmQgRG9jdW1lbnQgYSBuZXcgY2xhc3MgTWVkaWFRdWVyeU1hdGNoZXIgd2FzIGNyZWF0
ZWQuCgoqIGNzcy9NZWRpYVF1ZXJ5TWF0Y2hlci5jcHA6IEFkZGVkLgoqIGNzcy9NZWRpYVF1ZXJ5
TWF0Y2hlci5oOiBBZGRlZC4KCkRvY3VtZW50IGFuZCBET01XaW5kb3cgaGF2ZSBjaGFuZ2VkIHRv
IHN1cHBvcnQgbmV3IGZlYXR1cmVzLiBET01XaW5kb3cgaXMgdGhlIGNsYXNzIHRoYXQKcHVibGlz
aGVzIG1ldGhvZHMgbWF0Y2hNZWRpYSBidXQgZm9yIHBhZ2UgY2FjaGUgdG8gd29yayBwcm9wZXJs
eSAgdGhlIHJlZmVyZW5jZSB0byB0aGUKTWVkaWFRdWVyeU1hdGNoZXIgbXVzdCBiZSBpbiBEb2N1
bWVudC4KCiogZG9tL0RvY3VtZW50LmNwcDoKKFdlYkNvcmU6OkRvY3VtZW50Ojp+RG9jdW1lbnQp
OgooV2ViQ29yZTo6RG9jdW1lbnQ6Om1lZGlhUXVlcnlNYXRjaGVyKToKKFdlYkNvcmU6OkRvY3Vt
ZW50OjpzdHlsZVNlbGVjdG9yQ2hhbmdlZCk6CiogZG9tL0RvY3VtZW50Lmg6CiogcGFnZS9ET01X
aW5kb3cuY3BwOgooV2ViQ29yZTo6RE9NV2luZG93OjptYXRjaE1lZGlhKToKKiBwYWdlL0RPTVdp
bmRvdy5oOgoqIHBhZ2UvRE9NV2luZG93LmlkbDoKCkJ1aWxkIHN5c3RlbXMKCiogQ01ha2VMaXN0
cy50eHQ6CiogRGVyaXZlZFNvdXJjZXMubWFrZToKKiBHTlVtYWtlZmlsZS5hbToKKiBXZWJDb3Jl
Lmd5cGk6CiogV2ViQ29yZS5wcmk6CiogV2ViQ29yZS5wcm86CiogV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2o6CiogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgoqIGJpbmRp
bmdzL2dvYmplY3QvR05VbWFrZWZpbGUuYW06CgpUZXN0czogZmFzdC9tZWRpYS9tZWRpYS1xdWVy
eS1saXN0LTAxLmh0bWwKICAgICAgIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMi5odG1s
CiAgICAgICBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMuaHRtbAogICAgICAgZmFzdC9t
ZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA0Lmh0bWwKICAgICAgIGZhc3QvbWVkaWEvbWVkaWEtcXVl
cnktbGlzdC0wNS5odG1sCiAgICAgICBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDYuaHRt
bAogICAgICAgZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA3Lmh0bWwKCkxheW91dFRlc3Rz
OgoKTmV3IHByb3BlcnR5IG1hdGNoTWVkaWEgd2FzIGFkZGVkIHRvIHdpbmRvdy4KCiogZmFzdC9k
b20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dDoKKiBmYXN0L2RvbS9XaW5k
b3cvd2luZG93LXByb3BlcnR5LWRlc2NyaXB0b3JzLWV4cGVjdGVkLnR4dDoKCndpbmRvdy5tYXRj
aE1lZGlhIGFuZCBNZWRpYVF1ZXJ5TGlzdCB0ZXN0cy4KCiogZmFzdC9tZWRpYS9tZWRpYS1xdWVy
eS1saXN0LTAxLWV4cGVjdGVkLnR4dDogQWRkZWQuCiogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1s
aXN0LTAxLmh0bWw6IEFkZGVkLgoKVGhlIGZvbGxvd2luZyB0ZXN0cyBkZXBlbmQgb24gTGF5b3V0
VGVzdENvbnRyb2xsZXI6OnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCkgdG8gd29yay4KQXMgaXQg
aXMgb25seSBpbXBsZW1lbnRlZCBieSBRdCBhbmQgR3RrIHRoZSB0ZXN0cyBuZWVkZWQgdG8gYmUg
c2tpcHBlZCBpbiBhbGwgb3RoZXIgcGxhdGZvcm1zLgoKKiBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5
LWxpc3QtMDItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKiBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxp
c3QtMDIuaHRtbDogQWRkZWQuCiogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAzLWV4cGVj
dGVkLnR4dDogQWRkZWQuCiogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAzLmh0bWw6IEFk
ZGVkLgoqIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNC1leHBlY3RlZC50eHQ6IEFkZGVk
LgoqIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNC5odG1sOiBBZGRlZC4KKiBmYXN0L21l
ZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKiBmYXN0L21lZGlh
L21lZGlhLXF1ZXJ5LWxpc3QtMDUuaHRtbDogQWRkZWQuCiogZmFzdC9tZWRpYS9tZWRpYS1xdWVy
eS1saXN0LTA2LWV4cGVjdGVkLnR4dDogQWRkZWQuCiogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1s
aXN0LTA2Lmh0bWw6IEFkZGVkLgoqIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgoqIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNy5odG1sOiBB
ZGRlZC4KKiBwbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CiogcGxhdGZv
cm0vbWFjL1NraXBwZWQ6CiogcGxhdGZvcm0vd2luL1NraXBwZWQ6Ci0tLQogTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDM2ICsrKysrCiAuLi4v
ZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dCB8ICAgIDEgKwog
Li4uL3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy1leHBlY3RlZC50eHQgICAgICAgfCAgICAx
ICsKIC4uLi9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDEtZXhwZWN0ZWQudHh0ICAgIHwg
ICAxNSArKwogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAxLmh0bWwg
ICAgfCAgIDUyICsrKysrKysKIC4uLi9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDItZXhw
ZWN0ZWQudHh0ICAgIHwgICAyNSArKysKIExheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVl
cnktbGlzdC0wMi5odG1sICAgIHwgICA2MyArKysrKysrKwogLi4uL2Zhc3QvbWVkaWEvbWVkaWEt
cXVlcnktbGlzdC0wMy1leHBlY3RlZC50eHQgICAgfCAgIDQxICsrKysrCiBMYXlvdXRUZXN0cy9m
YXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMuaHRtbCAgICB8ICAgNzIgKysrKysrKysrCiAu
Li4vZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA0LWV4cGVjdGVkLnR4dCAgICB8ICAgMjUg
KysrCiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDQuaHRtbCAgICB8
ICAgNzUgKysrKysrKysrCiAuLi4vZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA1LWV4cGVj
dGVkLnR4dCAgICB8ICAgIDcgKwogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1s
aXN0LTA1Lmh0bWwgICAgfCAgIDQ3ICsrKysrKwogLi4uL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnkt
bGlzdC0wNi1leHBlY3RlZC50eHQgICAgfCAgICA3ICsKIExheW91dFRlc3RzL2Zhc3QvbWVkaWEv
bWVkaWEtcXVlcnktbGlzdC0wNi5odG1sICAgIHwgICAzNiArKysrKwogLi4uL2Zhc3QvbWVkaWEv
bWVkaWEtcXVlcnktbGlzdC0wNy1leHBlY3RlZC50eHQgICAgfCAgICA3ICsKIExheW91dFRlc3Rz
L2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNy5odG1sICAgIHwgICA0OSArKysrKysKIC4u
Li9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQgICAgICAgIHwgICAgOCAr
LQogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQgICAgICAgICAgICAgICAgICAgfCAg
ICA4ICstCiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZCAgICAgICAgICAgICAgICAg
ICB8ICAgIDYgKwogV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgICA0ICsKIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgICA4NiArKysrKysrKysrKwogV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA0ICstCiBXZWJDb3JlL0dOVW1ha2VmaWxlLmFt
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTAgKy0KIFdlYkNvcmUvV2ViQ29yZS5n
eXBpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgOSArLQogV2ViQ29yZS9XZWJD
b3JlLnByaSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAxICsKIFdlYkNvcmUv
V2ViQ29yZS5wcm8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgOCArLQogV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiAgICAgICAgICAgICAgfCAgIDgwICsr
KysrKysrKysKIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qICAgICAg
ICAgIHwgICAzNiArKysrKwogV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dOVW1ha2VmaWxlLmFt
ICAgICAgICAgICAgfCAgICAzICsKIFdlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0VmFsdWUuY3Bw
ICAgICAgICAgICAgICAgIHwgICAgNiArCiBXZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFZhbHVl
LmggICAgICAgICAgICAgICAgICB8ICAgIDMgKwogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JHT2JqZWN0LnBtICAgfCAgIDE5ICsrLQogV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JKUy5wbSAgICAgICAgfCAgIDExICsrCiBXZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtICAgICAgICB8ICAgMTEgKystCiAuLi4vV2ViS2l0
RE9NVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwICAgICAgICB8ICAgMTcgLS0KIC4uLi9H
T2JqZWN0L1dlYktpdERPTVRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggIHwgICAgMyAtCiAu
Li4vdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcCAgICAgICB8ICAgIDQg
Ky0KIC4uLi90ZXN0L1Y4L1Y4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwICAgICAgIHwg
ICAxNSArLQogV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRWYWx1ZS5oICAgICAgICAgICAgICAg
ICAgfCAgICA1ICsKIFdlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0LmNwcCAgICAgICAgICAgICAg
ICAgICAgIHwgIDEwMCArKysrKysrKysrKysKIFdlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0Lmgg
ICAgICAgICAgICAgICAgICAgICAgIHwgICA3MSArKysrKysrKysKIFdlYkNvcmUvY3NzL01lZGlh
UXVlcnlMaXN0LmlkbCAgICAgICAgICAgICAgICAgICAgIHwgICAzMyArKysrCiBXZWJDb3JlL2Nz
cy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcCAgICAgICAgICAgICB8ICAgNTEgKysrKysrCiBX
ZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggICAgICAgICAgICAgICB8ICAgNjEg
KysrKysrKysKIFdlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaWRsICAgICAgICAg
ICAgIHwgICAzNSArKysrKwogV2ViQ29yZS9jc3MvTWVkaWFRdWVyeU1hdGNoZXIuY3BwICAgICAg
ICAgICAgICAgICAgfCAgMTYyICsrKysrKysrKysrKysrKysrKysrCiBXZWJDb3JlL2Nzcy9NZWRp
YVF1ZXJ5TWF0Y2hlci5oICAgICAgICAgICAgICAgICAgICB8ICAgOTMgKysrKysrKysrKysKIFdl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNiAr
KwogV2ViQ29yZS9kb20vRG9jdW1lbnQuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg
ICA2ICsKIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwICAgICAgICAgICAgICAgICAgICAgICAg
IHwgICAxMCArLQogV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgICA2ICstCiBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbCAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgIDMgKwogNTMgZmlsZXMgY2hhbmdlZCwgMTUxOSBpbnNlcnRpb25zKCsp
LCA0NCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L21l
ZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDEtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQg
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAxLmh0bWwKIGNyZWF0ZSBt
b2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDItZXhw
ZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRp
YS1xdWVyeS1saXN0LTAyLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0
L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2
NDQgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAzLmh0bWwKIGNyZWF0
ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDQt
ZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9t
ZWRpYS1xdWVyeS1saXN0LTA0Lmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9m
YXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDUtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAx
MDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA1Lmh0bWwKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3Qt
MDYtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YS9tZWRpYS1xdWVyeS1saXN0LTA2Lmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0
cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDctZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9k
ZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA3Lmh0bWwK
IG1vZGUgY2hhbmdlIDEwMDY0NCA9PiAxMDA3NTUgV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvagogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0
LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0LmgKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdC5pZGwKIGNyZWF0ZSBt
b2RlIDEwMDY0NCBXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcAogY3JlYXRl
IG1vZGUgMTAwNjQ0IFdlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaAogY3JlYXRl
IG1vZGUgMTAwNjQ0IFdlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaWRsCiBjcmVh
dGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9jc3MvTWVkaWFRdWVyeU1hdGNoZXIuY3BwCiBjcmVhdGUg
bW9kZSAxMDA2NDQgV2ViQ29yZS9jc3MvTWVkaWFRdWVyeU1hdGNoZXIuaAoKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlMjQx
YzQyLi5hYmUyNDliIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTAtMTAtMjEgIEx1aXogQWdv
c3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IENTU09NIFZpZXcgbWF0Y2hN
ZWRpYSBpbnRlcmZhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTM3MjA1CisKKyAgICAgICAgTmV3IHByb3BlcnR5IG1hdGNoTWVkaWEgd2FzIGFkZGVk
IHRvIHdpbmRvdy4KKworICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGll
cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0
eS1kZXNjcmlwdG9ycy1leHBlY3RlZC50eHQ6CisKKyAgICAgICAgd2luZG93Lm1hdGNoTWVkaWEg
YW5kIE1lZGlhUXVlcnlMaXN0IHRlc3RzLgorCisgICAgICAgICogZmFzdC9tZWRpYS9tZWRpYS1x
dWVyeS1saXN0LTAxLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYS9t
ZWRpYS1xdWVyeS1saXN0LTAxLmh0bWw6IEFkZGVkLgorCisgICAgICAgIFRoZSBmb2xsb3dpbmcg
dGVzdHMgZGVwZW5kIG9uIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRWaWV3TW9kZU1lZGlhRmVh
dHVyZSgpIHRvIHdvcmsuCisgICAgICAgIEFzIGl0IGlzIG9ubHkgaW1wbGVtZW50ZWQgYnkgUXQg
YW5kIEd0ayB0aGUgdGVzdHMgbmVlZGVkIHRvIGJlIHNraXBwZWQgaW4gYWxsIG90aGVyIHBsYXRm
b3Jtcy4KKworICAgICAgICAqIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMi1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMi5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3Qt
MDMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA0
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1s
aXN0LTA0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlz
dC0wNS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWEvbWVkaWEtcXVl
cnktbGlzdC0wNS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5
LWxpc3QtMDYtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhL21lZGlh
LXF1ZXJ5LWxpc3QtMDYuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYS9tZWRpYS1x
dWVyeS1saXN0LTA3LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYS9t
ZWRpYS1xdWVyeS1saXN0LTA3Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9t
aXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2tpcHBl
ZDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDoKKwogMjAxMC0xMS0xOSAgVy4gSmFt
ZXMgTWFjTGVhbiAgPHdqbWFjbGVhbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgSmFtZXMgUm9iaW5zb24uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5k
b3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
V2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAppbmRleCA1Y2FiODRiLi5jN2Iw
OTlhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3Bl
cnRpZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5k
b3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKQEAgLTIyODEsNiArMjI4MSw3IEBAIHdpbmRvdy5s
b2NhdGlvbmJhci52aXNpYmxlIFtib29sZWFuXQogd2luZG93LmxvZyBbZnVuY3Rpb25dCiB3aW5k
b3cubG9nUHJvcGVydGllcyBbZnVuY3Rpb25dCiB3aW5kb3cubG9nVmFsdWUgW2Z1bmN0aW9uXQor
d2luZG93Lm1hdGNoTWVkaWEgW2Z1bmN0aW9uXQogd2luZG93Lm1lbnViYXIgW29iamVjdCBCYXJJ
bmZvXQogd2luZG93Lm1lbnViYXIudmlzaWJsZSBbYm9vbGVhbl0KIHdpbmRvdy5tb3ZlQnkgW2Z1
bmN0aW9uXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1w
cm9wZXJ0eS1kZXNjcmlwdG9ycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9X
aW5kb3cvd2luZG93LXByb3BlcnR5LWRlc2NyaXB0b3JzLWV4cGVjdGVkLnR4dAppbmRleCAxZDlj
NGRmLi42ODMxNWFkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2lu
ZG93LXByb3BlcnR5LWRlc2NyaXB0b3JzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnR5LWRlc2NyaXB0b3JzLWV4cGVjdGVkLnR4dApA
QCAtNTA3LDYgKzUwNyw3IEBAIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3
aW5kb3csICdnZXRNYXRjaGVkQ1NTUnVsZXMnKSBpcyB1bmRlZmluZWQuCiBQQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnZ2V0U2VsZWN0aW9uJykgaXMgdW5kZWZp
bmVkLgogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ2hhc093
blByb3BlcnR5JykgaXMgdW5kZWZpbmVkLgogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKHdpbmRvdywgJ2lzUHJvdG90eXBlT2YnKSBpcyB1bmRlZmluZWQuCitQQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnbWF0Y2hNZWRpYScpIGlzIHVuZGVm
aW5lZC4KIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdtb3Zl
QnknKSBpcyB1bmRlZmluZWQuCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
d2luZG93LCAnbW92ZVRvJykgaXMgdW5kZWZpbmVkLgogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKHdpbmRvdywgJ29wZW4nKSBpcyB1bmRlZmluZWQuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDEtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAxLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZWJhM2Y1Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAxLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDE1IEBACitUZXN0IHRoZSBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U6
IGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzc29tLXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1p
bnRlcmZhY2UuCisKKyJzY3JlZW4iIGV2YWx1YXRlcyB0byB0cnVlOiBQQVNTCisicHJvamVjdGlv
biIgZXZhbHVhdGVzIHRvIGZhbHNlOiBQQVNTCisiYWxsIGFuZCAoY29sb3IpIiBldmFsdWF0ZXMg
dG8gdHJ1ZTogUEFTUworIm5vdCBwcm9qZWN0aW9uIGFuZCAoY29sb3IpIiBldmFsdWF0ZXMgdG8g
dHJ1ZTogUEFTUworIihjb2xvcikiIGV2YWx1YXRlcyB0byB0cnVlOiBQQVNTCisiKGNvbG9yIiBl
dmFsdWF0ZXMgdG8gZmFsc2U6IFBBU1MKKyJjb2xvciIgZXZhbHVhdGVzIHRvIGZhbHNlOiBQQVNT
CisiZ2FyYmFnZSIgZXZhbHVhdGVzIHRvIGZhbHNlOiBQQVNTCisiKG1pbi1kZXZpY2Utd2lkdGg6
IDEwMHB4KSIgZXZhbHVhdGVzIHRvIHRydWU6IFBBU1MKKyIobWluLWRldmljZS13aWR0aDogNTAw
MDBweCkiIGV2YWx1YXRlcyB0byBmYWxzZTogUEFTUworIigtd2Via2l0LWFuaW1hdGlvbjogMSki
IGV2YWx1YXRlcyB0byB0cnVlOiBQQVNTCisiKC13ZWJraXQtdHJhbnNmb3JtLTJkKSIgZXZhbHVh
dGVzIHRvIHRydWU6IFBBU1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9t
ZWRpYS1xdWVyeS1saXN0LTAxLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1
ZXJ5LWxpc3QtMDEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zM2Rj
YzY3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVy
eS1saXN0LTAxLmh0bWwKQEAgLTAsMCArMSw1MiBAQAorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5U
ZXN0IENTU09NIFZpZXcgbW9kdWxlOiBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U8L3RpdGxlPgor
PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKworPC9zdHlsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisg
ICAgZnVuY3Rpb24gbG9nKG0pCisgICAgeworICAgICAgICB2YXIgcmVzdWx0cyA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdyZXN1bHRzJyk7CisgICAgICAgIHJlc3VsdHMuaW5uZXJIVE1MICs9
IG0gKyAnPGJyPic7CisgICAgfQorCisgICAgZnVuY3Rpb24gdGVzdFF1ZXJ5KHF1ZXJ5LCBleHBl
Y3RlZCkKKyAgICB7CisgICAgICAgIHZhciBpc1RydWUgPSB3aW5kb3cubWF0Y2hNZWRpYShxdWVy
eSkubWF0Y2hlczsKKyAgICAgICAgdmFyIG1lc3NhZ2UgPSAnXCInICsgcXVlcnkgKyAnXCIgZXZh
bHVhdGVzIHRvICcgKyAoaXNUcnVlID8gJ3RydWUnIDogJ2ZhbHNlJyk7CisgICAgICAgIG1lc3Nh
Z2UgKz0gKGlzVHJ1ZSA9PSBleHBlY3RlZCkgPyAnOiBQQVNTJyA6ICc6IEZBSUwnOworICAgICAg
ICBsb2cobWVzc2FnZSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdHMoKQorICAgIHsK
KyAgICAgICAgdGVzdFF1ZXJ5KCdzY3JlZW4nLCB0cnVlKTsKKyAgICAgICAgdGVzdFF1ZXJ5KCdw
cm9qZWN0aW9uJywgZmFsc2UpOworCisgICAgICAgIHRlc3RRdWVyeSgnYWxsIGFuZCAoY29sb3Ip
JywgdHJ1ZSk7CisgICAgICAgIHRlc3RRdWVyeSgnbm90IHByb2plY3Rpb24gYW5kIChjb2xvcikn
LCB0cnVlKTsKKyAgICAgICAgdGVzdFF1ZXJ5KCcoY29sb3IpJywgdHJ1ZSk7CisgICAgICAgIHRl
c3RRdWVyeSgnKGNvbG9yJywgZmFsc2UpOworICAgICAgICB0ZXN0UXVlcnkoJ2NvbG9yJywgZmFs
c2UpOworCisgICAgICAgIHRlc3RRdWVyeSgnZ2FyYmFnZScsIGZhbHNlKTsKKworICAgICAgICB0
ZXN0UXVlcnkoJyhtaW4tZGV2aWNlLXdpZHRoOiAxMDBweCknLCB0cnVlKTsKKyAgICAgICAgdGVz
dFF1ZXJ5KCcobWluLWRldmljZS13aWR0aDogNTAwMDBweCknLCBmYWxzZSk7CisKKyAgICAgICAg
dGVzdFF1ZXJ5KCcoLXdlYmtpdC1hbmltYXRpb246IDEpJywgdHJ1ZSk7CisgICAgICAgIHRlc3RR
dWVyeSgnKC13ZWJraXQtdHJhbnNmb3JtLTJkKScsIHRydWUpOworICAgIH0KKworPC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3RzKCkiPgorICAgIDxwPlRlc3QgdGhlIE1l
ZGlhUXVlcnlMaXN0IGludGVyZmFjZTogPGEgaHJlZj0iaHR0cDovL2Rldi53My5vcmcvY3Nzd2cv
Y3Nzb20tdmlldy8jdGhlLW1lZGlhcXVlcnlsaXN0LWludGVyZmFjZSIgdGl0bGU9IkNTU09NIFZp
ZXcgTW9kdWxlIj5odHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9jc3NvbS12aWV3LyN0aGUtbWVkaWFx
dWVyeWxpc3QtaW50ZXJmYWNlPC9hPi48L3A+CisgICAgPGRpdiBpZD0icmVzdWx0cyI+CisgICAg
PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21l
ZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi42MzY0M2Q4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI1
IEBACitUZXN0IHRoZSBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U6IGh0dHA6Ly9kZXYudzMub3Jn
L2Nzc3dnL2Nzc29tLXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2UuCisKK1Rlc3Rp
bmcgYWRkTGlzdGVuZXIgaW4gZGlmZmVyZW50IE1lZGlhUXVlcnlMaXN0IG9iamVjdHMgYW5kIHRo
ZSBjYWxsYmFjayBjYWxsIHNlcXVlbmNlCisKKy0tLS0tLS0tLS0tLS0gbWluaW1pemVkIC0tLS0t
LS0tLS0tLS0KK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5n
ZWQgdG8gZmFsc2UKK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSBj
aGFuZ2VkIHRvIHRydWUKK1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQp
IGNoYW5nZWQgdG8gZmFsc2UKK1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1p
emVkKSBjaGFuZ2VkIHRvIHRydWUKKy0tLS0tLS0tLS0tLS0gbWF4aW1pemVkIC0tLS0tLS0tLS0t
LS0KK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSBjaGFuZ2VkIHRv
IGZhbHNlCitbMV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1heGltaXplZCkgY2hhbmdl
ZCB0byB0cnVlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCkgY2hh
bmdlZCB0byBmYWxzZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtYXhpbWl6ZWQp
IGNoYW5nZWQgdG8gdHJ1ZQorLS0tLS0tLS0tLS0tLSB3aW5kb3dlZCAtLS0tLS0tLS0tLS0tCitb
MV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFuZ2VkIHRvIHRydWUK
K1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWF4aW1pemVkKSBjaGFuZ2VkIHRvIGZh
bHNlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFuZ2VkIHRv
IHRydWUKK1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWF4aW1pemVkKSBjaGFuZ2Vk
IHRvIGZhbHNlCistLS0tLS0tLS0tLS0tIGZsb2F0aW5nIC0tLS0tLS0tLS0tLS0KK1sxXSAtIHF1
ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQgdG8gZmFsc2UKK1sxXSAt
IHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogZmxvYXRpbmcpIGNoYW5nZWQgdG8gdHJ1ZQorWzJd
IC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0byBmYWxzZQor
WzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBmbG9hdGluZykgY2hhbmdlZCB0byB0cnVl
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0w
Mi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAyLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzA5M2NhMQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMi5odG1sCkBA
IC0wLDAgKzEsNjMgQEAKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+VGVzdCBDU1NPTSBWaWV3IG1v
ZHVsZTogTWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlPC90aXRsZT4KKzxzdHlsZSB0eXBlPSJ0ZXh0
L2NzcyI+CisKKzwvc3R5bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNl
dD0idXRmLTgiPgorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworICAgIGZ1bmN0aW9uIGxvZyht
KSB7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHRzJykuaW5uZXJIVE1M
ICs9IG0gKyAnPGJyPic7CisgICAgfQorCisgICAgZnVuY3Rpb24gY2FsbGJhY2sxKHF1ZXJ5KSB7
CisgICAgICAgIGxvZygiWzFdIC0gcXVlcnkgIiArIHF1ZXJ5Lm1lZGlhICsgIiBjaGFuZ2VkIHRv
ICIgKyAocXVlcnkubWF0Y2hlcyA/ICJ0cnVlIiA6ICJmYWxzZSIpKTsKKyAgICB9CisKKyAgICBm
dW5jdGlvbiBjYWxsYmFjazIocXVlcnkpIHsKKyAgICAgICAgbG9nKCJbMl0gLSBxdWVyeSAiICsg
cXVlcnkubWVkaWEgKyAiIGNoYW5nZWQgdG8gIiArIChxdWVyeS5tYXRjaGVzID8gInRydWUiIDog
ImZhbHNlIikpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3RzKCkKKyAgICB7CisgICAg
ICAgIGlmICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgcmV0dXJu
OworCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0dXJl
KCJ3aW5kb3dlZCIpOworCisgICAgICAgIHdpbmRvd2VkUXVlcnkgPSB3aW5kb3cubWF0Y2hNZWRp
YSgiKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkiKTsKKyAgICAgICAgZmxvYXRpbmdRdWVy
eSA9IHdpbmRvdy5tYXRjaE1lZGlhKCIoLXdlYmtpdC12aWV3LW1vZGU6IGZsb2F0aW5nKSIpOwor
ICAgICAgICBtaW5pbWl6ZWRRdWVyeSA9IHdpbmRvdy5tYXRjaE1lZGlhKCIoLXdlYmtpdC12aWV3
LW1vZGU6IG1pbmltaXplZCkiKTsKKyAgICAgICAgbWF4aW1pemVkUXVlcnkgPSB3aW5kb3cubWF0
Y2hNZWRpYSgiKC13ZWJraXQtdmlldy1tb2RlOiBtYXhpbWl6ZWQpIik7CisKKyAgICAgICAgd2lu
ZG93ZWRRdWVyeS5hZGRMaXN0ZW5lcihjYWxsYmFjazEpOworICAgICAgICBmbG9hdGluZ1F1ZXJ5
LmFkZExpc3RlbmVyKGNhbGxiYWNrMSk7CisgICAgICAgIG1pbmltaXplZFF1ZXJ5LmFkZExpc3Rl
bmVyKGNhbGxiYWNrMSk7CisgICAgICAgIG1heGltaXplZFF1ZXJ5LmFkZExpc3RlbmVyKGNhbGxi
YWNrMSk7CisKKyAgICAgICAgd2luZG93ZWRRdWVyeS5hZGRMaXN0ZW5lcihjYWxsYmFjazIpOwor
ICAgICAgICBmbG9hdGluZ1F1ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNrMik7CisgICAgICAgIG1p
bmltaXplZFF1ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNrMik7CisgICAgICAgIG1heGltaXplZFF1
ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNrMik7CisKKyAgICAgICAgbG9nKCItLS0tLS0tLS0tLS0t
IG1pbmltaXplZCAtLS0tLS0tLS0tLS0tIik7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCJtaW5pbWl6ZWQiKTsKKyAgICAgICAgbG9nKCItLS0t
LS0tLS0tLS0tIG1heGltaXplZCAtLS0tLS0tLS0tLS0tIik7CisgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCJtYXhpbWl6ZWQiKTsKKyAgICAgICAg
bG9nKCItLS0tLS0tLS0tLS0tIHdpbmRvd2VkIC0tLS0tLS0tLS0tLS0iKTsKKyAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoIndpbmRvd2VkIik7Cisg
ICAgICAgIGxvZygiLS0tLS0tLS0tLS0tLSBmbG9hdGluZyAtLS0tLS0tLS0tLS0tIik7CisgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCJmbG9hdGlu
ZyIpOworICAgIH0KKworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3Rz
KCkiPgorICAgIDxwPlRlc3QgdGhlIE1lZGlhUXVlcnlMaXN0IGludGVyZmFjZTogPGEgaHJlZj0i
aHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3Nzb20tdmlldy8jdGhlLW1lZGlhcXVlcnlsaXN0LWlu
dGVyZmFjZSIgdGl0bGU9IkNTU09NIFZpZXcgTW9kdWxlIj5odHRwOi8vZGV2LnczLm9yZy9jc3N3
Zy9jc3NvbS12aWV3LyN0aGUtbWVkaWFxdWVyeWxpc3QtaW50ZXJmYWNlPC9hPi48L3A+CisgICAg
PHA+VGVzdGluZyBhZGRMaXN0ZW5lciBpbiBkaWZmZXJlbnQgTWVkaWFRdWVyeUxpc3Qgb2JqZWN0
cyBhbmQgdGhlIGNhbGxiYWNrIGNhbGwgc2VxdWVuY2U8L3A+CisgICAgPGRpdiBpZD0icmVzdWx0
cyI+CisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMjRlMjA2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAzLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDQxIEBACitUZXN0IHRoZSBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U6IGh0dHA6Ly9k
ZXYudzMub3JnL2Nzc3dnL2Nzc29tLXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2Uu
CisKK1Rlc3RpbmcgcmVtb3ZlTGlzdGVuZXIgaW4gZGlmZmVyZW50IE1lZGlhUXVlcnlMaXN0IG9i
amVjdHMgYW5kIHRoZSBjYWxsYmFjayBjYWxsIHNlcXVlbmNlCisKK2FkZGluZyB3aW5kb3dlZFsx
XSwgbWluaW1pemVkWzFdLCB3aW5kb3dlZFsyXSBhbmQgbWluaW1pemVkWzJdCisKKy0tLS0tLS0t
LS0tLS0gbWluaW1pemVkIC0tLS0tLS0tLS0tLS0KK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXct
bW9kZTogd2luZG93ZWQpIGNoYW5nZWQgdG8gZmFsc2UKK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZp
ZXctbW9kZTogbWluaW1pemVkKSBjaGFuZ2VkIHRvIHRydWUKK1syXSAtIHF1ZXJ5ICgtd2Via2l0
LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQgdG8gZmFsc2UKK1syXSAtIHF1ZXJ5ICgtd2Vi
a2l0LXZpZXctbW9kZTogbWluaW1pemVkKSBjaGFuZ2VkIHRvIHRydWUKKy0tLS0tLS0tLS0tLS0g
d2luZG93ZWQgLS0tLS0tLS0tLS0tLQorWzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiB3
aW5kb3dlZCkgY2hhbmdlZCB0byB0cnVlCitbMV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6
IG1pbmltaXplZCkgY2hhbmdlZCB0byBmYWxzZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1t
b2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0byB0cnVlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3
LW1vZGU6IG1pbmltaXplZCkgY2hhbmdlZCB0byBmYWxzZQorCisKK3JlbW92aW5nIHdpbmRvd2Vk
WzFdIGFuZCBtaW5pbWl6ZWRbMl0KKworLS0tLS0tLS0tLS0tLSBtaW5pbWl6ZWQgLS0tLS0tLS0t
LS0tLQorWzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQpIGNoYW5nZWQg
dG8gdHJ1ZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdl
ZCB0byBmYWxzZQorLS0tLS0tLS0tLS0tLSB3aW5kb3dlZCAtLS0tLS0tLS0tLS0tCitbMV0gLSBx
dWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCkgY2hhbmdlZCB0byBmYWxzZQorWzJd
IC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0byB0cnVlCisK
KworYWRkaW5nIHdpbmRvd2VkWzFdIGFuZCBtaW5pbWl6ZWRbMl0KKworLS0tLS0tLS0tLS0tLSBt
aW5pbWl6ZWQgLS0tLS0tLS0tLS0tLQorWzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBt
aW5pbWl6ZWQpIGNoYW5nZWQgdG8gdHJ1ZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2Rl
OiB3aW5kb3dlZCkgY2hhbmdlZCB0byBmYWxzZQorWzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1t
b2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0byBmYWxzZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmll
dy1tb2RlOiBtaW5pbWl6ZWQpIGNoYW5nZWQgdG8gdHJ1ZQorLS0tLS0tLS0tLS0tLSB3aW5kb3dl
ZCAtLS0tLS0tLS0tLS0tCitbMV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXpl
ZCkgY2hhbmdlZCB0byBmYWxzZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5k
b3dlZCkgY2hhbmdlZCB0byB0cnVlCitbMV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdp
bmRvd2VkKSBjaGFuZ2VkIHRvIHRydWUKK1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTog
bWluaW1pemVkKSBjaGFuZ2VkIHRvIGZhbHNlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YS9tZWRpYS1xdWVyeS1saXN0LTAzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uODMzYmRkZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEv
bWVkaWEtcXVlcnktbGlzdC0wMy5odG1sCkBAIC0wLDAgKzEsNzIgQEAKKzxodG1sPgorPGhlYWQ+
Cis8dGl0bGU+VGVzdCBDU1NPTSBWaWV3IG1vZHVsZTogTWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNl
PC90aXRsZT4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisKKzwvc3R5bGU+Cis8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgorICAgIGlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKKworICAgIGZ1bmN0aW9uIGxvZyhtKSB7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdyZXN1bHRzJykuaW5uZXJIVE1MICs9IG0gKyAnPGJyPic7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gY2FsbGJhY2sxKHF1ZXJ5KSB7CisgICAgICAgIGxvZygiWzFdIC0gcXVlcnkgIiAr
IHF1ZXJ5Lm1lZGlhICsgIiBjaGFuZ2VkIHRvICIgKyAocXVlcnkubWF0Y2hlcyA/ICJ0cnVlIiA6
ICJmYWxzZSIpKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjYWxsYmFjazIocXVlcnkpIHsKKyAg
ICAgICAgbG9nKCJbMl0gLSBxdWVyeSAiICsgcXVlcnkubWVkaWEgKyAiIGNoYW5nZWQgdG8gIiAr
IChxdWVyeS5tYXRjaGVzID8gInRydWUiIDogImZhbHNlIikpOworICAgIH0KKworICAgIGZ1bmN0
aW9uIHJ1blRlc3RzKCkKKyAgICB7CisgICAgICAgIGlmICghd2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCJ3aW5kb3dlZCIpOworCisgICAgICAgIHdpbmRv
d2VkUXVlcnkgPSB3aW5kb3cubWF0Y2hNZWRpYSgiKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dl
ZCkiKTsKKyAgICAgICAgbWluaW1pemVkUXVlcnkgPSB3aW5kb3cubWF0Y2hNZWRpYSgiKC13ZWJr
aXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQpIik7CisKKyAgICAgICAgbG9nKCJhZGRpbmcgd2luZG93
ZWRbMV0sIG1pbmltaXplZFsxXSwgd2luZG93ZWRbMl0gYW5kIG1pbmltaXplZFsyXTxicj4iKTsK
KyAgICAgICAgd2luZG93ZWRRdWVyeS5hZGRMaXN0ZW5lcihjYWxsYmFjazEpOworICAgICAgICBt
aW5pbWl6ZWRRdWVyeS5hZGRMaXN0ZW5lcihjYWxsYmFjazEpOworICAgICAgICB3aW5kb3dlZFF1
ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNrMik7CisgICAgICAgIG1pbmltaXplZFF1ZXJ5LmFkZExp
c3RlbmVyKGNhbGxiYWNrMik7CisKKyAgICAgICAgbG9nKCItLS0tLS0tLS0tLS0tIG1pbmltaXpl
ZCAtLS0tLS0tLS0tLS0tIik7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFZpZXdN
b2RlTWVkaWFGZWF0dXJlKCJtaW5pbWl6ZWQiKTsKKyAgICAgICAgbG9nKCItLS0tLS0tLS0tLS0t
IHdpbmRvd2VkIC0tLS0tLS0tLS0tLS0iKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
c2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoIndpbmRvd2VkIik7CisKKyAgICAgICAgbG9nKCI8YnI+
PGJyPnJlbW92aW5nIHdpbmRvd2VkWzFdIGFuZCBtaW5pbWl6ZWRbMl08YnI+Iik7CisgICAgICAg
IHdpbmRvd2VkUXVlcnkucmVtb3ZlTGlzdGVuZXIoY2FsbGJhY2sxKTsKKyAgICAgICAgbWluaW1p
emVkUXVlcnkucmVtb3ZlTGlzdGVuZXIoY2FsbGJhY2syKTsKKworICAgICAgICBsb2coIi0tLS0t
LS0tLS0tLS0gbWluaW1pemVkIC0tLS0tLS0tLS0tLS0iKTsKKyAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoIm1pbmltaXplZCIpOworICAgICAgICBs
b2coIi0tLS0tLS0tLS0tLS0gd2luZG93ZWQgLS0tLS0tLS0tLS0tLSIpOworICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSgid2luZG93ZWQiKTsKKwor
ICAgICAgICBsb2coIjxicj48YnI+YWRkaW5nIHdpbmRvd2VkWzFdIGFuZCBtaW5pbWl6ZWRbMl08
YnI+Iik7CisgICAgICAgIHdpbmRvd2VkUXVlcnkuYWRkTGlzdGVuZXIoY2FsbGJhY2sxKTsKKyAg
ICAgICAgbWluaW1pemVkUXVlcnkuYWRkTGlzdGVuZXIoY2FsbGJhY2syKTsKKworICAgICAgICBs
b2coIi0tLS0tLS0tLS0tLS0gbWluaW1pemVkIC0tLS0tLS0tLS0tLS0iKTsKKyAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoIm1pbmltaXplZCIpOwor
ICAgICAgICBsb2coIi0tLS0tLS0tLS0tLS0gd2luZG93ZWQgLS0tLS0tLS0tLS0tLSIpOworICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSgid2luZG93
ZWQiKTsKKworICAgIH0KKworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRl
c3RzKCkiPgorICAgIDxwPlRlc3QgdGhlIE1lZGlhUXVlcnlMaXN0IGludGVyZmFjZTogPGEgaHJl
Zj0iaHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3Nzb20tdmlldy8jdGhlLW1lZGlhcXVlcnlsaXN0
LWludGVyZmFjZSIgdGl0bGU9IkNTU09NIFZpZXcgTW9kdWxlIj5odHRwOi8vZGV2LnczLm9yZy9j
c3N3Zy9jc3NvbS12aWV3LyN0aGUtbWVkaWFxdWVyeWxpc3QtaW50ZXJmYWNlPC9hPi48L3A+Cisg
ICAgPHA+VGVzdGluZyByZW1vdmVMaXN0ZW5lciBpbiBkaWZmZXJlbnQgTWVkaWFRdWVyeUxpc3Qg
b2JqZWN0cyBhbmQgdGhlIGNhbGxiYWNrIGNhbGwgc2VxdWVuY2U8L3A+CisgICAgPGRpdiBpZD0i
cmVzdWx0cyI+CisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA0LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYTZkMGRiCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA0LWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDI1IEBACitUZXN0IHRoZSBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U6IGh0
dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzc29tLXZpZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRl
cmZhY2UuCisKK1Rlc3RpbmcgcGFnZSBjYWNoZQorCistLS0tLS0tLS0tLS0tIG1pbmltaXplZCAt
LS0tLS0tLS0tLS0tCitbMV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBj
aGFuZ2VkIHRvIGZhbHNlCitbMV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXpl
ZCkgY2hhbmdlZCB0byB0cnVlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRv
d2VkKSBjaGFuZ2VkIHRvIGZhbHNlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1p
bmltaXplZCkgY2hhbmdlZCB0byB0cnVlCistLS0tLS0tLS0tLS0tIG1heGltaXplZCAtLS0tLS0t
LS0tLS0tCitbMV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCkgY2hhbmdl
ZCB0byBmYWxzZQorWzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtYXhpbWl6ZWQpIGNo
YW5nZWQgdG8gdHJ1ZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiBtaW5pbWl6ZWQp
IGNoYW5nZWQgdG8gZmFsc2UKK1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogbWF4aW1p
emVkKSBjaGFuZ2VkIHRvIHRydWUKKy0tLS0tLS0tLS0tLS0gd2luZG93ZWQgLS0tLS0tLS0tLS0t
LQorWzFdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdlZCB0byB0
cnVlCitbMV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1heGltaXplZCkgY2hhbmdlZCB0
byBmYWxzZQorWzJdIC0gcXVlcnkgKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkgY2hhbmdl
ZCB0byB0cnVlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IG1heGltaXplZCkgY2hh
bmdlZCB0byBmYWxzZQorLS0tLS0tLS0tLS0tLSBmbG9hdGluZyAtLS0tLS0tLS0tLS0tCitbMV0g
LSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFuZ2VkIHRvIGZhbHNlCitb
MV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IGZsb2F0aW5nKSBjaGFuZ2VkIHRvIHRydWUK
K1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQgdG8gZmFs
c2UKK1syXSAtIHF1ZXJ5ICgtd2Via2l0LXZpZXctbW9kZTogZmxvYXRpbmcpIGNoYW5nZWQgdG8g
dHJ1ZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxp
c3QtMDQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE4NzdhNWEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDQuaHRt
bApAQCAtMCwwICsxLDc1IEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPlRlc3QgQ1NTT00gVmll
dyBtb2R1bGU6IE1lZGlhUXVlcnlMaXN0IGludGVyZmFjZTwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgorCisgICAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNU
ZXh0KCk7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRVc2Vz
UGFnZUNhY2hlUHJlZmVyZW5jZUtleSIsIDEpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGxvZyht
KSB7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHRzJykuaW5uZXJIVE1M
ICs9IG0gKyAnPGJyPic7CisgICAgfQorCisgICAgZnVuY3Rpb24gY2FsbGJhY2sxKHF1ZXJ5KSB7
CisgICAgICAgIGxvZygiWzFdIC0gcXVlcnkgIiArIHF1ZXJ5Lm1lZGlhICsgIiBjaGFuZ2VkIHRv
ICIgKyAocXVlcnkubWF0Y2hlcyA/ICJ0cnVlIiA6ICJmYWxzZSIpKTsKKyAgICB9CisKKyAgICBm
dW5jdGlvbiBjYWxsYmFjazIocXVlcnkpIHsKKyAgICAgICAgbG9nKCJbMl0gLSBxdWVyeSAiICsg
cXVlcnkubWVkaWEgKyAiIGNoYW5nZWQgdG8gIiArIChxdWVyeS5tYXRjaGVzID8gInRydWUiIDog
ImZhbHNlIikpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHBhZ2VzaG93KGV2dCkKKyAgICB7Cisg
ICAgICAgIGlmICghZXZ0LnBlcnNpc3RlZCkgeworICAgICAgICAgICAgLy8gdGhpcyB3aWxsIHJ1
biBvbmx5IHdoZW4gdGhlIHBhZ2UgaXMgbG9hZGVkIGZvciB0aGUgZmlyc3QgdGltZS4KKworICAg
ICAgICAgICAgd2luZG93ZWRRdWVyeSA9IHdpbmRvdy5tYXRjaE1lZGlhKCIoLXdlYmtpdC12aWV3
LW1vZGU6IHdpbmRvd2VkKSIpOworICAgICAgICAgICAgZmxvYXRpbmdRdWVyeSA9IHdpbmRvdy5t
YXRjaE1lZGlhKCIoLXdlYmtpdC12aWV3LW1vZGU6IGZsb2F0aW5nKSIpOworICAgICAgICAgICAg
bWluaW1pemVkUXVlcnkgPSB3aW5kb3cubWF0Y2hNZWRpYSgiKC13ZWJraXQtdmlldy1tb2RlOiBt
aW5pbWl6ZWQpIik7CisgICAgICAgICAgICBtYXhpbWl6ZWRRdWVyeSA9IHdpbmRvdy5tYXRjaE1l
ZGlhKCIoLXdlYmtpdC12aWV3LW1vZGU6IG1heGltaXplZCkiKTsKKworICAgICAgICAgICAgd2lu
ZG93ZWRRdWVyeS5hZGRMaXN0ZW5lcihjYWxsYmFjazEpOworICAgICAgICAgICAgZmxvYXRpbmdR
dWVyeS5hZGRMaXN0ZW5lcihjYWxsYmFjazEpOworICAgICAgICAgICAgbWluaW1pemVkUXVlcnku
YWRkTGlzdGVuZXIoY2FsbGJhY2sxKTsKKyAgICAgICAgICAgIG1heGltaXplZFF1ZXJ5LmFkZExp
c3RlbmVyKGNhbGxiYWNrMSk7CisKKyAgICAgICAgICAgIHdpbmRvd2VkUXVlcnkuYWRkTGlzdGVu
ZXIoY2FsbGJhY2syKTsKKyAgICAgICAgICAgIGZsb2F0aW5nUXVlcnkuYWRkTGlzdGVuZXIoY2Fs
bGJhY2syKTsKKyAgICAgICAgICAgIG1pbmltaXplZFF1ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNr
Mik7CisgICAgICAgICAgICBtYXhpbWl6ZWRRdWVyeS5hZGRMaXN0ZW5lcihjYWxsYmFjazIpOwor
CisgICAgICAgICAgICBzZXRUaW1lb3V0KCd3aW5kb3cubG9jYXRpb24gPSAiZGF0YTp0ZXh0L2h0
bWwsPHNjcmlwdD5oaXN0b3J5LmJhY2soKTwiICsgIi9zY3JpcHQ+IicsIDApOworCisgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAvLyBpZiB0aGlzIHBvaW50IGlzIHJlYWNoZWQgdGhlIHBh
Z2UgaXMgY29tbWluZyBmcm9tIHRoZSBwYWdlIGNhY2hlLgorCisgICAgICAgICAgICBsb2coIi0t
LS0tLS0tLS0tLS0gbWluaW1pemVkIC0tLS0tLS0tLS0tLS0iKTsKKyAgICAgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCJtaW5pbWl6ZWQiKTsKKyAg
ICAgICAgICAgIGxvZygiLS0tLS0tLS0tLS0tLSBtYXhpbWl6ZWQgLS0tLS0tLS0tLS0tLSIpOwor
ICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUo
Im1heGltaXplZCIpOworICAgICAgICAgICAgbG9nKCItLS0tLS0tLS0tLS0tIHdpbmRvd2VkIC0t
LS0tLS0tLS0tLS0iKTsKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFZpZXdN
b2RlTWVkaWFGZWF0dXJlKCJ3aW5kb3dlZCIpOworICAgICAgICAgICAgbG9nKCItLS0tLS0tLS0t
LS0tIGZsb2F0aW5nIC0tLS0tLS0tLS0tLS0iKTsKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCJmbG9hdGluZyIpOworCisgICAgICAgICAg
ICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KSBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7IH0sIDApOworCisgICAgICAgIH0K
KyAgICB9CisKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCJ3aW5kb3dlZCIp
OworICAgICAgICB3aW5kb3cub25wYWdlc2hvdyA9IHBhZ2VzaG93OworICAgIH0KKworPC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8cD5UZXN0IHRoZSBNZWRpYVF1ZXJ5TGlzdCBpbnRl
cmZhY2U6IDxhIGhyZWY9Imh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzc29tLXZpZXcvI3RoZS1t
ZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2UiIHRpdGxlPSJDU1NPTSBWaWV3IE1vZHVsZSI+aHR0cDov
L2Rldi53My5vcmcvY3Nzd2cvY3Nzb20tdmlldy8jdGhlLW1lZGlhcXVlcnlsaXN0LWludGVyZmFj
ZTwvYT4uPC9wPgorICAgIDxwPlRlc3RpbmcgcGFnZSBjYWNoZTwvcD4KKyAgICA8ZGl2IGlkPSJy
ZXN1bHRzIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA0N2UxMDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDUtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNyBAQAorVGVzdCB0aGUgTWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlOiBodHRwOi8vZGV2
LnczLm9yZy9jc3N3Zy9jc3NvbS12aWV3LyN0aGUtbWVkaWFxdWVyeWxpc3QtaW50ZXJmYWNlLgor
CitUZXN0aW5nIGxpc3RlbmVyIGNvbXBhcmlzb24uIFR3byBjYWxsYmFja3MgYXJlIGV4cGVjdGVk
LgorCitbMV0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFuZ2VkIHRv
IGZhbHNlCitbMl0gLSBxdWVyeSAoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSBjaGFuZ2Vk
IHRvIGZhbHNlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVl
cnktbGlzdC0wNS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0
LTA1Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmI2NmIwYQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0w
NS5odG1sCkBAIC0wLDAgKzEsNDcgQEAKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+VGVzdCBDU1NP
TSBWaWV3IG1vZHVsZTogTWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlPC90aXRsZT4KKzxzdHlsZSB0
eXBlPSJ0ZXh0L2NzcyI+CisKKzwvc3R5bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCIgY2hhcnNldD0idXRmLTgiPgorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworICAgIGZ1bmN0
aW9uIGxvZyhtKSB7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHRzJyku
aW5uZXJIVE1MICs9IG0gKyAnPGJyPic7CisgICAgfQorCisgICAgZnVuY3Rpb24gY2FsbGJhY2sx
KHF1ZXJ5KSB7CisgICAgICAgIGxvZygiWzFdIC0gcXVlcnkgIiArIHF1ZXJ5Lm1lZGlhICsgIiBj
aGFuZ2VkIHRvICIgKyAocXVlcnkubWF0Y2hlcyA/ICJ0cnVlIiA6ICJmYWxzZSIpKTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBjYWxsYmFjazIocXVlcnkpIHsKKyAgICAgICAgbG9nKCJbMl0gLSBx
dWVyeSAiICsgcXVlcnkubWVkaWEgKyAiIGNoYW5nZWQgdG8gIiArIChxdWVyeS5tYXRjaGVzID8g
InRydWUiIDogImZhbHNlIikpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3RzKCkKKyAg
ICB7CisgICAgICAgIGlmICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAg
ICAgcmV0dXJuOworCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFZpZXdNb2RlTWVk
aWFGZWF0dXJlKCJ3aW5kb3dlZCIpOworCisgICAgICAgIHZhciBxdWVyeSA9IHdpbmRvdy5tYXRj
aE1lZGlhKCIoLXdlYmtpdC12aWV3LW1vZGU6IHdpbmRvd2VkKSIpOworCisgICAgICAgIHF1ZXJ5
LmFkZExpc3RlbmVyKGNhbGxiYWNrMSk7CisgICAgICAgIHF1ZXJ5LmFkZExpc3RlbmVyKGNhbGxi
YWNrMSk7CisgICAgICAgIHF1ZXJ5LmFkZExpc3RlbmVyKGNhbGxiYWNrMik7CisKKyAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoIm1pbmltaXplZCIp
OworICAgIH0KKworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3RzKCki
PgorICAgIDxwPlRlc3QgdGhlIE1lZGlhUXVlcnlMaXN0IGludGVyZmFjZTogPGEgaHJlZj0iaHR0
cDovL2Rldi53My5vcmcvY3Nzd2cvY3Nzb20tdmlldy8jdGhlLW1lZGlhcXVlcnlsaXN0LWludGVy
ZmFjZSIgdGl0bGU9IkNTU09NIFZpZXcgTW9kdWxlIj5odHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9j
c3NvbS12aWV3LyN0aGUtbWVkaWFxdWVyeWxpc3QtaW50ZXJmYWNlPC9hPi48L3A+CisgICAgPHA+
VGVzdGluZyBsaXN0ZW5lciBjb21wYXJpc29uLiBUd28gY2FsbGJhY2tzIGFyZSBleHBlY3RlZC48
L3A+CisgICAgPGRpdiBpZD0icmVzdWx0cyI+CisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDYt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA2
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYzY1NDY1
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1s
aXN0LTA2LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK1Rlc3QgdGhlIE1lZGlhUXVlcnlM
aXN0IGludGVyZmFjZTogaHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3Nzb20tdmlldy8jdGhlLW1l
ZGlhcXVlcnlsaXN0LWludGVyZmFjZS4KKworVGVzdGluZyBxdWVyaWVzIHRoYXQgaGF2ZSBubyBy
ZWdpc3RlcmVkIGxpc3RlbmVyLgorCitRdWVyeSByZXN1bHQgYmVmb3JlIGNoYW5naW5nIHZpZXct
bW9kZTogdHJ1ZQorUXVlcnkgcmVzdWx0IGFmdGVyIGNoYW5naW5nIHZpZXctbW9kZTogZmFsc2UK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA2
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDYuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41OTEzZTU2Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA2Lmh0bWwKQEAg
LTAsMCArMSwzNiBAQAorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5UZXN0IENTU09NIFZpZXcgbW9k
dWxlOiBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U8L3RpdGxlPgorPHN0eWxlIHR5cGU9InRleHQv
Y3NzIj4KKworPC9zdHlsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0
PSJ1dGYtOCI+CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgICAgZnVuY3Rpb24gbG9nKG0p
IHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdHMnKS5pbm5lckhUTUwg
Kz0gbSArICc8YnI+JzsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0cygpCisgICAgewor
ICAgICAgICBpZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgIHJl
dHVybjsKKworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9kZU1lZGlhRmVh
dHVyZSgid2luZG93ZWQiKTsKKworICAgICAgICB2YXIgcXVlcnkgPSB3aW5kb3cubWF0Y2hNZWRp
YSgiKC13ZWJraXQtdmlldy1tb2RlOiB3aW5kb3dlZCkiKTsKKyAgICAgICAgbG9nKCdRdWVyeSBy
ZXN1bHQgYmVmb3JlIGNoYW5naW5nIHZpZXctbW9kZTogJyArIHF1ZXJ5Lm1hdGNoZXMpOworICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSgibWluaW1p
emVkIik7CisgICAgICAgIGxvZygnUXVlcnkgcmVzdWx0IGFmdGVyIGNoYW5naW5nIHZpZXctbW9k
ZTogJyArIHF1ZXJ5Lm1hdGNoZXMpOworICAgIH0KKworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eSBvbmxvYWQ9InJ1blRlc3RzKCkiPgorICAgIDxwPlRlc3QgdGhlIE1lZGlhUXVlcnlMaXN0IGlu
dGVyZmFjZTogPGEgaHJlZj0iaHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3Nzb20tdmlldy8jdGhl
LW1lZGlhcXVlcnlsaXN0LWludGVyZmFjZSIgdGl0bGU9IkNTU09NIFZpZXcgTW9kdWxlIj5odHRw
Oi8vZGV2LnczLm9yZy9jc3N3Zy9jc3NvbS12aWV3LyN0aGUtbWVkaWFxdWVyeWxpc3QtaW50ZXJm
YWNlPC9hPi48L3A+CisgICAgPHA+VGVzdGluZyBxdWVyaWVzIHRoYXQgaGF2ZSBubyByZWdpc3Rl
cmVkIGxpc3RlbmVyLjwvcD4KKyAgICA8ZGl2IGlkPSJyZXN1bHRzIj4KKyAgICA8L2Rpdj4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEt
cXVlcnktbGlzdC0wNy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlh
LXF1ZXJ5LWxpc3QtMDctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjhiMGU3ZjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlh
L21lZGlhLXF1ZXJ5LWxpc3QtMDctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorVGVzdCB0
aGUgTWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlOiBodHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9jc3Nv
bS12aWV3LyN0aGUtbWVkaWFxdWVyeWxpc3QtaW50ZXJmYWNlLgorCitJbnZhbGlkIGxpc3RlbmVy
cy4gVHdvIGNhbGxiYWNrcyBhcmUgZXhwZWN0ZWQuCisKK1sxXSAtIHF1ZXJ5ICgtd2Via2l0LXZp
ZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQgdG8gZmFsc2UKK1syXSAtIHF1ZXJ5ICgtd2Via2l0
LXZpZXctbW9kZTogd2luZG93ZWQpIGNoYW5nZWQgdG8gZmFsc2UKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA3Lmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi4wMzQ0MjYzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA3Lmh0bWwKQEAgLTAsMCArMSw0OSBAQAorPGh0
bWw+Cis8aGVhZD4KKzx0aXRsZT5UZXN0IENTU09NIFZpZXcgbW9kdWxlOiBNZWRpYVF1ZXJ5TGlz
dCBpbnRlcmZhY2U8L3RpdGxlPgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKworPC9zdHlsZT4K
KzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CisgICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOworCisgICAgZnVuY3Rpb24gbG9nKG0pIHsKKyAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdHMnKS5pbm5lckhUTUwgKz0gbSArICc8YnI+JzsKKyAg
ICB9CisKKyAgICBmdW5jdGlvbiBjYWxsYmFjazEocXVlcnkpIHsKKyAgICAgICAgbG9nKCJbMV0g
LSBxdWVyeSAiICsgcXVlcnkubWVkaWEgKyAiIGNoYW5nZWQgdG8gIiArIChxdWVyeS5tYXRjaGVz
ID8gInRydWUiIDogImZhbHNlIikpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNhbGxiYWNrMihx
dWVyeSkgeworICAgICAgICBsb2coIlsyXSAtIHF1ZXJ5ICIgKyBxdWVyeS5tZWRpYSArICIgY2hh
bmdlZCB0byAiICsgKHF1ZXJ5Lm1hdGNoZXMgPyAidHJ1ZSIgOiAiZmFsc2UiKSk7CisgICAgfQor
CisgICAgZnVuY3Rpb24gcnVuVGVzdHMoKQorICAgIHsKKyAgICAgICAgaWYgKCF3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoIndpbmRvd2VkIik7CisKKyAg
ICAgICAgdmFyIHF1ZXJ5ID0gd2luZG93Lm1hdGNoTWVkaWEoIigtd2Via2l0LXZpZXctbW9kZTog
d2luZG93ZWQpIik7CisKKyAgICAgICAgcXVlcnkuYWRkTGlzdGVuZXIoY2FsbGJhY2sxKTsKKyAg
ICAgICAgcXVlcnkuYWRkTGlzdGVuZXIoNSk7CisgICAgICAgIHF1ZXJ5LmFkZExpc3RlbmVyKCdj
aW5jbycpOworICAgICAgICBxdWVyeS5hZGRMaXN0ZW5lcihbMSwyXSk7CisgICAgICAgIHF1ZXJ5
LmFkZExpc3RlbmVyKGNhbGxiYWNrMik7CisKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
c2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoIm1pbmltaXplZCIpOworICAgIH0KKworPC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3RzKCkiPgorICAgIDxwPlRlc3QgdGhlIE1l
ZGlhUXVlcnlMaXN0IGludGVyZmFjZTogPGEgaHJlZj0iaHR0cDovL2Rldi53My5vcmcvY3Nzd2cv
Y3Nzb20tdmlldy8jdGhlLW1lZGlhcXVlcnlsaXN0LWludGVyZmFjZSIgdGl0bGU9IkNTU09NIFZp
ZXcgTW9kdWxlIj5odHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9jc3NvbS12aWV3LyN0aGUtbWVkaWFx
dWVyeWxpc3QtaW50ZXJmYWNlPC9hPi48L3A+CisgICAgPHA+SW52YWxpZCBsaXN0ZW5lcnMuIFR3
byBjYWxsYmFja3MgYXJlIGV4cGVjdGVkLjwvcD4KKyAgICA8ZGl2IGlkPSJyZXN1bHRzIj4KKyAg
ICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAppbmRleCAzNjFhM2I2Li4wZDI3ODhmIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9u
cy50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlv
bnMudHh0CkBAIC0yMjQ3LDggKzIyNDcsMTQgQEAgQlVHMzg1NzggOiBwbHVnaW5zL292ZXJyaWRl
LW5vZGUtbWV0aG9kLmh0bWwgPSBURVhUCiAvLyBOZWVkcyBsYXlvdXRUZXN0Q29udHJvbGxlci5z
ZXRNZWRpYVR5cGUoKSAoaW1wbGVtZW50ZWQgb24gUXQgb25seSkKIEJVRzM4NjU2IDogZmFzdC9t
ZWRpYS9wcmludC1yZXN0b3Jlcy1wcmV2aW91cy1tZWRpYXR5cGUuaHRtbCA9IFRFWFQKIAotLy8g
TmVlZHMgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoKSAoaW1w
bGVtZW50ZWQgb24gUXQgb25seSkKKy8vIE5lZWRzIGxheW91dFRlc3RDb250cm9sbGVyLnNldFZp
ZXdNb2RlTWVkaWFGZWF0dXJlKCkKIEJVRzQwNjgwIFNLSVAgOiBmYXN0L21lZGlhL3ZpZXctbW9k
ZS1tZWRpYS1mZWF0dXJlLmh0bWwgPSBGQUlMCitCVUc0MDY4MCBTS0lQIDogZmFzdC9tZWRpYS9t
ZWRpYS1xdWVyeS1saXN0LTAyLmh0bWwgPSBGQUlMCitCVUc0MDY4MCBTS0lQIDogZmFzdC9tZWRp
YS9tZWRpYS1xdWVyeS1saXN0LTAzLmh0bWwgPSBGQUlMCitCVUc0MDY4MCBTS0lQIDogZmFzdC9t
ZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA0Lmh0bWwgPSBGQUlMCitCVUc0MDY4MCBTS0lQIDogZmFz
dC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA1Lmh0bWwgPSBGQUlMCitCVUc0MDY4MCBTS0lQIDog
ZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA2Lmh0bWwgPSBGQUlMCitCVUc0MDY4MCBTS0lQ
IDogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA3Lmh0bWwgPSBGQUlMCiAKIC8vIFVua25v
d24gZmxha2luZXNzLgogQlVHMzg3MDYgOiBzdmcvY3VzdG9tL2RlZXAtZHluYW1pYy11cGRhdGVz
LnN2ZyA9IElNQUdFK1RFWFQgSU1BR0UgUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAppbmRl
eCA1YTcyZDNiLi5mZTlkN2VlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
U2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZApAQCAtMTI0LDgg
KzEyNCwxNCBAQCBodHRwL3Rlc3RzL3BsdWdpbnMvcGx1Z2luLWRvY3VtZW50LWhhcy1mb2N1cy5o
dG1sCiAjIE1pc3NlcyBzZXRNZWRpYVR5cGUoKSBhbmQgaW1wbGVtZW50YXRpb24KIGZhc3QvbWVk
aWEvcHJpbnQtcmVzdG9yZXMtcHJldmlvdXMtbWVkaWF0eXBlLmh0bWwKIAotIyB2aWV3IG1vZGUg
bWVkaWEgZmVhdHVyZQorIyBOZWVkcyBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9kZU1l
ZGlhRmVhdHVyZSgpCiBmYXN0L21lZGlhL3ZpZXctbW9kZS1tZWRpYS1mZWF0dXJlLmh0bWwKK2Zh
c3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMi5odG1sCitmYXN0L21lZGlhL21lZGlhLXF1ZXJ5
LWxpc3QtMDMuaHRtbAorZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA0Lmh0bWwKK2Zhc3Qv
bWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNS5odG1sCitmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxp
c3QtMDYuaHRtbAorZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA3Lmh0bWwKIAogIyBUZXN0
IGlzIGZsYWt5IGFuZCB0aHVzIG5vdCB1c2VmdWwgdW50aWwgZml4ZWQuCiAjIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNjY0MgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBl
ZAppbmRleCBiNTEwNTJlLi41MGMxOGZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93aW4vU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApAQCAt
ODkyLDYgKzg5MiwxMiBAQCBmYXN0L2Zvcm1zL2Zvcm0tYXR0cmlidXRlLmh0bWwKIAogIyB2aWV3
IG1vZGUgbWVkaWEgZmVhdHVyZQogZmFzdC9tZWRpYS92aWV3LW1vZGUtbWVkaWEtZmVhdHVyZS5o
dG1sCitmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDIuaHRtbAorZmFzdC9tZWRpYS9tZWRp
YS1xdWVyeS1saXN0LTAzLmh0bWwKK2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNC5odG1s
CitmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDUuaHRtbAorZmFzdC9tZWRpYS9tZWRpYS1x
dWVyeS1saXN0LTA2Lmh0bWwKK2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNy5odG1sCiAK
ICMgTmVlZCBleHBlY3RhdGlvbnMuIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MzY0NjEKIGZhc3QvcmVwYWludC9vdmVyZmxvdy1zY3JvbGwtYm9keS1hcHBlYXIu
aHRtbApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQKaW5kZXggM2ZiYzdiNS4uZjM5NTU2ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAorKysgYi9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMjgsNiArMTI4LDcg
QEAgU0VUKFdlYkNvcmVfSURMX0ZJTEVTCiAgICAgY3NzL0NTU1ZhbHVlLmlkbAogICAgIGNzcy9D
U1NWYWx1ZUxpc3QuaWRsCiAgICAgY3NzL01lZGlhTGlzdC5pZGwKKyAgICBjc3MvTWVkaWFRdWVy
eUxpc3QuaWRsCiAgICAgY3NzL1JlY3QuaWRsCiAgICAgY3NzL1JHQkNvbG9yLmlkbAogICAgIGNz
cy9TdHlsZU1lZGlhLmlkbApAQCAtNzY1LDYgKzc2Niw5IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMK
ICAgICBjc3MvTWVkaWFRdWVyeS5jcHAKICAgICBjc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAK
ICAgICBjc3MvTWVkaWFRdWVyeUV4cC5jcHAKKyAgICBjc3MvTWVkaWFRdWVyeUxpc3QuY3BwCisg
ICAgY3NzL01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCisgICAgY3NzL01lZGlhUXVlcnlNYXRj
aGVyLmNwcAogICAgIGNzcy9SR0JDb2xvci5jcHAKICAgICBjc3MvU2hhZG93VmFsdWUuY3BwCiAg
ICAgY3NzL1N0eWxlQmFzZS5jcHAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggM2FjYTBjMy4uOTMzNzE5ZSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4OSBAQAorMjAx
MC0xMC0yMSAgTHVpeiBBZ29zdGluaSAgPGx1aXouYWdvc3RpbmlAb3BlbmJvc3NhLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQg
Q1NTT00gVmlldyBtYXRjaE1lZGlhIGludGVyZmFjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzcyMDUKKworICAgICAgICBOZXcgaW50ZXJmYWNlcyBt
YXkgYmUgdXNlZCB0byBldmFsdWF0ZSBtZWRpYSBxdWVyaWVzIGFuZCB0byBhc3NvY2lhdGUgbGlz
dGVuZXJzCisgICAgICAgIHRvIG1lZGlhIHF1ZXJpZXMuIFRob3NlIGxpc3RlbmVycyBhcmUgY2Fs
bGVkIHdoZW5ldmVyIHRoZSBhc3NvY2lhdGVkIHF1ZXJ5IGNoYW5nZXMuCisgICAgICAgIFNwZWNp
ZmljYXRpb24gbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzc29tLXZp
ZXcvI3RoZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2UKKworICAgICAgICBvcGVyYXRvcj09IGFk
ZGVkIHRvIEpTIHZlcnNpb24gb2YgU2NyaXB0VmFsdWUuCisgICAgICAgIE1ldGhvZCBpc0Z1bmN0
aW9uIGFkZGVkIHRvIEpTIGFuZCBWOCB2ZXJzaW9ucyBvZiBTY3JpcHRWYWx1ZS4KKworICAgICAg
ICAqIGJpbmRpbmdzL2pzL1NjcmlwdFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlw
dFZhbHVlOjppc0Z1bmN0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRWYWx1ZS5o
OgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0VmFsdWU6Om9wZXJhdG9yPT0pOgorICAgICAgICAq
IGJpbmRpbmdzL3Y4L1NjcmlwdFZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRWYWx1
ZTo6aXNGdW5jdGlvbik6CisKKyAgICAgICAgU29tZSBjaGFuZ2VzIHdlcmUgbmVlZGVkIHRvIHRo
ZSBjb2RlIGdlbmVyYXRvcnMgdG8gaGFuZGxlIHR5cGUgTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci4K
KworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG06Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06CisKKyAgICAgICAgU29tZSBjaGFu
Z2VzIHRvIHRoZSBiaW5kaW5ncyB0ZXN0IHJlc3VsdHMgdGhhdCB3ZXJlIHByZXZpb3VzbHkgYWRk
ZWQuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01U
ZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
UHJvdG90eXBlRnVuY3Rpb25NZXRob2QpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9WOC9WOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVySW50ZXJuYWw6Om1ldGhvZENhbGxiYWNrKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbmZpZ3VyZVY4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJUZW1w
bGF0ZSk6CisKKyAgICAgICAgTmV3IGludGVyZmFjZXM6CisKKyAgICAgICAgKiBjc3MvTWVkaWFR
dWVyeUxpc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUxpc3QuaDogQWRk
ZWQuCisgICAgICAgICogY3NzL01lZGlhUXVlcnlMaXN0LmlkbDogQWRkZWQuCisKKyAgICAgICAg
KiBjc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHA6IEFkZGVkLgorICAgICAgICAqIGNzcy9N
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmg6IEFkZGVkLgorICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyLmlkbDogQWRkZWQuCisKKyAgICAgICAgVG8gYXZvaWQgYWRkaW5nIGNvZGUg
dG8gY2xhc3NlcyBET01XaW5kb3cgYW5kIERvY3VtZW50IGEgbmV3IGNsYXNzIE1lZGlhUXVlcnlN
YXRjaGVyIHdhcyBjcmVhdGVkLgorCisgICAgICAgICogY3NzL01lZGlhUXVlcnlNYXRjaGVyLmNw
cDogQWRkZWQuCisgICAgICAgICogY3NzL01lZGlhUXVlcnlNYXRjaGVyLmg6IEFkZGVkLgorCisg
ICAgICAgIERvY3VtZW50IGFuZCBET01XaW5kb3cgaGF2ZSBjaGFuZ2VkIHRvIHN1cHBvcnQgbmV3
IGZlYXR1cmVzLiBET01XaW5kb3cgaXMgdGhlIGNsYXNzIHRoYXQKKyAgICAgICAgcHVibGlzaGVz
IG1ldGhvZHMgbWF0Y2hNZWRpYSBidXQgZm9yIHBhZ2UgY2FjaGUgdG8gd29yayBwcm9wZXJseSAg
dGhlIHJlZmVyZW5jZSB0byB0aGUKKyAgICAgICAgTWVkaWFRdWVyeU1hdGNoZXIgbXVzdCBiZSBp
biBEb2N1bWVudC4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudDo6fkRvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpt
ZWRpYVF1ZXJ5TWF0Y2hlcik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c3R5bGVTZWxl
Y3RvckNoYW5nZWQpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIHBhZ2Uv
RE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6bWF0Y2hNZWRpYSk6
CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaDoKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5p
ZGw6CisKKyAgICAgICAgQnVpbGQgc3lzdGVtcworCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5h
bToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5wcmk6CisgICAg
ICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIGJpbmRpbmdzL2dvYmplY3QvR05VbWFrZWZpbGUuYW06CisKKyAgICAgICAgVGVzdHM6IGZh
c3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wMS5odG1sCisgICAgICAgICAgICAgICBmYXN0L21l
ZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9tZWRpYS9t
ZWRpYS1xdWVyeS1saXN0LTAzLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvbWVkaWEvbWVkaWEt
cXVlcnktbGlzdC0wNC5odG1sCisgICAgICAgICAgICAgICBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5
LWxpc3QtMDUuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0
LTA2Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNy5o
dG1sCisKIDIwMTAtMTEtMTkgIFcuIEphbWVzIE1hY0xlYW4gIDx3am1hY2xlYW5AY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEphbWVzIFJvYmluc29uLgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
CmluZGV4IDc5M2UxNTUuLjViMGZiMDkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQorKysgYi9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTI2OCw2ICsyNjgs
OCBAQCBET01fQ0xBU1NFUyA9IFwKICAgICBMb2NhdGlvbiBcCiAgICAgTWVkaWFFcnJvciBcCiAg
ICAgTWVkaWFMaXN0IFwKKyAgICBNZWRpYVF1ZXJ5TGlzdCBcCisgICAgTWVkaWFRdWVyeUxpc3RM
aXN0ZW5lciBcCiAgICAgTWVtb3J5SW5mbyBcCiAgICAgTWVzc2FnZUNoYW5uZWwgXAogICAgIE1l
c3NhZ2VFdmVudCBcCkBAIC01MDIsNyArNTA0LDcgQEAgRE9NX0NMQVNTRVMgPSBcCiAKIC5QSE9O
WSA6IGFsbAogCi1KU19ET01fSEVBREVSUz0kKGZpbHRlci1vdXQgSlNFdmVudExpc3RlbmVyLmgg
SlNFdmVudFRhcmdldC5oLCQoRE9NX0NMQVNTRVM6JT1KUyUuaCkpCitKU19ET01fSEVBREVSUz0k
KGZpbHRlci1vdXQgSlNNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggSlNFdmVudExpc3RlbmVyLmgg
SlNFdmVudFRhcmdldC5oLCQoRE9NX0NMQVNTRVM6JT1KUyUuaCkpCiAKIFdFQl9ET01fSEVBREVS
UyA6PQogaWZlcSAoJChmaW5kc3RyaW5nIEJVSUxESU5HX1dYLCQoRkVBVFVSRV9ERUZJTkVTKSks
IEJVSUxESU5HX1dYKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNv
cmUvR05VbWFrZWZpbGUuYW0KaW5kZXggZThlYjM4Ni4uNWY1Nzc2MCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC00Mjks
NiArNDI5LDggQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTTWVkaWFFcnJvci5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFM
aXN0LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhTGlzdC5oIFwKKwlEZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFRdWVyeUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTTWVkaWFRdWVyeUxpc3QuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U01lbW9yeUluZm8uY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVtb3J5SW5mby5o
IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVzc2FnZUNoYW5uZWwuY3BwIFwKQEAgLTk5
MiwxMSArOTk0LDE3IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9jc3MvTWVkaWFM
aXN0LmNwcCBcCiAJV2ViQ29yZS9jc3MvTWVkaWFMaXN0LmggXAogCVdlYkNvcmUvY3NzL01lZGlh
UXVlcnkuY3BwIFwKKwlXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5LmggXAogCVdlYkNvcmUvY3NzL01l
ZGlhUXVlcnlFdmFsdWF0b3IuY3BwIFwKIAlXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9y
LmggXAogCVdlYkNvcmUvY3NzL01lZGlhUXVlcnlFeHAuY3BwIFwKIAlXZWJDb3JlL2Nzcy9NZWRp
YVF1ZXJ5RXhwLmggXAotCVdlYkNvcmUvY3NzL01lZGlhUXVlcnkuaCBcCisJV2ViQ29yZS9jc3Mv
TWVkaWFRdWVyeUxpc3QuY3BwIFwKKwlXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdC5oIFwKKwlX
ZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcCBcCisJV2ViQ29yZS9jc3MvTWVk
aWFRdWVyeUxpc3RMaXN0ZW5lci5oIFwKKwlXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TWF0Y2hlci5j
cHAgXAorCVdlYkNvcmUvY3NzL01lZGlhUXVlcnlNYXRjaGVyLmggXAogCVdlYkNvcmUvY3NzL1Bh
aXIuaCBcCiAJV2ViQ29yZS9jc3MvUmVjdC5oIFwKIAlXZWJDb3JlL2Nzcy9SR0JDb2xvci5jcHAg
XApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lw
aQppbmRleCBhZjc4MmE2Li4wMDExNTE2IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aQorKysgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMTcsNiArMTcsNyBAQAogICAgICAgICAg
ICAgJ2Nzcy9DU1NWYWx1ZUxpc3QuaWRsJywKICAgICAgICAgICAgICdjc3MvQ291bnRlci5pZGwn
LAogICAgICAgICAgICAgJ2Nzcy9NZWRpYUxpc3QuaWRsJywKKyAgICAgICAgICAgICdjc3MvTWVk
aWFRdWVyeUxpc3QuaWRsJywKICAgICAgICAgICAgICdjc3MvUmVjdC5pZGwnLAogICAgICAgICAg
ICAgJ2Nzcy9SR0JDb2xvci5pZGwnLAogICAgICAgICAgICAgJ2Nzcy9TdHlsZU1lZGlhLmlkbCcs
CkBAIC0xMDU4LDExICsxMDU5LDE3IEBACiAgICAgICAgICAgICAnY3NzL01lZGlhTGlzdC5jcHAn
LAogICAgICAgICAgICAgJ2Nzcy9NZWRpYUxpc3QuaCcsCiAgICAgICAgICAgICAnY3NzL01lZGlh
UXVlcnkuY3BwJywKKyAgICAgICAgICAgICdjc3MvTWVkaWFRdWVyeS5oJywKICAgICAgICAgICAg
ICdjc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAnLAogICAgICAgICAgICAgJ2Nzcy9NZWRpYVF1
ZXJ5RXZhbHVhdG9yLmgnLAogICAgICAgICAgICAgJ2Nzcy9NZWRpYVF1ZXJ5RXhwLmNwcCcsCiAg
ICAgICAgICAgICAnY3NzL01lZGlhUXVlcnlFeHAuaCcsCi0gICAgICAgICAgICAnY3NzL01lZGlh
UXVlcnkuaCcsCisgICAgICAgICAgICAnY3NzL01lZGlhUXVlcnlMaXN0LmNwcCcsCisgICAgICAg
ICAgICAnY3NzL01lZGlhUXVlcnlMaXN0LmgnLAorICAgICAgICAgICAgJ2Nzcy9NZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyLmNwcCcsCisgICAgICAgICAgICAnY3NzL01lZGlhUXVlcnlMaXN0TGlzdGVu
ZXIuaCcsCisgICAgICAgICAgICAnY3NzL01lZGlhUXVlcnlNYXRjaGVyLmNwcCcsCisgICAgICAg
ICAgICAnY3NzL01lZGlhUXVlcnlNYXRjaGVyLmgnLAogICAgICAgICAgICAgJ2Nzcy9QYWlyLmgn
LAogICAgICAgICAgICAgJ2Nzcy9SZWN0LmgnLAogICAgICAgICAgICAgJ2Nzcy9SR0JDb2xvci5j
cHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnByaSBiL1dlYkNvcmUvV2ViQ29yZS5w
cmkKaW5kZXggZWMyMTNkNi4uZmE3M2NhNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBy
aQorKysgYi9XZWJDb3JlL1dlYkNvcmUucHJpCkBAIC04NCw2ICs4NCw3IEBAIElETF9CSU5ESU5H
UyArPSBcCiAgICAgY3NzL0NTU1ZhbHVlLmlkbCBcCiAgICAgY3NzL0NTU1ZhbHVlTGlzdC5pZGwg
XAogICAgIGNzcy9NZWRpYUxpc3QuaWRsIFwKKyAgICBjc3MvTWVkaWFRdWVyeUxpc3QuaWRsIFwK
ICAgICBjc3MvUmVjdC5pZGwgXAogICAgIGNzcy9SR0JDb2xvci5pZGwgXAogICAgIGNzcy9TdHls
ZU1lZGlhLmlkbCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvV2ViQ29yZS9X
ZWJDb3JlLnBybwppbmRleCA2NzE0ODkzLi44NjQ4NjUwIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dl
YkNvcmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTY1NCw2ICs2NTQsOSBAQCBT
T1VSQ0VTICs9IFwKICAgICBjc3MvTWVkaWFRdWVyeS5jcHAgXAogICAgIGNzcy9NZWRpYVF1ZXJ5
RXZhbHVhdG9yLmNwcCBcCiAgICAgY3NzL01lZGlhUXVlcnlFeHAuY3BwIFwKKyAgICBjc3MvTWVk
aWFRdWVyeUxpc3QuY3BwIFwKKyAgICBjc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgXAor
ICAgIGNzcy9NZWRpYVF1ZXJ5TWF0Y2hlci5jcHAgXAogICAgIGNzcy9SR0JDb2xvci5jcHAgXAog
ICAgIGNzcy9TaGFkb3dWYWx1ZS5jcHAgXAogICAgIGNzcy9TdHlsZUJhc2UuY3BwIFwKQEAgLTE1
NjYsOSArMTU2OSwxMiBAQCBIRUFERVJTICs9IFwKICAgICBjc3MvRm9udFZhbHVlLmggXAogICAg
IGNzcy9NZWRpYUZlYXR1cmVOYW1lcy5oIFwKICAgICBjc3MvTWVkaWFMaXN0LmggXAorICAgIGNz
cy9NZWRpYVF1ZXJ5LmggXAogICAgIGNzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmggXAogICAgIGNz
cy9NZWRpYVF1ZXJ5RXhwLmggXAotICAgIGNzcy9NZWRpYVF1ZXJ5LmggXAorICAgIGNzcy9NZWRp
YVF1ZXJ5TGlzdC5oIFwKKyAgICBjc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oIFwKKyAgICBj
c3MvTWVkaWFRdWVyeU1hdGNoZXIuaCBcCiAgICAgY3NzL1JHQkNvbG9yLmggXAogICAgIGNzcy9T
aGFkb3dWYWx1ZS5oIFwKICAgICBjc3MvU3R5bGVCYXNlLmggXApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2oKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQppbmRleCA5Y2Nl
NmJiLi41MTllMzM2Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
KysrIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtOTg1MSw2ICs5
ODUxLDYyIEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBh
dGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNc
SlNNZWRpYVF1ZXJ5TGlzdC5jcHAiDQorCQkJCT4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQor
CQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0K
KwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJ
CQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9u
DQorCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
DQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24NCisJCQkJCU5hbWU9IkRlYnVnX0ludGVybmFsfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvfFdpbjMyIg0KKwkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5h
bWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
Pg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm98V2lu
MzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29s
DQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdf
QWxsfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJ
CQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2
ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJj
ZXNcSlNNZWRpYVF1ZXJ5TGlzdC5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQog
CQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxE
ZXJpdmVkU291cmNlc1xKU0tleWJvYXJkRXZlbnQuY3BwIg0KIAkJCQk+DQogCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbg0KQEAgLTMwNTUxLDYgKzMwNjA3LDMwIEBACiAJCQkJPg0KIAkJCTwvRmlsZT4N
CiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xNZWRpYVF1ZXJ5TGlzdC5jcHAi
DQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxj
c3NcTWVkaWFRdWVyeUxpc3QuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcCINCisJCQkJ
Pg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxjc3NcTWVkaWFRdWVyeU1hdGNoZXIuY3BwIg0KKwkJCQk+DQor
CQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cY3NzXE1lZGlhUXVl
cnlNYXRjaGVyLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRp
dmVQYXRoPSIuLlxjc3NcUGFpci5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYzMyNjZhMS4uODUzMWQ3NCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTUzMTMsOCArNTMx
MywxNiBAQAogCQlEMjNDQTU1RDBBQjBFQUFFMDA1MTA4QTUgLyogSlNSYW5nZUV4Y2VwdGlvbi5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDIzQ0E1NUMw
QUIwRUFBRTAwNTEwOEE1IC8qIEpTUmFuZ2VFeGNlcHRpb24uaCAqLzsgfTsKIAkJRDIzQ0E1NUYw
QUIwRUFCNjAwNTEwOEE1IC8qIEpTUmFuZ2VFeGNlcHRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDIzQ0E1NUUwQUIwRUFCNjAwNTEwOEE1IC8q
IEpTUmFuZ2VFeGNlcHRpb24uY3BwICovOyB9OwogCQlEMjNDQTU2QzBBQjBFQjhEMDA1MTA4QTUg
LyogUmFuZ2VFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEQyM0NBNTZCMEFCMEVCOEQwMDUxMDhBNSAvKiBSYW5nZUV4Y2VwdGlvbi5oICov
OyB9OworCQlEMzQwNjI5QjEyNTNCQzhDMDA5RTQyNTkgLyogTWVkaWFRdWVyeUxpc3RMaXN0ZW5l
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMzQw
NjI5QTEyNTNCQzhDMDA5RTQyNTkgLyogTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgKi87IH07
CiAJCUQzOUQwMDZEMTFGOEUzMDgwMDYwNDFGMiAvKiBQb3B1cE1lbnVNYWMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzOUQwMDZDMTFGOEUzMDgwMDYw
NDFGMiAvKiBQb3B1cE1lbnVNYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlEMzlEMDA5RDExRjkwN0U2MDA2MDQxRjIgLyogU2VhcmNoUG9wdXBN
ZW51TWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBE
MzlEMDA5QzExRjkwN0U2MDA2MDQxRjIgLyogU2VhcmNoUG9wdXBNZW51TWFjLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRDNBOTRBMzgxMjJEQUJB
QzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQTk0QTMxMTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1
ZXJ5TGlzdC5jcHAgKi87IH07CisJCUQzQTk0QTM5MTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1
ZXJ5TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RDNBOTRBMzIxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0LmggKi87IH07CisJCUQz
QTk0QTNCMTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0E5NEEzNDEyMkRBQkFD
MDBBMzdCQkMgLyogTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oICovOyB9OworCQlEM0E5NEE0NjEy
MkRDNDBGMDBBMzdCQkMgLyogSlNNZWRpYVF1ZXJ5TGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0E5NEE0MjEyMkRDNDBGMDBBMzdCQkMgLyog
SlNNZWRpYVF1ZXJ5TGlzdC5jcHAgKi87IH07CisJCUQzQTk0QTQ3MTIyREM0MEYwMEEzN0JCQyAv
KiBKU01lZGlhUXVlcnlMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBEM0E5NEE0MzEyMkRDNDBGMDBBMzdCQkMgLyogSlNNZWRpYVF1ZXJ5TGlzdC5o
ICovOyB9OworCQlEM0FBMTBGMzEyM0E5OEFBMDA5MjE1MkIgLyogTWVkaWFRdWVyeU1hdGNoZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNBQTEw
RjExMjNBOThBQTAwOTIxNTJCIC8qIE1lZGlhUXVlcnlNYXRjaGVyLmNwcCAqLzsgfTsKKwkJRDNB
QTEwRjQxMjNBOThBQTAwOTIxNTJCIC8qIE1lZGlhUXVlcnlNYXRjaGVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0FBMTBGMjEyM0E5OEFBMDA5MjE1
MkIgLyogTWVkaWFRdWVyeU1hdGNoZXIuaCAqLzsgfTsKIAkJRDhCNjE1MkYxMDMyNDk1MTAwQzg1
NTRBIC8qIENvb2tpZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRDhCNjE1MkUxMDMyNDk1MTAwQzg1NTRBIC8qIENvb2tpZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCURCMjNDMkNCMEE1MDhEMjkwMDI0
ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQjIzQzJDOTBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50
T3V0ZGVudENvbW1hbmQuY3BwICovOyB9OwogCQlEQjIzQzJDQzBBNTA4RDI5MDAyNDg5RUIgLyog
SW5kZW50T3V0ZGVudENvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IERCMjNDMkNBMEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29t
bWFuZC5oICovOyB9OwpAQCAtMTEzNjMsOCArMTEzNzEsMTggQEAKIAkJRDIzQ0E1NUMwQUIwRUFB
RTAwNTEwOEE1IC8qIEpTUmFuZ2VFeGNlcHRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEpTUmFuZ2VFeGNlcHRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRDIzQ0E1NUUwQUIwRUFCNjAwNTEwOEE1IC8qIEpTUmFuZ2VFeGNlcHRpb24uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUmFuZ2VFeGNlcHRpb24uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMjNDQTU2QjBBQjBFQjhEMDA1MTA4QTUgLyog
UmFuZ2VFeGNlcHRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJhbmdl
RXhjZXB0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQzNDA2MjlBMTI1M0JD
OEMwMDlFNDI1OSAvKiBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlEMzlEMDA2QzExRjhFMzA4MDA2MDQxRjIgLyogUG9wdXBN
ZW51TWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBvcHVwTWVudU1hYy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMzlEMDA5QzExRjkwN0U2MDA2MDQxRjIg
LyogU2VhcmNoUG9wdXBNZW51TWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNlYXJjaFBvcHVwTWVudU1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEM0E5
NEEzMTEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeUxpc3QuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFRdWVyeUxpc3QuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlEM0E5NEEzMjEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeUxp
c3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFRdWVyeUxpc3QuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDNBOTRBMzMxMjJEQUJBQzAwQTM3QkJDIC8q
IE1lZGlhUXVlcnlMaXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYVF1ZXJ5TGlz
dC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQzQTk0QTM0MTIyREFCQUMwMEEz
N0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRDNBOTRBMzUxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEM0E5NEE0MjEyMkRDNDBGMDBBMzdCQkMg
LyogSlNNZWRpYVF1ZXJ5TGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU01lZGlhUXVlcnlMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RDNBOTRBNDMxMjJEQzQwRjAwQTM3QkJDIC8qIEpTTWVkaWFRdWVyeUxpc3QuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNZWRpYVF1ZXJ5TGlzdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlEM0FBMTBGMTEyM0E5OEFBMDA5MjE1MkIgLyogTWVkaWFRdWVyeU1h
dGNoZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFRdWVy
eU1hdGNoZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEM0FBMTBGMjEyM0E5
OEFBMDA5MjE1MkIgLyogTWVkaWFRdWVyeU1hdGNoZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTWVkaWFRdWVyeU1hdGNoZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRDhCNjE1MkUxMDMyNDk1MTAwQzg1NTRBIC8qIENvb2tpZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBDb29raWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJREIyM0MyQzkwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmRlbnRPdXRkZW50Q29tbWFu
ZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURCMjNDMkNBMEE1MDhEMjkwMDI0
ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSW5kZW50T3V0ZGVudENvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTE1Nzc0LDYgKzE1NzkyLDggQEAKIAkJCQlBOEQwNUZBOTBBMjNCMzBGMDA1RTcyMDMg
LyogSlNDU1NWYWx1ZUxpc3QuY3BwICovLAogCQkJCUE4RDA1RkFBMEEyM0IzMEYwMDVFNzIwMyAv
KiBKU0NTU1ZhbHVlTGlzdC5oICovLAogCQkJCUJDM0MzOUI0MEMwRDNEOEQwMDVGNEQ3QSAvKiBK
U01lZGlhTGlzdC5jcHAgKi8sCisJCQkJRDNBOTRBNDIxMjJEQzQwRjAwQTM3QkJDIC8qIEpTTWVk
aWFRdWVyeUxpc3QuY3BwICovLAorCQkJCUQzQTk0QTQzMTIyREM0MEYwMEEzN0JCQyAvKiBKU01l
ZGlhUXVlcnlMaXN0LmggKi8sCiAJCQkJQkMzQzM5QjUwQzBEM0Q4RDAwNUY0RDdBIC8qIEpTTWVk
aWFMaXN0LmggKi8sCiAJCQkJQkNGRTJGMEYwQzFCNTgzNzAwMjAyMzVGIC8qIEpTUmVjdC5jcHAg
Ki8sCiAJCQkJQkNGRTJGMTAwQzFCNTgzNzAwMjAyMzVGIC8qIEpTUmVjdC5oICovLApAQCAtMTc3
NjMsNiArMTc3ODMsMTQgQEAKIAkJCQk0RTE5NTkyNjBBMzlEQUNDMDAyMjBGRTUgLyogTWVkaWFR
dWVyeUV2YWx1YXRvci5oICovLAogCQkJCTRFMTk1OTI3MEEzOURBQ0MwMDIyMEZFNSAvKiBNZWRp
YVF1ZXJ5RXhwLmNwcCAqLywKIAkJCQk0RTE5NTkyODBBMzlEQUNDMDAyMjBGRTUgLyogTWVkaWFR
dWVyeUV4cC5oICovLAorCQkJCUQzQTk0QTMxMTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5
TGlzdC5jcHAgKi8sCisJCQkJRDNBOTRBMzIxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlM
aXN0LmggKi8sCisJCQkJRDNBOTRBMzMxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0
LmlkbCAqLywKKwkJCQlEM0E5NEEzNDEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeUxpc3RM
aXN0ZW5lci5oICovLAorCQkJCUQzNDA2MjlBMTI1M0JDOEMwMDlFNDI1OSAvKiBNZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyLmNwcCAqLywKKwkJCQlEM0E5NEEzNTEyMkRBQkFDMDBBMzdCQkMgLyogTWVk
aWFRdWVyeUxpc3RMaXN0ZW5lci5pZGwgKi8sCisJCQkJRDNBQTEwRjExMjNBOThBQTAwOTIxNTJC
IC8qIE1lZGlhUXVlcnlNYXRjaGVyLmNwcCAqLywKKwkJCQlEM0FBMTBGMjEyM0E5OEFBMDA5MjE1
MkIgLyogTWVkaWFRdWVyeU1hdGNoZXIuaCAqLywKIAkJCQlBODBFNkNEMTBBMTk4OUNBMDA3RkI4
QzUgLyogUGFpci5oICovLAogCQkJCTkzQ0E0QzlGMDlERjkzRkEwMERGODY3NyAvKiBxdWlya3Mu
Y3NzICovLAogCQkJCUJDNDM2OEU3MEMyMjZFMzIwMDVFRkI1RiAvKiBSZWN0LmggKi8sCkBAIC0y
MTI5MSw2ICsyMTMxOSwxMCBAQAogCQkJCUUxQUQxNDIxMTI5NUVBNkIwMEFDQTk4OSAvKiBKU0hU
TUxFbWJlZEVsZW1lbnRDdXN0b20uaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQUQxNDIzMTI5NUVB
N0YwMEFDQTk4OSAvKiBKU0hUTUxJbnB1dEVsZW1lbnRDdXN0b20uaCBpbiBIZWFkZXJzICovLAog
CQkJCUUxQUQxNDI1MTI5NUVBOTUwMEFDQTk4OSAvKiBKU0hUTUxPYmplY3RFbGVtZW50Q3VzdG9t
LmggaW4gSGVhZGVycyAqLywKKwkJCQlEM0E5NEEzOTEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFR
dWVyeUxpc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCUQzQTk0QTNCMTIyREFCQUMwMEEzN0JCQyAv
KiBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlEM0E5NEE0NzEy
MkRDNDBGMDBBMzdCQkMgLyogSlNNZWRpYVF1ZXJ5TGlzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
RDNBQTEwRjQxMjNBOThBQTAwOTIxNTJCIC8qIE1lZGlhUXVlcnlNYXRjaGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsK
IAkJfTsKQEAgLTIzODQ4LDYgKzIzODgwLDEwIEBACiAJCQkJRTFBRDEyRDYxMjk1RDBCRDAwQUNB
OTg5IC8qIEpTUHJvY2Vzc2luZ0luc3RydWN0aW9uQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUUxQUQxMzlCMTI5NUQ5MjYwMEFDQTk4OSAvKiBKU0hUTUxMaW5rRWxlbWVudEN1c3RvbS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlFMUFEMTM5RTEyOTVEOTYxMDBBQ0E5ODkgLyogSlNIVE1M
U3R5bGVFbGVtZW50Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUQzQTk0QTM4MTIyREFC
QUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlEM0E5
NEE0NjEyMkRDNDBGMDBBMzdCQkMgLyogSlNNZWRpYVF1ZXJ5TGlzdC5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQlEM0FBMTBGMzEyM0E5OEFBMDA5MjE1MkIgLyogTWVkaWFRdWVyeU1hdGNoZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJRDM0MDYyOUIxMjUzQkM4QzAwOUU0MjU5IC8qIE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRl
cGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Jp
bmRpbmdzL2dvYmplY3QvR05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3Qv
R05VbWFrZWZpbGUuYW0KaW5kZXggMzM4ZDdmOS4uYmY4OTZiZCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9iaW5kaW5ncy9nb2JqZWN0L0dOVW1ha2VmaWxlLmFtCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mv
Z29iamVjdC9HTlVtYWtlZmlsZS5hbQpAQCAtMTk2LDYgKzE5Niw4IEBAIHdlYmtpdGd0a19nZG9t
X2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01NZWRp
YUVycm9yUHJpdmF0ZS5oIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NTWVkaWFM
aXN0LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTU1lZGlhTGlzdFByaXZh
dGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTU1lZGlhUXVlcnlMaXN0LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTU1lZGlhUXVlcnlMaXN0UHJpdmF0
ZS5oIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NTWVtb3J5SW5mby5jcHAgXAog
CURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01NZW1vcnlJbmZvUHJpdmF0ZS5oIFwKIAlE
ZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NTWVzc2FnZVBvcnQuY3BwIFwKQEAgLTI1NCw2
ICsyNTYsNyBAQCB3ZWJraXRndGtfYnVpbHRfaF9hcGkgKz0gXAogCURlcml2ZWRTb3VyY2VzL3dl
YmtpdC9XZWJLaXRET01DU1NTdHlsZVNoZWV0LmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9X
ZWJLaXRET01DU1NWYWx1ZS5oIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NTWVk
aWFMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01NZWRpYVF1ZXJ5TGlz
dC5oIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NU3R5bGVNZWRpYS5oIFwKIAlE
ZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NU3R5bGVTaGVldC5oIFwKIAlEZXJpdmVkU291
cmNlcy93ZWJraXQvV2ViS2l0RE9NU3R5bGVTaGVldExpc3QuaCBcCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdFZhbHVlLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvU2Ny
aXB0VmFsdWUuY3BwCmluZGV4IGE1OGUwYzcuLmEyYTcyYjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
YmluZGluZ3MvanMvU2NyaXB0VmFsdWUuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvU2Ny
aXB0VmFsdWUuY3BwCkBAIC04NCw2ICs4NCwxMiBAQCBib29sIFNjcmlwdFZhbHVlOjppc09iamVj
dCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fdmFsdWUuZ2V0KCkuaXNPYmplY3QoKTsKIH0KIAorYm9v
bCBTY3JpcHRWYWx1ZTo6aXNGdW5jdGlvbigpIGNvbnN0Cit7CisgICAgQ2FsbERhdGEgY2FsbERh
dGE7CisgICAgcmV0dXJuIGdldENhbGxEYXRhKG1fdmFsdWUsIGNhbGxEYXRhKSAhPSBDYWxsVHlw
ZU5vbmU7Cit9CisKIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBTY3JpcHRWYWx1
ZTo6c2VyaWFsaXplKFNjcmlwdFN0YXRlKiBzY3JpcHRTdGF0ZSkKIHsKICAgICByZXR1cm4gU2Vy
aWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUoc2NyaXB0U3RhdGUsIGpzVmFsdWUoKSk7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFZhbHVlLmggYi9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NjcmlwdFZhbHVlLmgKaW5kZXggYjE3MGZjZi4uNTc0NmMzZiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRWYWx1ZS5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2NyaXB0VmFsdWUuaApAQCAtNTUsOCArNTUsMTEgQEAgcHVibGljOgogICAgIGJvb2wgaXNO
dWxsKCkgY29uc3Q7CiAgICAgYm9vbCBpc1VuZGVmaW5lZCgpIGNvbnN0OwogICAgIGJvb2wgaXNP
YmplY3QoKSBjb25zdDsKKyAgICBib29sIGlzRnVuY3Rpb24oKSBjb25zdDsKICAgICBib29sIGhh
c05vVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlID09IEpTQzo6SlNWYWx1ZSgpOyB9CiAK
KyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgU2NyaXB0VmFsdWUmIG90aGVyKSBjb25zdCB7IHJl
dHVybiBtX3ZhbHVlID09IG90aGVyLm1fdmFsdWU7IH0KKwogICAgIFBhc3NSZWZQdHI8U2VyaWFs
aXplZFNjcmlwdFZhbHVlPiBzZXJpYWxpemUoU2NyaXB0U3RhdGUqKTsKICAgICBzdGF0aWMgU2Ny
aXB0VmFsdWUgZGVzZXJpYWxpemUoU2NyaXB0U3RhdGUqLCBTZXJpYWxpemVkU2NyaXB0VmFsdWUq
KTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JH
T2JqZWN0LnBtIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0
LnBtCmluZGV4IDZjNDUwYWQuLmVlYzM0OTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0KQEAgLTIxMCw4ICsyMTAsMTEgQEAgc3ViIFNr
aXBGdW5jdGlvbiB7CiAKICAgICAjIFNraXAgZnVuY3Rpb25zIHRoYXQgaGF2ZSBbIkNhbGxiYWNr
Il0gcGFyYW1ldGVycywgYmVjYXVzZSB0aGlzCiAgICAgIyBjb2RlIGdlbmVyYXRvciBkb2Vzbid0
IGtub3cgaG93IHRvIGF1dG8tZ2VuZXJhdGUgY2FsbGJhY2tzLgorICAgICMgU2tpcCBmdW5jdGlv
bnMgdGhhdCBoYXZlICJNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIiBwYXJhbWV0ZXJzLCBiZWNhdXNl
IHRoaXMKKyAgICAjIGNvZGUgZ2VuZXJhdG9yIGRvZXNuJ3Qga25vdyBob3cgdG8gYXV0by1nZW5l
cmF0ZSBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLgogICAgIGZvcmVhY2ggbXkgJHBhcmFtIChAeyRm
dW5jdGlvbi0+cGFyYW1ldGVyc30pIHsKLSAgICAgICAgaWYgKCRwYXJhbS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IkNhbGxiYWNrIn0pIHsKKyAgICAgICAgaWYgKCRwYXJhbS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IkNhbGxiYWNrIn0gfHwKKyAgICAgICAgICAgICRwYXJhbS0+dHlwZSBlcSAiTWVk
aWFRdWVyeUxpc3RMaXN0ZW5lciIpIHsKICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICB9
CiAgICAgfQpAQCAtNTk5LDcgKzYwMiw4IEBAIEVPRgogICAgIHB1c2goQHR4dFNldFByb3BzLCAk
dHh0U2V0UHJvcHMpOwogCiAgICAgZm9yZWFjaCBteSAkYXR0cmlidXRlIChAcmVhZGFibGVQcm9w
ZXJ0aWVzKSB7Ci0gICAgICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUgbmUgIkV2
ZW50TGlzdGVuZXIiKSB7CisgICAgICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUg
bmUgIkV2ZW50TGlzdGVuZXIiICYmCisgICAgICAgICAgICAkYXR0cmlidXRlLT5zaWduYXR1cmUt
PnR5cGUgbmUgIk1lZGlhUXVlcnlMaXN0TGlzdGVuZXIiKSB7CiAgICAgICAgICAgICBHZW5lcmF0
ZVByb3BlcnR5KCRhdHRyaWJ1dGUsICRpbnRlcmZhY2VOYW1lLCBcQHdyaXRlYWJsZVByb3BlcnRp
ZXMpOwogICAgICAgICB9CiAgICAgfQpAQCAtNzY2LDYgKzc3MCw3IEBAIHN1YiBnZXRJbmNsdWRl
SGVhZGVyIHsKICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIHNob3J0IjsKICAg
ICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgIkRPTVRpbWVTdGFtcCI7CiAgICAgcmV0dXJuICIiIGlm
ICR0eXBlIGVxICJFdmVudExpc3RlbmVyIjsKKyAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgIk1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXIiOwogICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAidW5zaWdu
ZWQgY2hhciI7CiAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJET01TdHJpbmciOwogICAgIHJl
dHVybiAiIiBpZiAkdHlwZSBlcSAiZmxvYXQiOwpAQCAtODAwLDYgKzgwNSwxMCBAQCBzdWIgR2Vu
ZXJhdGVGdW5jdGlvbiB7CiAKICAgICBteSAkZGVjYW1lbGl6ZSA9IEZpeFVwRGVjYW1lbGl6ZWRO
YW1lKGRlY2FtZWxpemUoJGludGVyZmFjZU5hbWUpKTsKIAorICAgIGlmICgkb2JqZWN0IGVxICJN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIikgeworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAg
aWYgKFNraXBGdW5jdGlvbigkZnVuY3Rpb24sICRkZWNhbWVsaXplLCAkcHJlZml4KSkgewogICAg
ICAgICByZXR1cm47CiAgICAgfQpAQCAtODIxLDcgKzgzMCw3IEBAIHN1YiBHZW5lcmF0ZUZ1bmN0
aW9uIHsKIAogICAgIGZvcmVhY2ggbXkgJHBhcmFtIChAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc30p
IHsKICAgICAgICAgbXkgJHBhcmFtSURMVHlwZSA9ICRwYXJhbS0+dHlwZTsKLSAgICAgICAgaWYg
KCRwYXJhbUlETFR5cGUgZXEgIkV2ZW50TGlzdGVuZXIiKSB7CisgICAgICAgIGlmICgkcGFyYW1J
RExUeXBlIGVxICJFdmVudExpc3RlbmVyIiB8fCAkcGFyYW1JRExUeXBlIGVxICJNZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyIikgewogICAgICAgICAgICAgcHVzaChAaEJvZHksICJcbi8qIFRPRE86IGV2
ZW50IGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKICAgICAgICAgICAgIHB1c2go
QGNCb2R5LCAiXG4vKiBUT0RPOiBldmVudCBmdW5jdGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9cblxu
Iik7CiAgICAgICAgICAgICByZXR1cm47CkBAIC0xMDc1LDcgKzEwODQsOSBAQCBzdWIgR2VuZXJh
dGVGdW5jdGlvbnMgewogCiAgICAgVE9QOgogICAgIGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQHsk
ZGF0YU5vZGUtPmF0dHJpYnV0ZXN9KSB7Ci0gICAgICAgIGlmIChTa2lwQXR0cmlidXRlKCRhdHRy
aWJ1dGUpIHx8ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSBlcSAiRXZlbnRMaXN0ZW5lciIp
IHsKKyAgICAgICAgaWYgKFNraXBBdHRyaWJ1dGUoJGF0dHJpYnV0ZSkgfHwKKyAgICAgICAgICAg
ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSBlcSAiRXZlbnRMaXN0ZW5lciIgfHwKKyAgICAg
ICAgICAgICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSBlcSAiTWVkaWFRdWVyeUxpc3RMaXN0
ZW5lciIpIHsKICAgICAgICAgICAgIG5leHQgVE9QOwogICAgICAgICB9CiAgICAgICAgIApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggZTA5YTk1YS4u
OGEyMTcxNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbQorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBt
CkBAIC02LDYgKzYsNyBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDks
IDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIyBDb3B5cmlnaHQgKEMpIDIw
MDkgQ2FtZXJvbiBNY0Nvcm1hY2sgPGNhbUBtY2MuaWQuYXU+CiAjIENvcHlyaWdodCAoQykgUmVz
ZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29w
eXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgt
aWVzKQogIwogIyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCiAjIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yNzMsNiArMjc0LDEwIEBAIHN1YiBBZGRJbmNsdWRl
c0ZvclR5cGUKICAgICBpZiAoJHR5cGUgZXEgIkRvY3VtZW50IikgewogICAgICAgICAkaW1wbElu
Y2x1ZGVzeyJOb2RlRmlsdGVyLmgifSA9IDE7CiAgICAgfQorCisgICAgaWYgKCR0eXBlIGVxICJN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIikgeworICAgICAgICAkaW1wbEluY2x1ZGVzeyJNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyLmgifSA9IDE7CisgICAgfQogfQogCiAjIEZJWE1FOiBUaGlzIG1ldGhv
ZCB3aWxsIGdvIGF3YXkgb25jZSBhbGwgU1ZHIGFuaW1hdGVkIHByb3BlcnRpZXMgYXJlIGNvbnZl
cnRlZCB0byB0aGUgbmV3IHNjaGVtZS4KQEAgLTIzNTIsNiArMjM1Nyw3IEBAIG15ICVuYXRpdmVU
eXBlID0gKAogICAgICJ1bnNpZ25lZCBzaG9ydCIgPT4gInVuc2lnbmVkIHNob3J0IiwKICAgICAi
bG9uZyBsb25nIiA9PiAibG9uZyBsb25nIiwKICAgICAidW5zaWduZWQgbG9uZyBsb25nIiA9PiAi
dW5zaWduZWQgbG9uZyBsb25nIiwKKyAgICAiTWVkaWFRdWVyeUxpc3RMaXN0ZW5lciIgPT4gIlJl
ZlB0cjxNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyPiIKICk7CiAKIHN1YiBHZXROYXRpdmVUeXBlCkBA
IC0yNDQwLDYgKzI0NDYsMTEgQEAgc3ViIEpTVmFsdWVUb05hdGl2ZQogICAgICAgICByZXR1cm4g
IiR2YWx1ZSI7CiAgICAgfQogCisgICAgaWYgKCR0eXBlIGVxICJNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyIikgeworICAgICAgICAkaW1wbEluY2x1ZGVzeyJNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgi
fSA9IDE7CisgICAgICAgIHJldHVybiAiTWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6Y3JlYXRlKCIg
LiAkdmFsdWUgLiIpIjsKKyAgICB9CisKICAgICBpZiAoJHR5cGUgZXEgIlNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZSIgb3IgJHR5cGUgZXEgImFueSIpIHsKICAgICAgICAgJGltcGxJbmNsdWRlc3siU2Vy
aWFsaXplZFNjcmlwdFZhbHVlLmgifSA9IDE7CiAgICAgICAgIHJldHVybiAiU2VyaWFsaXplZFNj
cmlwdFZhbHVlOjpjcmVhdGUoZXhlYywgJHZhbHVlKSI7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JWOC5wbQppbmRleCA5MDM0MWI4Li4zN2NlNDRlIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCisrKyBiL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KQEAgLTcsNiArNyw3IEBACiAj
IENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAwOSBHb29nbGUgSW5jLgogIyBDb3B5cmlnaHQg
KEMpIDIwMDkgQ2FtZXJvbiBNY0Nvcm1hY2sgPGNhbUBtY2MuaWQuYXU+CiAjIENvcHlyaWdodCAo
QykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyMgQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lk
aWFyeSgtaWVzKQogIwogIyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAjIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yODE0LDYgKzI4MTUsOCBAQCBzdWIgR2V0
TmF0aXZlVHlwZQogCiAgICAgcmV0dXJuICJSZWZQdHI8JHt0eXBlfT4iIGlmIElzUmVmUHRyVHlw
ZSgkdHlwZSkgYW5kIG5vdCAkaXNQYXJhbWV0ZXI7CiAKKyAgICByZXR1cm4gIlJlZlB0cjxNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyPiIgaWYgJHR5cGUgZXEgIk1lZGlhUXVlcnlMaXN0TGlzdGVuZXIi
OworCiAgICAgIyBEZWZhdWx0LCBhc3N1bWUgbmF0aXZlIHR5cGUgaXMgYSBwb2ludGVyIHdpdGgg
c2FtZSB0eXBlIG5hbWUgYXMgaWRsIHR5cGUKICAgICByZXR1cm4gIiR7dHlwZX0qIjsKIH0KQEAg
LTI4OTMsNiArMjg5NiwxMSBAQCBzdWIgSlNWYWx1ZVRvTmF0aXZlCiAgICAgICAgICRpbXBsSW5j
bHVkZXN7IkZsb2F0UmVjdC5oIn0gPSAxOwogICAgIH0KIAorICAgIGlmICgkdHlwZSBlcSAiTWVk
aWFRdWVyeUxpc3RMaXN0ZW5lciIpIHsKKyAgICAgICAgJGltcGxJbmNsdWRlc3siTWVkaWFRdWVy
eUxpc3RMaXN0ZW5lci5oIn0gPSAxOworICAgICAgICByZXR1cm4gIk1lZGlhUXVlcnlMaXN0TGlz
dGVuZXI6OmNyZWF0ZSgiIC4gJHZhbHVlIC4gIikiOworICAgIH0KKwogICAgICMgRGVmYXVsdCwg
YXNzdW1lIGF1dG9nZW5lcmF0ZWQgdHlwZSBjb252ZXJzaW9uIHJvdXRpbmVzCiAgICAgaWYgKCR0
eXBlIGVxICJFdmVudFRhcmdldCIpIHsKICAgICAgICAgJGltcGxJbmNsdWRlc3siVjhOb2RlLmgi
fSA9IDE7CkBAIC0zMDIwLDcgKzMwMjgsOCBAQCBteSAlbm9uX3dyYXBwZXJfdHlwZXMgPSAoCiAg
ICAgJ05vZGVGaWx0ZXInID0+IDEsCiAgICAgJ0V2ZW50TGlzdGVuZXInID0+IDEsCiAgICAgJ0lE
QktleScgPT4gMSwKLSAgICAnRGF0ZScgPT4gMQorICAgICdEYXRlJyA9PiAxLAorICAgICdNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyJyA9PiAxCiApOwogCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXIuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRE
T01UZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKaW5kZXggNzk1NmUzMC4uZjVkZWQ3OSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRE
T01UZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5j
cHAKQEAgLTI4LDggKzI4LDYgQEAKICNpbmNsdWRlICJUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5l
ci5oIgogI2luY2x1ZGUgIldlYktpdERPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJnb2JqZWN0L0Nv
bnZlcnRUb1VURjhTdHJpbmcuaCIKLSNpbmNsdWRlICJ3ZWJraXQvV2ViS2l0RE9NTWVkaWFRdWVy
eUxpc3RMaXN0ZW5lci5oIgotI2luY2x1ZGUgIndlYmtpdC9XZWJLaXRET01NZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyUHJpdmF0ZS5oIgogI2luY2x1ZGUgIndlYmtpdC9XZWJLaXRET01UZXN0TWVkaWFR
dWVyeUxpc3RMaXN0ZW5lci5oIgogI2luY2x1ZGUgIndlYmtpdC9XZWJLaXRET01UZXN0TWVkaWFR
dWVyeUxpc3RMaXN0ZW5lclByaXZhdGUuaCIKICNpbmNsdWRlICJ3ZWJraXRtYXJzaGFsLmgiCkBA
IC00OSwyMSArNDcsNiBAQCBncG9pbnRlciBraXQoV2ViQ29yZTo6VGVzdE1lZGlhUXVlcnlMaXN0
TGlzdGVuZXIqIG9iaikKICAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdCAvLwogCi12b2lkCi13
ZWJraXRfZG9tX3Rlc3RfbWVkaWFfcXVlcnlfbGlzdF9saXN0ZW5lcl9tZXRob2QoV2ViS2l0RE9N
VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqIHNlbGYsIFdlYktpdERPTU1lZGlhUXVlcnlMaXN0
TGlzdGVuZXIqIGxpc3RlbmVyKQotewotICAgIGdfcmV0dXJuX2lmX2ZhaWwoc2VsZik7Ci0gICAg
V2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIFdlYkNvcmU6OlRlc3RN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyICogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBn
X3JldHVybl9pZl9mYWlsKGxpc3RlbmVyKTsKLSAgICBXZWJDb3JlOjpNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyICogY29udmVydGVkX2xpc3RlbmVyID0gTlVMTDsKLSAgICBpZiAobGlzdGVuZXIgIT0g
TlVMTCkgewotICAgICAgICBjb252ZXJ0ZWRfbGlzdGVuZXIgPSBXZWJLaXQ6OmNvcmUobGlzdGVu
ZXIpOwotICAgICAgICBnX3JldHVybl9pZl9mYWlsKGNvbnZlcnRlZF9saXN0ZW5lcik7Ci0gICAg
fQotICAgIGl0ZW0tPm1ldGhvZChjb252ZXJ0ZWRfbGlzdGVuZXIpOwotfQotCiAKIEdfREVGSU5F
X1RZUEUoV2ViS2l0RE9NVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIsIHdlYmtpdF9kb21fdGVz
dF9tZWRpYV9xdWVyeV9saXN0X2xpc3RlbmVyLCBXRUJLSVRfVFlQRV9ET01fT0JKRUNUKQogCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERP
TVRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgKaW5kZXgg
OTRlODI1ZS4uNjEyNDM5YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvR09iamVjdC9XZWJLaXRET01UZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oCisrKyBiL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXIuaApAQCAtNDYsOSArNDYsNiBAQCBzdHJ1Y3QgX1dlYktpdERPTVRlc3RN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ2xhc3MgewogV0VCS0lUX0FQSSBHVHlwZQogd2Via2l0X2Rv
bV90ZXN0X21lZGlhX3F1ZXJ5X2xpc3RfbGlzdGVuZXJfZ2V0X3R5cGUgKHZvaWQpOwogCi1XRUJL
SVRfQVBJIHZvaWQKLXdlYmtpdF9kb21fdGVzdF9tZWRpYV9xdWVyeV9saXN0X2xpc3RlbmVyX21l
dGhvZChXZWJLaXRET01UZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciogc2VsZiwgV2ViS2l0RE9N
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciogbGlzdGVuZXIpOwotCiBHX0VORF9ERUNMUwogCiAjZW5k
aWYgLyogV2ViS2l0RE9NVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJfaCAqLwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RM
aXN0ZW5lci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyLmNwcAppbmRleCBjZGU5NjcyLi5lNTA1ZWQyIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcApAQCAtMjMsNyArMjMsNyBAQAogCiAjaW5jbHVkZSAi
RXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgotI2luY2x1ZGUgIkpT
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oIgorI2luY2x1ZGUgIk1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXIuaCIKICNpbmNsdWRlICJUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oIgogI2luY2x1ZGUg
PHJ1bnRpbWUvRXJyb3IuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CkBAIC0xNzQsNyArMTc0
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyUHJvdG90eXBlRnVuY3Rpb25NZXRob2QKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBl
RXJyb3IoZXhlYyk7CiAgICAgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciogY2FzdGVkVGhp
cyA9IHN0YXRpY19jYXN0PEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqPihhc09iamVjdCh0
aGlzVmFsdWUpKTsKICAgICBUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciogaW1wID0gc3RhdGlj
X2Nhc3Q8VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwot
ICAgIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqIGxpc3RlbmVyID0gdG9NZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyKGV4ZWMtPmFyZ3VtZW50KDApKTsKKyAgICBSZWZQdHI8TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lcj4gbGlzdGVuZXIgPSBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjpjcmVhdGUoZXhlYy0+YXJn
dW1lbnQoMCkpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAg
Yi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyLmNwcAppbmRleCAxZjc4ZjM5Li5mMWM0ZTJiIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcAor
KysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyLmNwcApAQCAtMjIsMTMgKzIyLDEzIEBACiAjaW5jbHVkZSAiVjhUZXN0TWVkaWFR
dWVyeUxpc3RMaXN0ZW5lci5oIgogCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1
ZGUgIk1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCIKICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZl
YXR1cmVzLmgiCiAjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCiAjaW5jbHVkZSAiVjhCaW5kaW5nTWFj
cm9zLmgiCiAjaW5jbHVkZSAiVjhCaW5kaW5nU3RhdGUuaCIKICNpbmNsdWRlICJWOERPTVdyYXBw
ZXIuaCIKICNpbmNsdWRlICJWOElzb2xhdGVkQ29udGV4dC5oIgotI2luY2x1ZGUgIlY4TWVkaWFR
dWVyeUxpc3RMaXN0ZW5lci5oIgogI2luY2x1ZGUgIlY4UHJveHkuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtNDMsMjggKzQzLDI1IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
bWV0aG9kQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICBJTkNfU1RB
VFMoIkRPTS5UZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5tZXRob2QiKTsKICAgICBUZXN0TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lciogaW1wID0gVjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6
dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgRVhDRVBUSU9OX0JMT0NLKE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXIqLCBsaXN0ZW5lciwgVjhNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjpIYXNJbnN0
YW5jZShhcmdzWzBdKSA/IFY4TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6dG9OYXRpdmUodjg6Okhh
bmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChhcmdzWzBdKSkgOiAwKTsKKyAgICBFWENFUFRJT05fQkxP
Q0soUmVmUHRyPE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+LCBsaXN0ZW5lciwgTWVkaWFRdWVyeUxp
c3RMaXN0ZW5lcjo6Y3JlYXRlKGFyZ3NbMF0pKTsKICAgICBpbXAtPm1ldGhvZChsaXN0ZW5lcik7
CiAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckludGVybmFsCiAKK3N0YXRpYyBjb25zdCBCYXRj
aGVkQ2FsbGJhY2sgVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJDYWxsYmFja3NbXSA9IHsKKyAg
ICB7Im1ldGhvZCIsIFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVySW50ZXJuYWw6Om1ldGhvZENh
bGxiYWNrfSwKK307CiBzdGF0aWMgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+
IENvbmZpZ3VyZVY4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJUZW1wbGF0ZSh2ODo6UGVyc2lz
dGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gZGVzYykKIHsKICAgICB2ODo6TG9jYWw8djg6OlNp
Z25hdHVyZT4gZGVmYXVsdFNpZ25hdHVyZSA9IGNvbmZpZ3VyZVRlbXBsYXRlKGRlc2MsICJUZXN0
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciIsIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBs
YXRlPigpLCBWOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjppbnRlcm5hbEZpZWxkQ291bnQs
CiAgICAgICAgIDAsIDAsCi0gICAgICAgIDAsIDApOworICAgICAgICBUZXN0TWVkaWFRdWVyeUxp
c3RMaXN0ZW5lckNhbGxiYWNrcywgc2l6ZW9mKFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ2Fs
bGJhY2tzKSAvIHNpemVvZigqVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJDYWxsYmFja3MpKTsK
ICAgICB2ODo6TG9jYWw8djg6Ok9iamVjdFRlbXBsYXRlPiBpbnN0YW5jZSA9IGRlc2MtPkluc3Rh
bmNlVGVtcGxhdGUoKTsKICAgICB2ODo6TG9jYWw8djg6Ok9iamVjdFRlbXBsYXRlPiBwcm90byA9
IGRlc2MtPlByb3RvdHlwZVRlbXBsYXRlKCk7CiAgICAgCiAKLSAgICAvLyBDdXN0b20gU2lnbmF0
dXJlICdtZXRob2QnCi0gICAgY29uc3QgaW50IG1ldGhvZEFyZ2MgPSAxOwotICAgIHY4OjpIYW5k
bGU8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IG1ldGhvZEFyZ3ZbbWV0aG9kQXJnY10gPSB7IFY4TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lcjo6R2V0UmF3VGVtcGxhdGUoKSB9OwotICAgIHY4OjpIYW5kbGU8
djg6OlNpZ25hdHVyZT4gbWV0aG9kU2lnbmF0dXJlID0gdjg6OlNpZ25hdHVyZTo6TmV3KGRlc2Ms
IG1ldGhvZEFyZ2MsIG1ldGhvZEFyZ3YpOwotICAgIHByb3RvLT5TZXQodjg6OlN0cmluZzo6TmV3
KCJtZXRob2QiKSwgdjg6OkZ1bmN0aW9uVGVtcGxhdGU6Ok5ldyhUZXN0TWVkaWFRdWVyeUxpc3RM
aXN0ZW5lckludGVybmFsOjptZXRob2RDYWxsYmFjaywgdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCks
IG1ldGhvZFNpZ25hdHVyZSkpOwotCiAgICAgLy8gQ3VzdG9tIHRvU3RyaW5nIHRlbXBsYXRlCiAg
ICAgZGVzYy0+U2V0KGdldFRvU3RyaW5nTmFtZSgpLCBnZXRUb1N0cmluZ1RlbXBsYXRlKCkpOwog
ICAgIHJldHVybiBkZXNjOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRW
YWx1ZS5oIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRWYWx1ZS5oCmluZGV4IDE3NDNkYTAu
LmQ0MTI5MDEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0VmFsdWUuaAor
KysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdFZhbHVlLmgKQEAgLTEwMCw2ICsxMDAsMTEg
QEAgcHVibGljOgogICAgICAgICByZXR1cm4gbV92YWx1ZSA9PSB2YWx1ZS5tX3ZhbHVlOwogICAg
IH0KIAorICAgIGJvb2wgaXNGdW5jdGlvbigpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4g
bV92YWx1ZS0+SXNGdW5jdGlvbigpOworICAgIH0KKwogICAgIGJvb2wgb3BlcmF0b3IhPShjb25z
dCBTY3JpcHRWYWx1ZSB2YWx1ZSkgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiAhb3BlcmF0
b3I9PSh2YWx1ZSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdC5jcHAg
Yi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uYmU1NWE5NgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvY3NzL01lZGlh
UXVlcnlMaXN0LmNwcApAQCAtMCwwICsxLDEwMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFRdWVyeUxpc3QuaCIKKworI2luY2x1
ZGUgIk1lZGlhTGlzdC5oIgorI2luY2x1ZGUgIk1lZGlhUXVlcnlFdmFsdWF0b3IuaCIKKyNpbmNs
dWRlICJNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgiCisjaW5jbHVkZSAiTWVkaWFRdWVyeU1hdGNo
ZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0
PiBNZWRpYVF1ZXJ5TGlzdDo6Y3JlYXRlKFBhc3NSZWZQdHI8TWVkaWFRdWVyeU1hdGNoZXI+IHZl
Y3RvciwgUGFzc1JlZlB0cjxNZWRpYUxpc3Q+IG1lZGlhLCBib29sIG1hdGNoZXMpCit7CisgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBNZWRpYVF1ZXJ5TGlzdCh2ZWN0b3IsIG1lZGlhLCBtYXRjaGVz
KSk7Cit9CisKK01lZGlhUXVlcnlMaXN0OjpNZWRpYVF1ZXJ5TGlzdChQYXNzUmVmUHRyPE1lZGlh
UXVlcnlNYXRjaGVyPiB2ZWN0b3IsIFBhc3NSZWZQdHI8TWVkaWFMaXN0PiBtZWRpYSwgYm9vbCBt
YXRjaGVzKQorICAgIDogbV9tYXRjaGVyKHZlY3RvcikKKyAgICAsIG1fbWVkaWEobWVkaWEpCisg
ICAgLCBtX2V2YWx1YXRpb25Sb3VuZChtX21hdGNoZXItPmV2YWx1YXRpb25Sb3VuZCgpKQorICAg
ICwgbV9jaGFuZ2VSb3VuZChtX2V2YWx1YXRpb25Sb3VuZCAtIDEpIC8vIG1fZXZhbHVhdGlvblJv
dW5kIGFuZCBtX2NoYW5nZVJvdW5kIGluaXRpYWwgdmFsdWVzIG11c3QgYmUgZGlmZmVyZW50Lgor
ICAgICwgbV9tYXRjaGVzKG1hdGNoZXMpCit7Cit9CisKK01lZGlhUXVlcnlMaXN0Ojp+TWVkaWFR
dWVyeUxpc3QoKQoreworfQorCitTdHJpbmcgTWVkaWFRdWVyeUxpc3Q6Om1lZGlhKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9tZWRpYS0+bWVkaWFUZXh0KCk7Cit9CisKK3ZvaWQgTWVkaWFRdWVy
eUxpc3Q6OmFkZExpc3RlbmVyKFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4gbGlz
dGVuZXIpCit7CisgICAgaWYgKCFsaXN0ZW5lcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9t
YXRjaGVyLT5hZGRMaXN0ZW5lcihsaXN0ZW5lciwgdGhpcyk7Cit9CisKK3ZvaWQgTWVkaWFRdWVy
eUxpc3Q6OnJlbW92ZUxpc3RlbmVyKFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4g
bGlzdGVuZXIpCit7CisgICAgaWYgKCFsaXN0ZW5lcikKKyAgICAgICAgcmV0dXJuOworCisgICAg
bV9tYXRjaGVyLT5yZW1vdmVMaXN0ZW5lcihsaXN0ZW5lciwgdGhpcyk7Cit9CisKK3ZvaWQgTWVk
aWFRdWVyeUxpc3Q6OmV2YWx1YXRlKE1lZGlhUXVlcnlFdmFsdWF0b3IqIGV2YWx1YXRvciwgYm9v
bCYgbm90aWZpY2F0aW9uTmVlZGVkKQoreworICAgIGlmIChtX2V2YWx1YXRpb25Sb3VuZCAhPSBt
X21hdGNoZXItPmV2YWx1YXRpb25Sb3VuZCgpICYmIGV2YWx1YXRvcikKKyAgICAgICAgc2V0TWF0
Y2hlcyhldmFsdWF0b3ItPmV2YWwobV9tZWRpYS5nZXQoKSkpOworICAgIG5vdGlmaWNhdGlvbk5l
ZWRlZCA9IG1fY2hhbmdlUm91bmQgPT0gbV9tYXRjaGVyLT5ldmFsdWF0aW9uUm91bmQoKTsKK30K
Kwordm9pZCBNZWRpYVF1ZXJ5TGlzdDo6c2V0TWF0Y2hlcyhib29sIG5ld1ZhbHVlKQoreworICAg
IG1fZXZhbHVhdGlvblJvdW5kID0gbV9tYXRjaGVyLT5ldmFsdWF0aW9uUm91bmQoKTsKKworICAg
IGlmIChuZXdWYWx1ZSA9PSBtX21hdGNoZXMpCisgICAgICAgIHJldHVybjsKKworICAgIG1fbWF0
Y2hlcyA9IG5ld1ZhbHVlOworICAgIG1fY2hhbmdlUm91bmQgPSBtX2V2YWx1YXRpb25Sb3VuZDsK
K30KKworYm9vbCBNZWRpYVF1ZXJ5TGlzdDo6bWF0Y2hlcygpCit7CisgICAgaWYgKG1fZXZhbHVh
dGlvblJvdW5kICE9IG1fbWF0Y2hlci0+ZXZhbHVhdGlvblJvdW5kKCkpCisgICAgICAgIHNldE1h
dGNoZXMobV9tYXRjaGVyLT5ldmFsdWF0ZShtX21lZGlhLmdldCgpKSk7CisgICAgcmV0dXJuIG1f
bWF0Y2hlczsKK30KKworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3Qu
aCBiL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uMjNhMjRlYQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvY3NzL01lZGlh
UXVlcnlMaXN0LmgKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIE1lZGlhUXVlcnlMaXN0X2gKKyNkZWZpbmUgTWVkaWFRdWVyeUxpc3RfaAorCisjaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBNZWRpYUxpc3Q7
CitjbGFzcyBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOworY2xhc3MgTWVkaWFRdWVyeUV2YWx1YXRv
cjsKK2NsYXNzIE1lZGlhUXVlcnlNYXRjaGVyOworCisvLyBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZh
Y2UgaXMgc3BlY2lmaWVkIGF0IGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzc29tLXZpZXcvI3Ro
ZS1tZWRpYXF1ZXJ5bGlzdC1pbnRlcmZhY2UKKy8vIFRoZSBvYmplY3RzIG9mIHRoaXMgY2xhc3Mg
YXJlIHJldHVybmVkIGJ5IHdpbmRvdy5tYXRjaE1lZGlhLiBUaGV5IG1heSBiZSB1c2VkIHRvCisv
LyByZXRyaWV2ZSB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgZ2l2ZW4gbWVkaWEgcXVlcnkgYW5k
IHRvIGFkZC9yZW1vdmUgbGlzdGVuZXJzIHRoYXQKKy8vIHdpbGwgYmUgY2FsbGVkIHdoZW5ldmVy
IHRoZSB2YWx1ZSBvZiB0aGUgcXVlcnkgY2hhbmdlcy4KKworY2xhc3MgTWVkaWFRdWVyeUxpc3Qg
OiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVF1ZXJ5TGlzdD4geworcHVibGljOgorICAgIHN0YXRp
YyBQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0PiBjcmVhdGUoUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5
TWF0Y2hlcj4sIFBhc3NSZWZQdHI8TWVkaWFMaXN0PiwgYm9vbCk7CisgICAgfk1lZGlhUXVlcnlM
aXN0KCk7CisKKyAgICBTdHJpbmcgbWVkaWEoKSBjb25zdDsKKyAgICBib29sIG1hdGNoZXMoKTsK
KworICAgIHZvaWQgYWRkTGlzdGVuZXIoUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
Pik7CisgICAgdm9pZCByZW1vdmVMaXN0ZW5lcihQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXI+KTsKKworICAgIHZvaWQgZXZhbHVhdGUoTWVkaWFRdWVyeUV2YWx1YXRvciosIGJvb2wm
IG5vdGlmaWNhdGlvbk5lZWRlZCk7CisKK3ByaXZhdGU6CisgICAgTWVkaWFRdWVyeUxpc3QoUGFz
c1JlZlB0cjxNZWRpYVF1ZXJ5TWF0Y2hlcj4sIFBhc3NSZWZQdHI8TWVkaWFMaXN0PiwgYm9vbCBt
YXRjaGVzKTsKKyAgICB2b2lkIHNldE1hdGNoZXMoYm9vbCk7CisKKyAgICBSZWZQdHI8TWVkaWFR
dWVyeU1hdGNoZXI+IG1fbWF0Y2hlcjsKKyAgICBSZWZQdHI8TWVkaWFMaXN0PiBtX21lZGlhOwor
ICAgIHVuc2lnbmVkIG1fZXZhbHVhdGlvblJvdW5kOyAvLyBJbmRpY2F0ZXMgaWYgdGhlIHF1ZXJ5
IGhhcyBiZWVuIGV2YWx1YXRlZCBhZnRlciB0aGUgbGFzdCBzdHlsZSBzZWxlY3RvciBjaGFuZ2Uu
CisgICAgdW5zaWduZWQgbV9jaGFuZ2VSb3VuZDsgLy8gVXNlZCB0byBrbm93IGlmIHRoZSBxdWVy
eSBoYXMgY2hhbmdlZCBpbiB0aGUgbGFzdCBzdHlsZSBzZWxlY3RvciBjaGFuZ2UuCisgICAgYm9v
bCBtX21hdGNoZXM7Cit9OworCit9CisKKyNlbmRpZiAvLyBNZWRpYVF1ZXJ5TGlzdF9oCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdC5pZGwgYi9XZWJDb3JlL2Nzcy9NZWRp
YVF1ZXJ5TGlzdC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTQyNGE3
OQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0LmlkbApAQCAt
MCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSB2aWV3IHsKKyAgICBp
bnRlcmZhY2UgTWVkaWFRdWVyeUxpc3QgeworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9N
U3RyaW5nIG1lZGlhOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBtYXRjaGVz
OworICAgICAgICB2b2lkIGFkZExpc3RlbmVyKGluIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIgbGlz
dGVuZXIpOworICAgICAgICB2b2lkIHJlbW92ZUxpc3RlbmVyKGluIE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXIgbGlzdGVuZXIpOworICAgIH07Cit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9NZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyLmNwcCBiL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0TGlzdGVu
ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxNTMyMmQKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcApAQCAt
MCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgiCisKKyNpbmNsdWRlICJNZWRpYVF1
ZXJ5TGlzdC5oIgorI2luY2x1ZGUgIlNjcmlwdEZ1bmN0aW9uQ2FsbC5oIgorCisjaWYgVVNFKEpT
QykKKyNpbmNsdWRlICJKU01lZGlhUXVlcnlMaXN0LmgiCisjZWxzZQorI2luY2x1ZGUgIlY4TWVk
aWFRdWVyeUxpc3QuaCIKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgTWVk
aWFRdWVyeUxpc3RMaXN0ZW5lcjo6cXVlcnlDaGFuZ2VkKFNjcmlwdFN0YXRlKiBzdGF0ZSwgTWVk
aWFRdWVyeUxpc3QqIHF1ZXJ5KQoreworICAgIFNjcmlwdENhbGxiYWNrIGNhbGxiYWNrKHN0YXRl
LCBtX3ZhbHVlKTsKKyNpZiBVU0UoSlNDKQorICAgIGNhbGxiYWNrLmFwcGVuZEFyZ3VtZW50KHRv
SlMoc3RhdGUsIHF1ZXJ5KSk7CisjZWxzZQorICAgIGNhbGxiYWNrLmFwcGVuZEFyZ3VtZW50KHRv
VjgocXVlcnkpKTsKKyNlbmRpZgorICAgIGNhbGxiYWNrLmNhbGwoKTsKK30KKworfQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oIGIvV2ViQ29yZS9jc3Mv
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmFkZjYwYmIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyLmgKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJfaAorI2RlZmluZSBNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyX2gKKworI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSAiU2NyaXB0U3Rh
dGUuaCIKKyNpbmNsdWRlICJTY3JpcHRWYWx1ZS5oIgorCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBNZWRpYVF1ZXJ5TGlzdDsKKwor
Ly8gU2VlIGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzc29tLXZpZXcvI3RoZS1tZWRpYXF1ZXJ5
bGlzdC1pbnRlcmZhY2UKKworY2xhc3MgTWVkaWFRdWVyeUxpc3RMaXN0ZW5lciA6IHB1YmxpYyBS
ZWZDb3VudGVkPE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyPiBjcmVhdGUoU2NyaXB0VmFsdWUgdmFs
dWUpCisgICAgeworICAgICAgICBpZiAoIXZhbHVlLmlzRnVuY3Rpb24oKSkKKyAgICAgICAgICAg
IHJldHVybiAwOworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXIodmFsdWUpKTsKKyAgICB9CisgICAgdm9pZCBxdWVyeUNoYW5nZWQoU2NyaXB0U3RhdGUq
LCBNZWRpYVF1ZXJ5TGlzdCopOworCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXImIG90aGVyKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlID09IG90aGVyLm1f
dmFsdWU7IH0KKworcHJpdmF0ZToKKyAgICBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKFNjcmlwdFZh
bHVlIHZhbHVlKSA6IG1fdmFsdWUodmFsdWUpIHsgfQorCisgICAgU2NyaXB0VmFsdWUgbV92YWx1
ZTsKK307CisKK30KKworI2VuZGlmIC8vIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJfaApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5pZGwgYi9XZWJDb3JlL2Nz
cy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi42Y2U4YWVjCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9jc3MvTWVkaWFRdWVy
eUxpc3RMaXN0ZW5lci5pZGwKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
Cittb2R1bGUgdmlldyB7CisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgTm9TdGF0aWNUYWJsZXMs
CisgICAgICAgIE9iakNQcm90b2NvbCwKKyAgICAgICAgUHVyZUludGVyZmFjZSwKKyAgICAgICAg
T21pdENvbnN0cnVjdG9yCisgICAgXSBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIHsKKyAgICAgICAg
dm9pZCBxdWVyeUNoYW5nZWQoaW4gTWVkaWFRdWVyeUxpc3QgbGlzdCk7CisgICAgfTsKK30KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlNYXRjaGVyLmNwcCBiL1dlYkNvcmUvY3Nz
L01lZGlhUXVlcnlNYXRjaGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li40OTBhZGQ0Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeU1hdGNo
ZXIuY3BwCkBAIC0wLDAgKzEsMTYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lh
IENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRpYVF1ZXJ5TWF0Y2hlci5oIgorCisjaW5jbHVkZSAi
Q1NTU3R5bGVTZWxlY3Rvci5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRWxl
bWVudC5oIgorI2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIk1lZGlhTGlzdC5oIgor
I2luY2x1ZGUgIk1lZGlhUXVlcnlFdmFsdWF0b3IuaCIKKyNpbmNsdWRlICJNZWRpYVF1ZXJ5TGlz
dC5oIgorI2luY2x1ZGUgIk1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitNZWRpYVF1ZXJ5TWF0Y2hlcjo6TGlzdGVuZXI6Okxpc3RlbmVyKFBhc3NSZWZQ
dHI8TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4gbGlzdGVuZXIsIFBhc3NSZWZQdHI8TWVkaWFRdWVy
eUxpc3Q+IHF1ZXJ5KQorICAgIDogbV9saXN0ZW5lcihsaXN0ZW5lcikKKyAgICAsIG1fcXVlcnko
cXVlcnkpCit7Cit9CisKK01lZGlhUXVlcnlNYXRjaGVyOjpMaXN0ZW5lcjo6fkxpc3RlbmVyKCkK
K3sKK30KKwordm9pZCBNZWRpYVF1ZXJ5TWF0Y2hlcjo6TGlzdGVuZXI6OmV2YWx1YXRlKFNjcmlw
dFN0YXRlKiBzdGF0ZSwgTWVkaWFRdWVyeUV2YWx1YXRvciogZXZhbHVhdG9yKQoreworICAgIGJv
b2wgbm90aWZ5OworICAgIG1fcXVlcnktPmV2YWx1YXRlKGV2YWx1YXRvciwgbm90aWZ5KTsKKyAg
ICBpZiAobm90aWZ5KQorICAgICAgICBtX2xpc3RlbmVyLT5xdWVyeUNoYW5nZWQoc3RhdGUsIG1f
cXVlcnkuZ2V0KCkpOworfQorCitNZWRpYVF1ZXJ5TWF0Y2hlcjo6TWVkaWFRdWVyeU1hdGNoZXIo
RG9jdW1lbnQqIGRvY3VtZW50KQorICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKKyAgICAsIG1f
ZXZhbHVhdGlvblJvdW5kKDEpCit7CisgICAgQVNTRVJUKG1fZG9jdW1lbnQpOworfQorCitNZWRp
YVF1ZXJ5TWF0Y2hlcjo6fk1lZGlhUXVlcnlNYXRjaGVyKCkKK3sKK30KKwordm9pZCBNZWRpYVF1
ZXJ5TWF0Y2hlcjo6ZG9jdW1lbnREZXN0cm95ZWQoKQoreworICAgIG1fbGlzdGVuZXJzLmNsZWFy
KCk7CisgICAgbV9kb2N1bWVudCA9IDA7Cit9CisKK1N0cmluZyBNZWRpYVF1ZXJ5TWF0Y2hlcjo6
bWVkaWFUeXBlKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fZG9jdW1lbnQgfHwgIW1fZG9jdW1lbnQt
PmZyYW1lKCkgfHwgIW1fZG9jdW1lbnQtPmZyYW1lKCktPnZpZXcoKSkKKyAgICAgICAgcmV0dXJu
IFN0cmluZygpOworCisgICAgcmV0dXJuIG1fZG9jdW1lbnQtPmZyYW1lKCktPnZpZXcoKS0+bWVk
aWFUeXBlKCk7Cit9CisKK1Bhc3NPd25QdHI8TWVkaWFRdWVyeUV2YWx1YXRvcj4gTWVkaWFRdWVy
eU1hdGNoZXI6OnByZXBhcmVFdmFsdWF0b3IoKSBjb25zdAoreworICAgIGlmICghbV9kb2N1bWVu
dCB8fCAhbV9kb2N1bWVudC0+ZnJhbWUoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBFbGVt
ZW50KiBkb2N1bWVudEVsZW1lbnQgPSBtX2RvY3VtZW50LT5kb2N1bWVudEVsZW1lbnQoKTsKKyAg
ICBpZiAoIWRvY3VtZW50RWxlbWVudCkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBDU1NTdHls
ZVNlbGVjdG9yKiBzdHlsZVNlbGVjdG9yID0gbV9kb2N1bWVudC0+c3R5bGVTZWxlY3RvcigpOwor
ICAgIGlmICghc3R5bGVTZWxlY3RvcikKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBSZWZQdHI8
UmVuZGVyU3R5bGU+IHJvb3RTdHlsZSA9IHN0eWxlU2VsZWN0b3ItPnN0eWxlRm9yRWxlbWVudChk
b2N1bWVudEVsZW1lbnQsIDAgLypkZWZhdWx0UGFyZW50Ki8sIGZhbHNlIC8qYWxsb3dTaGFyaW5n
Ki8sIHRydWUgLypyZXNvbHZlRm9yUm9vdERlZmF1bHQqLyk7CisKKyAgICByZXR1cm4gYWRvcHRQ
dHIobmV3IE1lZGlhUXVlcnlFdmFsdWF0b3IobWVkaWFUeXBlKCksIG1fZG9jdW1lbnQtPmZyYW1l
KCksIHJvb3RTdHlsZS5nZXQoKSkpOworfQorCitib29sIE1lZGlhUXVlcnlNYXRjaGVyOjpldmFs
dWF0ZShNZWRpYUxpc3QqIG1lZGlhKQoreworICAgIGlmICghbWVkaWEpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIE93blB0cjxNZWRpYVF1ZXJ5RXZhbHVhdG9yPiBldmFsdWF0b3IocHJl
cGFyZUV2YWx1YXRvcigpKTsKKyAgICByZXR1cm4gZXZhbHVhdG9yICYmIGV2YWx1YXRvci0+ZXZh
bChtZWRpYSk7Cit9CisKK1Bhc3NSZWZQdHI8TWVkaWFRdWVyeUxpc3Q+IE1lZGlhUXVlcnlNYXRj
aGVyOjptYXRjaE1lZGlhKGNvbnN0IFN0cmluZyYgcXVlcnkpCit7CisgICAgaWYgKCFtX2RvY3Vt
ZW50KQorICAgICAgICByZXR1cm4gMDsKKworICAgIFJlZlB0cjxNZWRpYUxpc3Q+IG1lZGlhID0g
TWVkaWFMaXN0OjpjcmVhdGUocXVlcnksIGZhbHNlKTsKKyAgICByZXR1cm4gTWVkaWFRdWVyeUxp
c3Q6OmNyZWF0ZSh0aGlzLCBtZWRpYSwgZXZhbHVhdGUobWVkaWEuZ2V0KCkpKTsKK30KKwordm9p
ZCBNZWRpYVF1ZXJ5TWF0Y2hlcjo6YWRkTGlzdGVuZXIoUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyPiBsaXN0ZW5lciwgUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdD4gcXVlcnkpCit7
CisgICAgaWYgKCFtX2RvY3VtZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IG1fbGlzdGVuZXJzLnNpemUoKTsgKytpKSB7CisgICAgICAgIGlmICgqbV9s
aXN0ZW5lcnNbaV0tPmxpc3RlbmVyKCkgPT0gKmxpc3RlbmVyLmdldCgpICYmIG1fbGlzdGVuZXJz
W2ldLT5xdWVyeSgpID09IHF1ZXJ5LmdldCgpKQorICAgICAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIG1fbGlzdGVuZXJzLmFwcGVuZChuZXcgTGlzdGVuZXIobGlzdGVuZXIsIHF1ZXJ5KSk7
Cit9CisKK3ZvaWQgTWVkaWFRdWVyeU1hdGNoZXI6OnJlbW92ZUxpc3RlbmVyKFBhc3NSZWZQdHI8
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4gbGlzdGVuZXIsIFBhc3NSZWZQdHI8TWVkaWFRdWVyeUxp
c3Q+IHF1ZXJ5KQoreworICAgIGlmICghbV9kb2N1bWVudCkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgZm9yIChpbnQgaSA9IG1fbGlzdGVuZXJzLnNpemUoKSAtIDE7IGkgPj0gMDsgLS1pKSB7Cisg
ICAgICAgIGlmICgqbV9saXN0ZW5lcnNbaV0tPmxpc3RlbmVyKCkgPT0gKmxpc3RlbmVyLmdldCgp
ICYmIG1fbGlzdGVuZXJzW2ldLT5xdWVyeSgpID09IHF1ZXJ5LmdldCgpKSB7CisgICAgICAgICAg
ICBtX2xpc3RlbmVycy5yZW1vdmUoaSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KyAgICB9Cit9CisKK3ZvaWQgTWVkaWFRdWVyeU1hdGNoZXI6OnN0eWxlU2VsZWN0b3JDaGFuZ2Vk
KCkKK3sKKyAgICBBU1NFUlQobV9kb2N1bWVudCk7CisKKyAgICBTY3JpcHRTdGF0ZSogZXhlYyA9
IG1haW5Xb3JsZFNjcmlwdFN0YXRlKG1fZG9jdW1lbnQtPmZyYW1lKCkpOworICAgIGlmICghZXhl
YykKKyAgICAgICAgcmV0dXJuOworCisgICAgKyttX2V2YWx1YXRpb25Sb3VuZDsKKyAgICBPd25Q
dHI8TWVkaWFRdWVyeUV2YWx1YXRvcj4gZXZhbHVhdG9yID0gcHJlcGFyZUV2YWx1YXRvcigpOwor
ICAgIGlmICghZXZhbHVhdG9yKQorICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IG1fbGlzdGVuZXJzLnNpemUoKTsgKytpKQorICAgICAgICBtX2xpc3RlbmVyc1tp
XS0+ZXZhbHVhdGUoZXhlYywgZXZhbHVhdG9yLmdldCgpKTsKK30KKworfQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9jc3MvTWVkaWFRdWVyeU1hdGNoZXIuaCBiL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlN
YXRjaGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTcwMWQ0ZAotLS0g
L2Rldi9udWxsCisrKyBiL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlNYXRjaGVyLmgKQEAgLTAsMCAr
MSw5MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQv
b3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE1lZGlhUXVlcnlNYXRjaGVy
X2gKKyNkZWZpbmUgTWVkaWFRdWVyeU1hdGNoZXJfaAorCisjaW5jbHVkZSAiU2NyaXB0U3RhdGUu
aCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IERvY3VtZW50OworY2xhc3MgTWVkaWFMaXN0OworY2xhc3MgTWVkaWFRdWVyeUxpc3Q7CitjbGFz
cyBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOworY2xhc3MgTWVkaWFRdWVyeUV2YWx1YXRvcjsKKwor
Ly8gTWVkaWFRdWVyeU1hdGNoZXIgY2xhc3MgaXMgcmVzcG9uc2libGUgZm9yIGtlZXBpbmcgYSB2
ZWN0b3Igb2YgcGFpcnMKKy8vIE1lZGlhUXVlcnlMaXN0IHggTWVkaWFRdWVyeUxpc3RMaXN0ZW5l
ci4gSXQgaXMgcmVzcG9uc2libGUgZm9yIGV2YWx1YXRpbmcgdGhlIHF1ZXJpZXMKKy8vIHdoZW5l
dmVyIGl0IGlzIG5lZWRlZCBhbmQgdG8gY2FsbCB0aGUgbGlzdGVuZXJzIGlmIHRoZSBjb3JyZXNw
b25kaW5nIHF1ZXJ5IGhhcyBjaGFuZ2VkLgorLy8gVGhlIGxpc3RlbmVycyBtdXN0IGJlIGNhbGxl
ZCBpbiB0aGUgdmVyeSBzYW1lIG9yZGVyIGluIHdoaWNoIHRoZXkgaGF2ZSBiZWVuIGFkZGVkLgor
CitjbGFzcyBNZWRpYVF1ZXJ5TWF0Y2hlciA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhUXVlcnlN
YXRjaGVyPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFRdWVyeU1hdGNo
ZXI+IGNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZWRp
YVF1ZXJ5TWF0Y2hlcihkb2N1bWVudCkpOyB9CisgICAgfk1lZGlhUXVlcnlNYXRjaGVyKCk7Cisg
ICAgdm9pZCBkb2N1bWVudERlc3Ryb3llZCgpOworCisgICAgdm9pZCBhZGRMaXN0ZW5lcihQYXNz
UmVmUHRyPE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+LCBQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0
Pik7CisgICAgdm9pZCByZW1vdmVMaXN0ZW5lcihQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXI+LCBQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0Pik7CisKKyAgICBQYXNzUmVmUHRyPE1l
ZGlhUXVlcnlMaXN0PiBtYXRjaE1lZGlhKGNvbnN0IFN0cmluZyYpOworCisgICAgdW5zaWduZWQg
ZXZhbHVhdGlvblJvdW5kKCkgY29uc3QgeyByZXR1cm4gbV9ldmFsdWF0aW9uUm91bmQ7IH0KKyAg
ICB2b2lkIHN0eWxlU2VsZWN0b3JDaGFuZ2VkKCk7CisgICAgYm9vbCBldmFsdWF0ZShNZWRpYUxp
c3QqKTsKKworcHJpdmF0ZToKKyAgICBjbGFzcyBMaXN0ZW5lciB7CisgICAgcHVibGljOgorICAg
ICAgICBMaXN0ZW5lcihQYXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+LCBQYXNzUmVm
UHRyPE1lZGlhUXVlcnlMaXN0Pik7CisgICAgICAgIH5MaXN0ZW5lcigpOworCisgICAgICAgIHZv
aWQgZXZhbHVhdGUoU2NyaXB0U3RhdGUqLCBNZWRpYVF1ZXJ5RXZhbHVhdG9yKik7CisKKyAgICAg
ICAgTWVkaWFRdWVyeUxpc3RMaXN0ZW5lciogbGlzdGVuZXIoKSB7IHJldHVybiBtX2xpc3RlbmVy
LmdldCgpOyB9CisgICAgICAgIE1lZGlhUXVlcnlMaXN0KiBxdWVyeSgpIHsgcmV0dXJuIG1fcXVl
cnkuZ2V0KCk7IH0KKworICAgIHByaXZhdGU6CisgICAgICAgIFJlZlB0cjxNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyPiBtX2xpc3RlbmVyOworICAgICAgICBSZWZQdHI8TWVkaWFRdWVyeUxpc3Q+IG1f
cXVlcnk7CisgICAgfTsKKworICAgIE1lZGlhUXVlcnlNYXRjaGVyKERvY3VtZW50Kik7CisgICAg
UGFzc093blB0cjxNZWRpYVF1ZXJ5RXZhbHVhdG9yPiBwcmVwYXJlRXZhbHVhdG9yKCkgY29uc3Q7
CisgICAgU3RyaW5nIG1lZGlhVHlwZSgpIGNvbnN0OworCisgICAgRG9jdW1lbnQqIG1fZG9jdW1l
bnQ7CisgICAgVmVjdG9yPE93blB0cjxMaXN0ZW5lcj4gPiBtX2xpc3RlbmVyczsKKworICAgIC8v
IFRoaXMgdmFsdWUgaXMgaW5jcmVtZW50ZWQgYXQgc3R5bGUgc2VsZWN0b3IgY2hhbmdlcy4KKyAg
ICAvLyBJdCBpcyB1c2VkIHRvIGF2b2lkIGV2YWx1YXRpbmcgcXVlcmllcyBtb3JlIHRoZW4gb25j
ZSBhbmQgdG8gbWFrZSBzdXJlCisgICAgLy8gdGhhdCBhIG1lZGlhIHF1ZXJ5IHJlc3VsdCBjaGFu
Z2UgaXMgbm90aWZpZWQgZXhhY3RseSBvbmNlLgorICAgIHVuc2lnbmVkIG1fZXZhbHVhdGlvblJv
dW5kOworfTsKKworfQorCisjZW5kaWYgLy8gTWVkaWFRdWVyeU1hdGNoZXJfaApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmlu
ZGV4IDQwZjA3OGYuLjc1NDE0ZjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTYsNiArNiw3IEBACiAgKiBDb3B5
cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5IFRvcmNoIE1v
YmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIChodHRwOi8vd3d3LnRvcmNobW9iaWxlLmNv
bS8pCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3Ig
aXRzIHN1YnNpZGlhcnkoLWllcykKICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtOTIsNiArOTMsOCBA
QAogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIktleWJv
YXJkRXZlbnQuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTWVkaWFRdWVyeUxp
c3QuaCIKKyNpbmNsdWRlICJNZWRpYVF1ZXJ5TWF0Y2hlci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VF
dmVudC5oIgogI2luY2x1ZGUgIk1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJNb3VzZUV2ZW50V2l0
aEhpdFRlc3RSZXN1bHRzLmgiCkBAIC01ODcsNiArNTkwLDE2IEBAIERvY3VtZW50Ojp+RG9jdW1l
bnQoKQogICAgIH0KIAogICAgIG1fd2Vha1JlZmVyZW5jZS0+Y2xlYXIoKTsKKworICAgIGlmICht
X21lZGlhUXVlcnlNYXRjaGVyKQorICAgICAgICBtX21lZGlhUXVlcnlNYXRjaGVyLT5kb2N1bWVu
dERlc3Ryb3llZCgpOworfQorCitNZWRpYVF1ZXJ5TWF0Y2hlciogRG9jdW1lbnQ6Om1lZGlhUXVl
cnlNYXRjaGVyKCkKK3sKKyAgICBpZiAoIW1fbWVkaWFRdWVyeU1hdGNoZXIpCisgICAgICAgIG1f
bWVkaWFRdWVyeU1hdGNoZXIgPSBNZWRpYVF1ZXJ5TWF0Y2hlcjo6Y3JlYXRlKHRoaXMpOworICAg
IHJldHVybiBtX21lZGlhUXVlcnlNYXRjaGVyLmdldCgpOwogfQogCiAjaWYgVVNFKEpTQykKQEAg
LTI5MDYsNiArMjkxOSw5IEBAIHZvaWQgRG9jdW1lbnQ6OnN0eWxlU2VsZWN0b3JDaGFuZ2VkKFN0
eWxlU2VsZWN0b3JVcGRhdGVGbGFnIHVwZGF0ZUZsYWcpCiAgICAgICAgIGlmICh2aWV3KCkpCiAg
ICAgICAgICAgICB2aWV3KCktPnNjaGVkdWxlUmVsYXlvdXQoKTsKICAgICB9CisKKyAgICBpZiAo
bV9tZWRpYVF1ZXJ5TWF0Y2hlcikKKyAgICAgICAgbV9tZWRpYVF1ZXJ5TWF0Y2hlci0+c3R5bGVT
ZWxlY3RvckNoYW5nZWQoKTsKIH0KIAogdm9pZCBEb2N1bWVudDo6YWRkU3R5bGVTaGVldENhbmRp
ZGF0ZU5vZGUoTm9kZSogbm9kZSwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCAxZTg5
ODIwLi40NzZlMjViIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTUsNiArNSw3IEBACiAgKiAgICAgICAgICAgKEMpIDIw
MDYgQWxleGV5IFByb3NrdXJ5YWtvdiAoYXBAd2Via2l0Lm9yZykKICAqIENvcHlyaWdodCAoQykg
MjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDkgVG9yY2ggTW9iaWxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLykK
KyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNp
ZGlhcnkoLWllcykKICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtOTQsNiArOTUsOCBAQCBjbGFzcyBJ
bnRQb2ludDsKIGNsYXNzIERPTVdyYXBwZXJXb3JsZDsKIGNsYXNzIEpTTm9kZTsKIGNsYXNzIE1l
ZGlhQ2FuU3RhcnRMaXN0ZW5lcjsKK2NsYXNzIE1lZGlhUXVlcnlMaXN0OworY2xhc3MgTWVkaWFR
dWVyeU1hdGNoZXI7CiBjbGFzcyBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzOwogY2xhc3Mg
Tm9kZUZpbHRlcjsKIGNsYXNzIE5vZGVJdGVyYXRvcjsKQEAgLTIwMyw2ICsyMDYsOCBAQCBwdWJs
aWM6CiAgICAgfQogICAgIHZpcnR1YWwgfkRvY3VtZW50KCk7CiAKKyAgICBNZWRpYVF1ZXJ5TWF0
Y2hlciogbWVkaWFRdWVyeU1hdGNoZXIoKTsKKwogICAgIHVzaW5nIENvbnRhaW5lck5vZGU6OnJl
ZjsKICAgICB1c2luZyBDb250YWluZXJOb2RlOjpkZXJlZjsKIApAQCAtMTM3Myw2ICsxMzc4LDcg
QEAgcHJpdmF0ZToKICAgICBib29sIG1fd3JpdGluZ01vZGVTZXRPbkRvY3VtZW50RWxlbWVudDsK
IAogICAgIERvY3VtZW50VGltaW5nIG1fZG9jdW1lbnRUaW1pbmc7CisgICAgUmVmUHRyPE1lZGlh
UXVlcnlNYXRjaGVyPiBtX21lZGlhUXVlcnlNYXRjaGVyOwogfTsKIAogaW5saW5lIGJvb2wgRG9j
dW1lbnQ6OkRvY3VtZW50T3JkZXJlZE1hcDo6Y29udGFpbnMoQXRvbWljU3RyaW5nSW1wbCogaWQp
IGNvbnN0CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IGI1MzM3ZjkuLjI3ZjQwZWMgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3Bw
CkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9r
aWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTY3LDcgKzY4LDggQEAKICNpbmNsdWRlICJJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSAiTG9jYXRpb24u
aCIKLSNpbmNsdWRlICJTdHlsZU1lZGlhLmgiCisjaW5jbHVkZSAiTWVkaWFRdWVyeUxpc3QuaCIK
KyNpbmNsdWRlICJNZWRpYVF1ZXJ5TWF0Y2hlci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VFdmVudC5o
IgogI2luY2x1ZGUgIk5hdmlnYXRvci5oIgogI2luY2x1ZGUgIk5vdGlmaWNhdGlvbkNlbnRlci5o
IgpAQCAtODMsNiArODUsNyBAQAogI2luY2x1ZGUgIlN0b3JhZ2UuaCIKICNpbmNsdWRlICJTdG9y
YWdlQXJlYS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VOYW1lc3BhY2UuaCIKKyNpbmNsdWRlICJTdHls
ZU1lZGlhLmgiCiAjaW5jbHVkZSAiU3VkZGVuVGVybWluYXRpb24uaCIKICNpbmNsdWRlICJXZWJL
aXRQb2ludC5oIgogI2luY2x1ZGUgPGFsZ29yaXRobT4KQEAgLTQxMSw2ICs0MTQsMTEgQEAgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogRE9NV2luZG93OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkg
Y29uc3QKICAgICByZXR1cm4gZG9jdW1lbnQoKTsKIH0KIAorUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5
TGlzdD4gRE9NV2luZG93OjptYXRjaE1lZGlhKGNvbnN0IFN0cmluZyYgbWVkaWEpCit7CisgICAg
cmV0dXJuIGRvY3VtZW50KCkgPyBkb2N1bWVudCgpLT5tZWRpYVF1ZXJ5TWF0Y2hlcigpLT5tYXRj
aE1lZGlhKG1lZGlhKSA6IDA7Cit9CisKIHZvaWQgRE9NV2luZG93OjpkaXNjb25uZWN0RnJhbWUo
KQogewogICAgIG1fZnJhbWUgPSAwOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
dy5oIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCmluZGV4IGNiNTI0YTAuLjY4YjIxZmYgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAorKysgYi9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3
LCAyMDA5IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU4LDEwICs1OSwxMSBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgY2xhc3MgSGlzdG9yeTsKICAgICBjbGFzcyBJREJGYWN0b3J5OwogICAg
IGNsYXNzIExvY2F0aW9uOwotICAgIGNsYXNzIFN0eWxlTWVkaWE7CisgICAgY2xhc3MgTWVkaWFR
dWVyeUxpc3Q7CiAgICAgY2xhc3MgTmF2aWdhdG9yOwogICAgIGNsYXNzIE5vZGU7CiAgICAgY2xh
c3MgTm90aWZpY2F0aW9uQ2VudGVyOworICAgIGNsYXNzIFN0eWxlTWVkaWE7CiAKICNpZiBFTkFC
TEUoV0VCX1RJTUlORykKICAgICBjbGFzcyBQZXJmb3JtYW5jZTsKQEAgLTk2LDYgKzk4LDggQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZvaWQgY2xlYXIoKTsKIAorICAgICAgICBQ
YXNzUmVmUHRyPE1lZGlhUXVlcnlMaXN0PiBtYXRjaE1lZGlhKGNvbnN0IFN0cmluZyYpOworCiAj
aWYgRU5BQkxFKE9SSUVOVEFUSU9OX0VWRU5UUykKICAgICAgICAgLy8gVGhpcyBpcyB0aGUgaW50
ZXJmYWNlIG9yaWVudGF0aW9uIGluIGRlZ3JlZXMuIFNvbWUgZXhhbXBsZXMgYXJlOgogICAgICAg
ICAvLyAgMCBpcyBzdHJhaWdodCB1cDsgLTkwIGlzIHdoZW4gdGhlIGRldmljZSBpcyByb3RhdGVk
IDkwIGNsb2Nrd2lzZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsIGIv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKaW5kZXggYjkzZmY1NS4uOWVmY2UxNyAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKKysrIGIvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5pZGwKQEAgLTE0MCw3ICsxNDAsMTAgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBEb2N1bWVudCBkb2N1bWVudDsKIAogICAgICAgICAvLyBDU1NPTSBW
aWV3IE1vZHVsZQorCisgICAgICAgIC8vIHN0eWxlTWVkaWEgaGFzIGJlZW4gcmVtb3ZlZCBmcm9t
IHRoZSBjc3NvbS12aWV3IHNwZWNpZmljYXRpb24uCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBTdHlsZU1lZGlhIHN0eWxlTWVkaWE7CisgICAgICAgIE1lZGlhUXVlcnlMaXN0IG1hdGNoTWVk
aWEoaW4gRE9NU3RyaW5nIHF1ZXJ5KTsKIAogICAgICAgICAvLyBET00gTGV2ZWwgMiBTdHlsZSBJ
bnRlcmZhY2UKICAgICAgICAgQ1NTU3R5bGVEZWNsYXJhdGlvbiBnZXRDb21wdXRlZFN0eWxlKGlu
IEVsZW1lbnQgZWxlbWVudCwKLS0gCjEuNy4yLjIKCg==
</data>
<flag name="review"
          id="65085"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>