<?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>7323</bug_id>
          
          <creation_ts>2006-02-17 04:01:59 -0800</creation_ts>
          <short_desc>REGRESSION (10.4.4): ondrag* events don&apos;t fire on page in a frame</short_desc>
          <delta_ts>2006-12-18 11:50:23 -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>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>HasReduction, InRadar, Regression</keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Blomberg">adamblom.berg</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>ap</cc>
    
    <cc>darin</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>ian</cc>
    
    <cc>info</cc>
    
    <cc>mitz</cc>
    
    <cc>sebastienboisvert</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>33117</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Blomberg">adamblom.berg</who>
    <bug_when>2006-02-17 04:01:59 -0800</bug_when>
    <thetext>The events ondragover, ondragenter, ondragleave (and ondrop) don&apos;t fire on elements in a document  viewed in a frame. When viewing the same document in a stand-alone window, the events do fire.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33118</commentid>
    <comment_count>1</comment_count>
      <attachid>6560</attachid>
    <who name="Adam Blomberg">adamblom.berg</who>
    <bug_when>2006-02-17 04:03:21 -0800</bug_when>
    <thetext>Created attachment 6560
A document

A document. Displays JavaScript alerts when the link is dragged over the text &quot;...here&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33119</commentid>
    <comment_count>2</comment_count>
      <attachid>6561</attachid>
    <who name="Adam Blomberg">adamblom.berg</who>
    <bug_when>2006-02-17 04:04:35 -0800</bug_when>
    <thetext>Created attachment 6561
A frameset

A frameset. When the previously attached document is viewed within this frame, the drag events don&apos;t fire</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33151</commentid>
    <comment_count>3</comment_count>
    <who name="Joost de Valk (AlthA)">joost</who>
    <bug_when>2006-02-17 14:08:44 -0800</bug_when>
    <thetext>Could you attach a working frameset testcase? :) thx!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33154</commentid>
    <comment_count>4</comment_count>
      <attachid>6568</attachid>
    <who name="Joost de Valk (AlthA)">joost</who>
    <bug_when>2006-02-17 14:21:44 -0800</bug_when>
    <thetext>Created attachment 6568
Frameset</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33155</commentid>
    <comment_count>5</comment_count>
    <who name="Joost de Valk (AlthA)">joost</who>
    <bug_when>2006-02-17 14:22:20 -0800</bug_when>
    <thetext>Did it myself :) testcase confirms the behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42693</commentid>
    <comment_count>6</comment_count>
    <who name="Thomas Schumann">info</who>
    <bug_when>2006-05-17 03:26:08 -0700</bug_when>
    <thetext>Hello, 

we used this features in some big picture workflow webapplikations and we have also trouble with this. We have created a safari package, which used the older webkit from mac OSX 10.4.3.
But this can be for us only a short workaround.

I&apos;m hope that&apos;s the ondrag* functions soon works again in frames.

I has posting the bug by burgreport.apple.com. There is also a testcase. Bugreport there ist 4504308. 

Can you give us a prognosis for bugfix?

Kindest regards

Thomas Schumann

Dresden 
GERMANY
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42711</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-05-17 09:48:58 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; We have created a safari package, which used the older webkit from mac OSX 10.4.3.

Do you mean that this worked in 10.4.3, and broke starting with 10.4.4?? The report doesn&apos;t mention this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42792</commentid>
    <comment_count>8</comment_count>
    <who name="Thomas Schumann">info</who>
    <bug_when>2006-05-18 00:14:39 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; We have created a safari package, which used the older webkit from mac OSX 10.4.3.
&gt; Do you mean that this worked in 10.4.3, and broke starting with 10.4.4?? The
&gt; report doesn&apos;t mention this.

Hello,
first, sorry for my bad english...
This is the situation:
- ondrag* events worked in OSX 10.4.3 with Safari 2.0.2 also in framesets.
- ondrag* events don&apos;t work in OSX 10.4.4 in framesets, only of the self page, where is started the event

As workaround for our customer, we has created a safari 2.0.2 package with included webkit framework from mac OSX 10.4.3. (see www.michelf.com/weblog/2005/mutli-safari) . This &quot;personal&quot; Safari can used also in 10.4.4, separately to Safari 2.0.3.
But this can be only a temporarly workaround.
Thomas Schumann
Dresden
GERMANY

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42794</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-05-18 00:35:46 -0700</bug_when>
    <thetext>Thank you for the clarification! Based on this additional information, I&apos;m marking the bug as Regression/P1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42804</commentid>
    <comment_count>10</comment_count>
    <who name="Thomas Schumann">info</who>
    <bug_when>2006-05-18 01:55:08 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Thank you for the clarification! Based on this additional information, I&apos;m
&gt; marking the bug as Regression/P1.

Fine! Can I hope so, the bug are fixed in the (near) future?
Kindest regards
Thomas Schumann</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>50364</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-07-19 11:37:56 -0700</bug_when>
    <thetext>What is the expected behavior here? I can see that ondragenter works in WinIE, but other events don&apos;t (even when not in a subframe).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>50366</commentid>
    <comment_count>12</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-07-19 11:51:48 -0700</bug_when>
    <thetext>Filed bug 10011 for an unrelated issue (assertion failure) discovered with this test case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>50426</commentid>
    <comment_count>13</comment_count>
      <attachid>9580</attachid>
    <who name="Thomas Schumann">info</who>
    <bug_when>2006-07-20 00:12:52 -0700</bug_when>
    <thetext>Created attachment 9580
test case for ondragover and ondragleave in Safari 2.0.2 and 2.0.3/2.0.4

I don&apos;t understand you. We have no problems in WinIE, but in Safari 2.0.3 and higher !! 

In Safari 2.0.2 works ondragover and ondragleave in single html-sites AND framesets.
Under Safari 2.0.3 works ONLY in single html-sites. We have programmed some web-applikations and need&apos;s the feature in framesets again.

Here a zip with a simple test case (3 html-sites and 2 pictures).
Load the frameset.html and drag the blue picture over picture2 in left or right frame. In safari 2.0.2 you see a alert-Messagebox &quot;ondragover&quot; or &quot;ondragleave&quot;. In safari 2.0.3) you don&apos;t see the message.

Load only the left.html and drag the blue picture over picture2.
In safari 2.0.2 AND in safari 2.0.3 you see the alert.

Thanks for reply

Thomas Schumann</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>50431</commentid>
    <comment_count>14</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-07-20 03:54:56 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; I don&apos;t understand you. We have no problems in WinIE, but in Safari 2.0.3 and
&gt; higher !! 

Thank you for the new test case - it clarifies a lot! Please note that the original test case for this bug doesn&apos;t fully work in WinIE (probably because &lt;p&gt; is used there, rather than &lt;img&gt;) - this was the reason for my confusion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>50432</commentid>
    <comment_count>15</comment_count>
    <who name="Thomas Schumann">info</who>
    <bug_when>2006-07-20 04:20:03 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; Thank you for the new test case - it clarifies a lot! Please note that the
&gt; original test case for this bug doesn&apos;t fully work in WinIE (probably because
&gt; &lt;p&gt; is used there, rather than &lt;img&gt;) - this was the reason for my confusion.

Fine. In the moment we have 3 big web-applikation installations, which are using ondrag* events. 
The discussions with our customers, why safari 2.0.2 and not a current safari version, is a very big problem for us. We needs your help...
Kindest regards
Thomas Schumann</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>49556</commentid>
    <comment_count>16</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-10-26 13:19:54 -0700</bug_when>
    <thetext>I have a fix, now struggling with DumpRenderTree to make a test (its dragging delegate does strange things).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>48515</commentid>
    <comment_count>17</comment_count>
      <attachid>11274</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-10-29 05:10:15 -0800</bug_when>
    <thetext>Created attachment 11274
proposed fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>48523</commentid>
    <comment_count>18</comment_count>
      <attachid>11274</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-10-29 11:57:40 -0800</bug_when>
    <thetext>Comment on attachment 11274
proposed fix

Hmm, now that layout tests work again, I see some unexpected failures - will need to investigate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>48544</commentid>
    <comment_count>19</comment_count>
      <attachid>11281</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-10-29 22:52:27 -0800</bug_when>
    <thetext>Created attachment 11281
proposed fix

All layout tests pass now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>47523</commentid>
    <comment_count>20</comment_count>
      <attachid>11343</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-11-01 22:24:49 -0800</bug_when>
    <thetext>Created attachment 11343
proposed fix

Updated to cleanly apply to current trunk.

Factored out [EventSendingController saveEvent:], as suggested by Mitz (and tested that the patch doesn&apos;t break &lt;input type=search&gt; in subframes).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>47599</commentid>
    <comment_count>21</comment_count>
      <attachid>11343</attachid>
    <who name="Adele Peterson">adele</who>
    <bug_when>2006-11-03 00:18:03 -0800</bug_when>
    <thetext>Comment on attachment 11343
proposed fix

looks good.  editing/selection/select-from-textfield-outwards.html has some commented alerts that can be removed.  r=me, nice job!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>47632</commentid>
    <comment_count>22</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2006-11-03 10:47:38 -0800</bug_when>
    <thetext>Landed in r17574</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>47639</commentid>
    <comment_count>23</comment_count>
    <who name="Thomas Schumann">info</who>
    <bug_when>2006-11-03 12:41:40 -0800</bug_when>
    <thetext>(In reply to comment #22)
&gt; Landed in r17574


Is the fix available in the next safari-update?
I hope so...

Thank you for work.
Best regards
Thomas

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>47289</commentid>
    <comment_count>24</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-11-03 12:46:54 -0800</bug_when>
    <thetext>(In reply to comment #23)
&gt; Is the fix available in the next safari-update?

Most likely, no-one here will be able to answer this - open source contributors have nothing to do with releases from Apple, Omni, Adobe or other vendors, and Apple developers are generally not allowed to discuss future releases.

You may try asking via official channels (http://bugreport.apple.com and DTS).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>47269</commentid>
    <comment_count>25</comment_count>
    <who name="Thomas Schumann">info</who>
    <bug_when>2006-11-03 12:54:54 -0800</bug_when>
    <thetext>Thanks, but is the fix included in the next webkit-Package?

I will make a official entry in the bugreport of apple. There is the problem already known.

Have a nice evening.
Thomas

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>47270</commentid>
    <comment_count>26</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-11-03 13:01:01 -0800</bug_when>
    <thetext>(In reply to comment #25)
&gt; Thanks, but is the fix included in the next webkit-Package?

Are you asking about nightly builds from http://nightly.webkit.org? The fix is not yet there at the moment (the latest build is r17566, while the fix was landed in r17574), but it will be soon. Please let us know how it works!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>47229</commentid>
    <comment_count>27</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-11-03 13:15:09 -0800</bug_when>
    <thetext>(In reply to comment #25)
&gt; I will make a official entry in the bugreport of apple. There is the problem
&gt; already known.

Per Comment #6, there is already a Radar bug for this, so no need to file another one:  rdar://problem/4504308.  If you haven&apos;t mentioned that this regression occurred in Safari 2.0.3 in Mac OS X 10.4.4 in that bug, I would definitely do that.

Apple doesn&apos;t comment on future product releases (except iTV), so there&apos;s no telling when this bug will be fixed, but I&apos;m sure the Safari team will be very interested in regressions introduced in a Tiger update.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>47044</commentid>
    <comment_count>28</comment_count>
    <who name="Thomas Schumann">info</who>
    <bug_when>2006-11-04 00:31:05 -0800</bug_when>
    <thetext>I have not found Version r17566. 
But i have tested with latest version r17587 (is this correct?).
There ist the functionality back, super!!
What can i do now? Awaiting of fix implementation in the next Tiger update from apple team (how David Kilzer wrote)?
Best regards
Thomas</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>46811</commentid>
    <comment_count>29</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-11-05 03:05:13 -0800</bug_when>
    <thetext>This has caused a regression in plugin event dispatching, bug 11517.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41352</commentid>
    <comment_count>30</comment_count>
    <who name="">mitz</who>
    <bug_when>2006-12-18 11:50:23 -0800</bug_when>
    <thetext>*** Bug 9056 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>6560</attachid>
            <date>2006-02-17 04:03:21 -0800</date>
            <delta_ts>2006-02-17 04:03:21 -0800</delta_ts>
            <desc>A document</desc>
            <filename>doc.html</filename>
            <type>text/html</type>
            <size>211</size>
            <attacher name="Adam Blomberg">adamblom.berg</attacher>
            
              <data encoding="base64">PGh0bWw+CiAgPGJvZHk+CiAgICA8cD4KICAgICAgPGEgaHJlZj0iIyI+RHJhZyBtZTwvYT4KICAg
IDwvcD4KICAgIDxwIG9uZHJhZ2VudGVyPSJhbGVydCgnZHJhZ2VudGVyJyk7IiBvbmRyYWdsZWF2
ZT0iYWxlcnQoJ2RyYWdsZWF2ZScpOyIgb25kcmFnb3Zlcj0iYWxlcnQoJ2RyYWdvdmVyJyk7Ij4K
ICAgICAgLi4uaGVyZQogICAgPC9wPgogIDwvYm9keT4KPC9odG1sPg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>6561</attachid>
            <date>2006-02-17 04:04:35 -0800</date>
            <delta_ts>2006-02-17 14:21:44 -0800</delta_ts>
            <desc>A frameset</desc>
            <filename>frame.html</filename>
            <type>text/html</type>
            <size>68</size>
            <attacher name="Adam Blomberg">adamblom.berg</attacher>
            
              <data encoding="base64">PGh0bWw+CiAgPGZyYW1lc2V0PgogICAgPGZyYW1lIHNyYz0iZG9jLmh0bWwiPgogIDwvZnJhbWVz
ZXQ+CjwvaHRtbD4=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>6568</attachid>
            <date>2006-02-17 14:21:44 -0800</date>
            <delta_ts>2006-02-17 14:21:44 -0800</delta_ts>
            <desc>Frameset</desc>
            <filename>test.html</filename>
            <type>text/html</type>
            <size>81</size>
            <attacher name="Joost de Valk (AlthA)">joost</attacher>
            
              <data encoding="base64">PGlmcmFtZSBzcmM9Imh0dHA6Ly9idWd6aWxsYS5vcGVuZGFyd2luLm9yZy9hdHRhY2htZW50LmNn
aT9pZD02NTYwJmFjdGlvbj12aWV3Ii8+
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>9580</attachid>
            <date>2006-07-20 00:12:52 -0700</date>
            <delta_ts>2006-07-20 03:31:32 -0700</delta_ts>
            <desc>test case for ondragover and ondragleave in Safari 2.0.2 and 2.0.3/2.0.4</desc>
            <filename>safariEvents.zip</filename>
            <type>application/octet-stream</type>
            <size>6485</size>
            <attacher name="Thomas Schumann">info</attacher>
            
              <data encoding="base64">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
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>11274</attachid>
            <date>2006-10-29 05:10:15 -0800</date>
            <delta_ts>2006-10-29 22:52:27 -0800</delta_ts>
            <desc>proposed fix</desc>
            <filename>7323r1_patch.txt</filename>
            <type>text/plain</type>
            <size>36111</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE3NDEzKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMDYtMTAtMjkgIEFsZXhleSBQcm9za3VyeWFr
b3YgIDxhcEBueXBvcC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGVzdCBmb3IgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzMyMworICAgICAgICBSRUdSRVNTSU9OICgxMC40LjQpOiBvbmRyYWcqIGV2ZW50cyBkb24n
dCBmaXJlIG9uIHBhZ2UgaW4gYSBmcmFtZQorCisgICAgICAgICogZmFzdC9ldmVudHMvZHJhZy1p
bi1mcmFtZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9kcmFn
LWluLWZyYW1lcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9yZXNvdXJjZXMv
ZHJhZy1pbi1mcmFtZXMtY29uc29sZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50
cy9yZXNvdXJjZXMvZHJhZy1pbi1mcmFtZXMtbGVmdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2V2ZW50cy9yZXNvdXJjZXMvZHJhZy1pbi1mcmFtZXMtcmlnaHQuaHRtbDogQWRkZWQuCisK
KyAgICAgICAgKiBmYXN0L2V2ZW50cy9yZXNvdXJjZXMvZHJhZy1vdXRzaWRlLXdpbmRvdy1mcmFt
ZS5odG1sOgorICAgICAgICAqIGZhc3QvZHluYW1pYy9sYXllci1oaXQtdGVzdC1jcmFzaC5odG1s
OgorICAgICAgICAqIGZhc3QvZXZlbnRzL2V2ZW50LXZpZXctdG9TdHJpbmcuaHRtbDoKKyAgICAg
ICAgQWRkZWQgbWlzc2luZyBjYWxscyB0byBtb3VzZVVwKCkuCisKIDIwMDYtMTAtMzAgIE1hcmsg
Um93ZSAgPGJkYXNoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFjaWVqLgpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9keW5hbWljL2xheWVyLWhpdC10ZXN0LWNyYXNoLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9keW5hbWljL2xheWVyLWhpdC10ZXN0LWNy
YXNoLmh0bWwJKHJldmlzaW9uIDE3NDExKQorKysgTGF5b3V0VGVzdHMvZmFzdC9keW5hbWljL2xh
eWVyLWhpdC10ZXN0LWNyYXNoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDggQEAg
ZnVuY3Rpb24gbW92ZU1vdXNlKCkKIAogZnVuY3Rpb24gZmluaXNoKCkKIHsKKyAgICBpZiAod2lu
ZG93LmV2ZW50U2VuZGVyKQorICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CiAgICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIubm90aWZ5RG9uZSgpOwogfQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZHJhZy1p
bi1mcmFtZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL2RyYWctaW4tZnJhbWVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL2RyYWctaW4tZnJhbWVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwxNiBAQAorRXZlbnQgbG9nCisKK29uZHJhZ3N0YXJ0IHNyYworb25kcmFnIHNy
Yworb25kcmFnZW50ZXIgbGVmdCB0YXJnZXQKK29uZHJhZyBzcmMKK29uZHJhZ292ZXIgbGVmdCB0
YXJnZXQKK29uZHJhZyBzcmMKK29uZHJhZ2VudGVyIHJpZ2h0IHRhcmdldAorb25kcmFnbGVhdmUg
bGVmdCB0YXJnZXQKK29uZHJhZyBzcmMKK29uZHJhZ292ZXIgcmlnaHQgdGFyZ2V0CitvbmRyYWdv
dmVyIHJpZ2h0IHRhcmdldAorb25kcm9wIHJpZ2h0IHRhcmdldAorb25kcmFnZW5kIHNyYworCgpQ
cm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9kcmFnLWluLWZyYW1l
cy1leHBlY3RlZC50eHQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsgdGV4dC9w
bGFpbgpOYW1lOiBzdm46ZW9sLXN0eWxlCiAgICsgbmF0aXZlCgpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvZHJhZy1pbi1mcmFtZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9kcmFnLWluLWZyYW1lcy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvZHJhZy1pbi1mcmFtZXMuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSw3MSBAQAorPGhlYWQ+DQorPHNjcmlwdD4NCitmdW5jdGlvbiBsb2cobWVzc2FnZSkgew0K
KyAgICBjb25zb2xlX2RvYyA9IGZyYW1lc1syXS5kb2N1bWVudDsNCisgICAgdmFyIGl0ZW0gPSBj
b25zb2xlX2RvYy5jcmVhdGVFbGVtZW50KCJsaSIpOw0KKyAgICBpdGVtLmFwcGVuZENoaWxkKGNv
bnNvbGVfZG9jLmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UpKTsNCisgICAgY29uc29sZV9kb2MuZ2V0
RWxlbWVudEJ5SWQoJ2NvbnNvbGVfbWVzc2FnZXMnKS5hcHBlbmRDaGlsZChpdGVtKTsNCit9DQor
DQorZnVuY3Rpb24gdGVzdCgpIHsNCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikgew0KKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOw0KKyAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOw0KKw0KKyAgICAgICAgLy8g
RmluZCB0aGUgZWxlbWVudCB0byBkcmFnDQorICAgICAgICBlbGVtZW50VG9EcmFnID0gZnJhbWVz
WzBdLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlbGVtZW50VG9EcmFnIik7DQorICAgICAgICB4
MSA9IGVsZW1lbnRUb0RyYWcub2Zmc2V0TGVmdCArIGVsZW1lbnRUb0RyYWcub2Zmc2V0V2lkdGgg
LyAyOw0KKyAgICAgICAgeTEgPSBlbGVtZW50VG9EcmFnLm9mZnNldFRvcCArIGVsZW1lbnRUb0Ry
YWcub2Zmc2V0SGVpZ2h0IC8gMjsNCisNCisgICAgICAgIC8vIERyYWcgdG8gdGhlIG1pZGRsZSBv
ZiB0aGUgZGVzdGluYXRpb24gZWxlbWVudCBpbiB0aGUgc2FtZSBmcmFtZQ0KKyAgICAgICAgZHJh
Z1RhcmdldCA9IGZyYW1lc1swXS5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZHJhZ1RhcmdldCIp
Ow0KKyAgICAgICAgeDIgPSBkcmFnVGFyZ2V0Lm9mZnNldExlZnQgKyBkcmFnVGFyZ2V0Lm9mZnNl
dFdpZHRoIC8gMjsNCisgICAgICAgIHkyID0gZHJhZ1RhcmdldC5vZmZzZXRUb3AgKyBkcmFnVGFy
Z2V0Lm9mZnNldEhlaWdodCAvIDI7DQorDQorICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVU
byh4MSx5MSk7DQorICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsNCisgICAgICAgIGV2
ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgyLCB5Mik7DQorICAgICAgICBldmVudFNlbmRlci5tb3Vz
ZU1vdmVUbyh4MiwgeTIrMSk7DQorICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4Miwg
eTIrMik7DQorDQorICAgICAgICAvLyBEcmFnIHRvIHRoZSBtaWRkbGUgb2YgdGhlIGRlc3RpbmF0
aW9uIGVsZW1lbnQgaW4gYW5vdGhlciBmcmFtZQ0KKyAgICAgICAgZHJhZ1RhcmdldDIgPSBmcmFt
ZXNbMV0uZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRyYWdUYXJnZXQyIik7DQorICAgICAgICB4
MyA9IDE1MCArIGRyYWdUYXJnZXQyLm9mZnNldExlZnQgKyBkcmFnVGFyZ2V0Mi5vZmZzZXRXaWR0
aCAvIDI7DQorICAgICAgICB5MyA9IGRyYWdUYXJnZXQyLm9mZnNldFRvcCArIGRyYWdUYXJnZXQy
Lm9mZnNldEhlaWdodCAvIDI7DQorDQorICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4
MywgeTMpOw0KKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeDMsIHkzKzEpOw0KKyAg
ICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOw0KKw0KKyAgICAgICAgZG9jdW1lbnQud3JpdGUo
Ijxib2R5PiIgKyANCisgICAgICAgICAgICBmcmFtZXNbMl0uZG9jdW1lbnQuYm9keS5pbm5lckhU
TUwgKyANCisgICAgICAgICAgICAiPHNjciIgKyAiaXB0PmxheW91dFRlc3RDb250cm9sbGVyLm5v
dGlmeURvbmUoKTs8L3NjciIgKyAiaXB0PiIgKyANCisgICAgICAgICAgICAiVGhlc2UgcmVzdWx0
cyBhcmUganVzdCBcInNlbnNpYmxlXCIgYXQgdGhlIG1vbWVudCwgbWVhbmluZyB0aGF0ICIgKw0K
KyAgICAgICAgICAgICJhbGwgdGhlIGV2ZW50cyBmaXJlIG9uIHRoZSByaWdodCBlbGVtZW50cywg
bm90aGluZyBtb3JlLiBUaGUgb3JkZXIgaW4gcGFydGljdWxhciAiKw0KKyAgICAgICAgICAgICJj
YW4gcmlnaHRmdWxseSBjaGFuZ2UuIiArDQorICAgICAgICAgICAgIjwvYm9keT4iKTsNCisgICAg
fQ0KK30NCis8L3NjcmlwdD4NCis8L2hlYWQ+DQorPCEtLSBmcmFtZXMgLS0+DQorPGZyYW1lc2V0
ICBjb2xzPSIxNTAsMTUwLCoiIGJvcmRlcj0iMCIgb25sb2FkPSJ0ZXN0KCk7Ij4NCisNCisgICAg
PGZyYW1lIG5hbWU9ImxlZnQiIHNyYz0icmVzb3VyY2VzL2RyYWctaW4tZnJhbWVzLWxlZnQuaHRt
bCIgbWFyZ2lud2lkdGg9IjEwIiBtYXJnaW5oZWlnaHQ9IjEwIiBzY3JvbGxpbmc9ImF1dG8iIGZy
YW1lYm9yZGVyPSIwIg0KKyAgICAgICAgICAgICAgICAgb25kcmFnPSJhbGVydCgnb25kcmFnIGxl
ZnQgZnJhbWUnKSINCisgICAgICAgICAgICAgICAgIG9uZHJvcD0iYWxlcnQoJ29uZHJvcCBsZWZ0
IGZyYW1lJykiDQorICAgICAgICAgICAgICAgICBvbmRyYWdzdGFydD0iYWxlcnQoJ29uZHJhZ3N0
YXJ0IGxlZnQgZnJhbWUnKSINCisgICAgICAgICAgICAgICAgIG9uZHJhZ2VuZD0iYWxlcnQoJ29u
ZHJhZ2VuZCBsZWZ0IGZyYW1lJykiDQorICAgICAgICAgICAgICAgICBvbmRyYWdlbnRlcj0ibG9n
KCdvbmRyYWdlbnRlciBsZWZ0IGZyYW1lJykiDQorICAgICAgICAgICAgICAgICBvbmRyYWdvdmVy
PSJsb2coJ29uZHJhZ292ZXIgbGVmdCBmcmFtZScpIg0KKyAgICAgICAgICAgICAgICAgb25kcmFn
bGVhdmU9ImxvZygnb25kcmFnbGVhdmUgbGVmdCBmcmFtZScpIj4NCisgICAgPGZyYW1lIG5hbWU9
InJpZ2h0IiBzcmM9InJlc291cmNlcy9kcmFnLWluLWZyYW1lcy1yaWdodC5odG1sIiBtYXJnaW53
aWR0aD0iMTAiIG1hcmdpbmhlaWdodD0iMTAiIHNjcm9sbGluZz0iYXV0byIgZnJhbWVib3JkZXI9
IjAiDQorICAgICAgICAgICAgICAgICBvbmRyYWc9ImFsZXJ0KCdvbmRyYWcgcmlnaHQgZnJhbWUn
KSINCisgICAgICAgICAgICAgICAgIG9uZHJvcD0iYWxlcnQoJ29uZHJvcCByaWdodCBmcmFtZScp
Ig0KKyAgICAgICAgICAgICAgICAgb25kcmFnc3RhcnQ9ImFsZXJ0KCdvbmRyYWdzdGFydCByaWdo
dCBmcmFtZScpIg0KKyAgICAgICAgICAgICAgICAgb25kcmFnZW5kPSJhbGVydCgnb25kcmFnZW5k
IHJpZ2h0IGZyYW1lJykiDQorICAgICAgICAgICAgICAgICBvbmRyYWdlbnRlcj0ibG9nKCdvbmRy
YWdlbnRlciByaWdodCBmcmFtZScpIg0KKyAgICAgICAgICAgICAgICAgb25kcmFnb3Zlcj0ibG9n
KCdvbmRyYWdvdmVyIHJpZ2h0IGZyYW1lJykiDQorICAgICAgICAgICAgICAgICBvbmRyYWdsZWF2
ZT0ibG9nKCdvbmRyYWdsZWF2ZSByaWdodCBmcmFtZScpIj4NCisgICAgPGZyYW1lIG5hbWU9ImNv
bnNvbGUiIHNyYz0icmVzb3VyY2VzL2RyYWctaW4tZnJhbWVzLWNvbnNvbGUuaHRtbCIgIG1hcmdp
bndpZHRoPSIxMCIgbWFyZ2luaGVpZ2h0PSIxMCIgc2Nyb2xsaW5nPSJhdXRvIiBmcmFtZWJvcmRl
cj0iMCI+DQorPC9mcmFtZXNldD4NCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9kcmFnLWluLWZyYW1lcy5odG1sCl9fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOm1pbWUt
dHlwZQogICArIHRleHQvaHRtbAoKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2V2ZW50
LXZpZXctdG9TdHJpbmcuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9ldmVudC12aWV3LXRvU3RyaW5nLmh0bWwJKHJldmlzaW9uIDE3NDExKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvZXZlbnQtdmlldy10b1N0cmluZy5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0zMSw2ICszMSw3IEBACiAJCWlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKIAkJCWV2ZW50U2Vu
ZGVyLm1vdXNlTW92ZVRvKDUwLCA1MCk7CiAJCQlldmVudFNlbmRlci5tb3VzZURvd24oKTsKKwkJ
CWV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKIAkJfSBlbHNlIHsKIAkJCXJlc3VsdHNEaXYuaW5uZXJI
VE1MICs9ICJNYW51YWwgdGVzdCBtb2RlLjxici8+IjsKIAkJfQpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvcmVzb3VyY2VzL2RyYWctaW4tZnJhbWVzLWNvbnNvbGUuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZXNvdXJjZXMvZHJhZy1pbi1mcmFtZXMt
Y29uc29sZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVz
b3VyY2VzL2RyYWctaW4tZnJhbWVzLWNvbnNvbGUuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSw0IEBACis8Ym9keT4KKzxoND5FdmVudCBsb2c8L2g0PgorPHVsIGlkPSdjb25zb2xlX21lc3Nh
Z2VzJyBzdHlsZT0nZm9udC1zaXplOjhweCc+PC91bD4KKzwvYm9keT4KClByb3BlcnR5IGNoYW5n
ZXMgb246IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Jlc291cmNlcy9kcmFnLWluLWZyYW1lcy1j
b25zb2xlLmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsgdGV4dC9odG1s
CgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVzb3VyY2VzL2RyYWctaW4tZnJhbWVz
LWxlZnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZXNvdXJj
ZXMvZHJhZy1pbi1mcmFtZXMtbGVmdC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvcmVzb3VyY2VzL2RyYWctaW4tZnJhbWVzLWxlZnQuaHRtbAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSw0OSBAQAorPGh0bWw+DQorPGhlYWQ+DQorICAgIDx0aXRsZT5MZWZ0PC90
aXRsZT4NCis8L2hlYWQ+DQorDQorPGJvZHkgc3R5bGU9Im1hcmdpbjowOyBwYWRkaW5nOjAiPg0K
Kw0KKzxzY3JpcHQ+DQorZnVuY3Rpb24gbG9nKG1lc3NhZ2UpIHsNCisgICAgY29uc29sZV9kb2Mg
PSBwYXJlbnQuZnJhbWVzWzJdLmRvY3VtZW50Ow0KKyAgICB2YXIgaXRlbSA9IGNvbnNvbGVfZG9j
LmNyZWF0ZUVsZW1lbnQoImxpIik7DQorICAgIGl0ZW0uYXBwZW5kQ2hpbGQoY29uc29sZV9kb2Mu
Y3JlYXRlVGV4dE5vZGUobWVzc2FnZSkpOw0KKyAgICBjb25zb2xlX2RvYy5nZXRFbGVtZW50QnlJ
ZCgnY29uc29sZV9tZXNzYWdlcycpLmFwcGVuZENoaWxkKGl0ZW0pOw0KK30NCis8L3NjcmlwdD4N
CisNCis8ZGl2IHN0eWxlPSJ3aWR0aDoxNTA7IGhlaWdodDo3NTsgdGV4dC1hbGlnbjpjZW50ZXI7
Ij4NCisgIDxhIGlkPSJlbGVtZW50VG9EcmFnIg0KKyAgICAgaHJlZj0iIyINCisgICAgIHN0eWxl
PSJwb3NpdGlvbjogcmVsYXRpdmU7IHRvcDogNTAiDQorICAgICBvbmRyYWc9ImxvZygnb25kcmFn
IHNyYycpIg0KKyAgICAgb25kcmFnc3RhcnQ9ImxvZygnb25kcmFnc3RhcnQgc3JjJykiDQorICAg
ICBvbmRyYWdlbmQ9ImxvZygnb25kcmFnZW5kIHNyYycpIg0KKyAgICAgb25kcmFnZW50ZXI9Imxv
Zygnb25kcmFnZW50ZXIgc3JjJykiDQorICAgICBvbmRyYWdvdmVyPSJsb2coJ29uZHJhZ292ZXIg
c3JjJykiDQorICAgICBvbmRyYWdsZWF2ZT0ibG9nKCdvbmRyYWdsZWF2ZSBzcmMnKSINCisgICAg
IG9uZHJvcD0ibG9nKCdvbmRyb3Agc3JjJykiPg0KKyAgRHJhZyBtZQ0KKyAgPC9hPg0KKzwvZGl2
Pg0KKw0KKzxkaXYgaWQ9ImRyYWdUYXJnZXQiDQorICAgICBzdHlsZT0id2lkdGg6MTUwOyBoZWln
aHQ6MTUwOyBiYWNrZ3JvdW5kLWNvbG9yOmxpZ2h0Z3JlZW47IHRleHQtYWxpZ246Y2VudGVyOyIN
CisgICAgIG9uZHJhZz0iYWxlcnQoJ29uZHJhZyBsZWZ0IHRhcmdldCcpIg0KKyAgICAgb25kcmFn
c3RhcnQ9ImFsZXJ0KCdvbmRyYWdzdGFydCBsZWZ0IHRhcmdldCcpIg0KKyAgICAgb25kcmFnZW5k
PSJhbGVydCgnb25kcmFnZW5kIGxlZnQgdGFyZ2V0JykiDQorICAgICBvbmRyYWdlbnRlcj0ibG9n
KCdvbmRyYWdlbnRlciBsZWZ0IHRhcmdldCcpOyByZXR1cm4gZmFsc2U7Ig0KKyAgICAgb25kcmFn
b3Zlcj0ibG9nKCdvbmRyYWdvdmVyIGxlZnQgdGFyZ2V0Jyk7IHJldHVybiBmYWxzZTsiDQorICAg
ICBvbmRyYWdsZWF2ZT0ibG9nKCdvbmRyYWdsZWF2ZSBsZWZ0IHRhcmdldCcpIg0KKyAgICAgb25k
cm9wPSJsb2coJ29uZHJvcCBsZWZ0IHRhcmdldCcpIj4NCisgIDxzcGFuIHN0eWxlPSJwb3NpdGlv
bjogcmVsYXRpdmU7IHRvcDogNTAiPkhlcmU8L3NwYW4+DQorPC9kaXY+DQorDQorPHA+PGEgaHJl
Zj0iaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMyMyIgdGFyZ2V0PSJf
dG9wIj5CdWcgNzMyMzwvYT46IA0KK1JFR1JFU1NJT04gKDEwLjQuNCk6IG9uZHJhZyogZXZlbnRz
IGRvbid0IGZpcmUgb24gcGFnZSBpbiBhIGZyYW1lPC9wPg0KKzxwPlRoaXMgdGVzdCB3b3JrcyBv
bmx5IGluIGF1dG9tYXRpYyBtb2RlLCBidXQgeW91IGNhbiBhbHNvIHRyeSBkcmFnZ2luZyBtYW51
YWxseSB0byBjb21wYXJlIHRoZSByZXN1bHRzIHdpdGggb3RoZXIgYnJvd3NlcnMuPC9wPg0KKw0K
KzwvYm9keT4NCis8L2h0bWw+DQoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvcmVzb3VyY2VzL2RyYWctaW4tZnJhbWVzLWxlZnQuaHRtbApfX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5h
bWU6IHN2bjptaW1lLXR5cGUKICAgKyB0ZXh0L2h0bWwKCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9yZXNvdXJjZXMvZHJhZy1pbi1mcmFtZXMtcmlnaHQuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZXNvdXJjZXMvZHJhZy1pbi1mcmFtZXMtcmlnaHQu
aHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Jlc291cmNlcy9k
cmFnLWluLWZyYW1lcy1yaWdodC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMxIEBACis8
aHRtbD4NCis8aGVhZD4NCisgICAgPHRpdGxlPlJpZ2h0PC90aXRsZT4NCis8L2hlYWQ+DQorDQor
PGJvZHkgc3R5bGU9Im1hcmdpbjowOyBwYWRkaW5nOjAiPg0KKw0KKzxzY3JpcHQ+DQorZnVuY3Rp
b24gbG9nKG1lc3NhZ2UpIHsNCisgICAgY29uc29sZV9kb2MgPSBwYXJlbnQuZnJhbWVzWzJdLmRv
Y3VtZW50Ow0KKyAgICB2YXIgaXRlbSA9IGNvbnNvbGVfZG9jLmNyZWF0ZUVsZW1lbnQoImxpIik7
DQorICAgIGl0ZW0uYXBwZW5kQ2hpbGQoY29uc29sZV9kb2MuY3JlYXRlVGV4dE5vZGUobWVzc2Fn
ZSkpOw0KKyAgICBjb25zb2xlX2RvYy5nZXRFbGVtZW50QnlJZCgnY29uc29sZV9tZXNzYWdlcycp
LmFwcGVuZENoaWxkKGl0ZW0pOw0KK30NCis8L3NjcmlwdD4NCisNCis8ZGl2IHN0eWxlPSJoZWln
aHQ6NzVweCI+PC9kaXY+DQorDQorPGRpdiBpZD0iZHJhZ1RhcmdldDIiDQorICAgICBzdHlsZT0i
d2lkdGg6MTUwOyBoZWlnaHQ6MTUwOyBiYWNrZ3JvdW5kLWNvbG9yOmxpZ2h0Ymx1ZTsgdGV4dC1h
bGlnbjpjZW50ZXI7Ig0KKyAgICAgb25kcmFnPSJhbGVydCgnb25kcmFnIHJpZ2h0IHRhcmdldCcp
Ig0KKyAgICAgb25kcmFnc3RhcnQ9ImFsZXJ0KCdvbmRyYWdzdGFydCByaWdodCB0YXJnZXQnKSIN
CisgICAgIG9uZHJhZ2VuZD0iYWxlcnQoJ29uZHJhZ2VuZCByaWdodCB0YXJnZXQnKSINCisgICAg
IG9uZHJhZ2VudGVyPSJsb2coJ29uZHJhZ2VudGVyIHJpZ2h0IHRhcmdldCcpOyByZXR1cm4gZmFs
c2U7Ig0KKyAgICAgb25kcmFnb3Zlcj0ibG9nKCdvbmRyYWdvdmVyIHJpZ2h0IHRhcmdldCcpOyBy
ZXR1cm4gZmFsc2U7Ig0KKyAgICAgb25kcmFnbGVhdmU9ImxvZygnb25kcmFnbGVhdmUgcmlnaHQg
dGFyZ2V0JykiDQorICAgICBvbmRyb3A9ImxvZygnb25kcm9wIHJpZ2h0IHRhcmdldCcpIj4NCisg
IDxzcGFuIHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmU7IHRvcDogNTAiPkFuZCBoZXJlPC9zcGFu
Pg0KKzwvZGl2Pg0KKzwvYm9keT4NCis8L2h0bWw+DQoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVzb3VyY2VzL2RyYWctaW4tZnJhbWVzLXJpZ2h0Lmh0bWwK
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsgdGV4dC9odG1sCgpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVzb3VyY2VzL2RyYWctb3V0c2lkZS13aW5kb3ctZnJhbWUu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZXNvdXJjZXMvZHJh
Zy1vdXRzaWRlLXdpbmRvdy1mcmFtZS5odG1sCShyZXZpc2lvbiAxNzQxMSkKKysrIExheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3Jlc291cmNlcy9kcmFnLW91dHNpZGUtd2luZG93LWZyYW1lLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTE4LDYgKzE4LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgZXZl
bnRTZW5kZXIubW91c2VNb3ZlVG8oMTUwLCAxMDApOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93
bigpOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDUwLCAxMDApOworICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlVXAoKTsKICAgICBhbGVydCgiVGVzdCByZXN1bHQ6ICIgKyByZXN1bHQpOwogfQog
PC9zY3JpcHQ+CkluZGV4OiBXZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L0NoYW5nZUxvZwkocmV2aXNpb24gMTc0MTMpCisrKyBXZWJDb3JlL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBACisyMDA2LTEwLTI5ICBBbGV4ZXkgUHJvc2t1cnlha292
ICA8YXBAbnlwb3AuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMjMKKyAg
ICAgICAgUkVHUkVTU0lPTiAoMTAuNC40KTogb25kcmFnKiBldmVudHMgZG9uJ3QgZmlyZSBvbiBw
YWdlIGluIGEgZnJhbWUKKworICAgICAgICAqIGJyaWRnZS9tYWMvRnJhbWVNYWMuaDogTW92ZWQg
ZHJhZyBzb3VyY2UgaW5mb3JtYXRpb24gdG8gYSBzdGF0aWMgdmFyaWFibGUKKyAgICAgICAgaW4g
RnJhbWVNYWMubW0uIFRoZXJlIGNhbiBiZSBvbmx5IG9uZSBkcmFnIGFjdGl2ZSBhdCBhbnkgbW9t
ZW50LCBhbmQgaGF2aW5nIAorICAgICAgICB0aGlzIGluZm9ybWF0aW9uIGhlcmUgd2FzIG1ha2lu
ZyBzaGFyaW5nIHRoaXMgaW5mb3JtYXRpb24gYmV0d2VlbiAKKyAgICAgICAgc3ViZnJhbWVzIGhh
cmQuCisKKyAgICAgICAgKiBicmlkZ2UvbWFjL0ZyYW1lTWFjLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVNYWM6OkZyYW1lTWFjKTogSW5pdGlhbGl6ZSBzaGFyZWREcmFnSW5mby4KKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lTWFjOjpmcmVlQ2xpcGJvYXJkKToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lTWFjOjpkcmFnSHlzdGVyZXNpc0V4Y2VlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lTWFjOjpoYW5kbGVNb3VzZU1vdmVFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZU1h
Yzo6bW91c2VEb3duKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTWFjOjpkcmFnU291cmNlTW92
ZWRUbyk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZU1hYzo6ZHJhZ1NvdXJjZUVuZGVkQXQpOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVNYWM6OmRpc3BhdGNoRHJhZ1NyY0V2ZW50KToKKyAgICAg
ICAgQWNjZXNzIGRyYWcgc291cmNlIGluZm8gdmlhIHNoYXJlZERyYWdJbmZvIC0gdGhpcyBmaXhl
cyBkcmFnIHNvdXJjZSBldmVuIGRpc3BhdGNoaW5nLgorCisgICAgICAgICogcGFnZS9GcmFtZVZp
ZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojp1cGRhdGVEcmFnQW5kRHJvcCk6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmNhbmNlbERyYWdBbmREcm9wKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6cGVyZm9ybURyYWdBbmREcm9wKToKKyAgICAgICAgRm9y
d2FyZCBldmVudHMgdG8gc3ViZnJhbWVzIGZvciBkaXNwYXRjaGluZyAtIHRoaXMgZml4ZXMgZHJh
ZyB0YXJnZXQgZXZlbnRzLgorCiAyMDA2LTEwLTI5ICBNYWNpZWogU3RhY2hvd2lhayAgPG1qc0Bh
cHBsZS5jb20+CiAKICAgICAgICAgTm90IHJldmlld2VkLgpJbmRleDogV2ViQ29yZS9icmlkZ2Uv
bWFjL0ZyYW1lTWFjLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9icmlkZ2UvbWFjL0ZyYW1lTWFj
LmgJKHJldmlzaW9uIDE3NDExKQorKysgV2ViQ29yZS9icmlkZ2UvbWFjL0ZyYW1lTWFjLmgJKHdv
cmtpbmcgY29weSkKQEAgLTM3MiwxNSArMzcyLDcgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8S0pT
OjpCaW5kaW5nczo6Um9vdE9iamVjdCo+IG1fcm9vdE9iamVjdHM7CiAgICAgV2ViU2NyaXB0T2Jq
ZWN0KiBfd2luZG93U2NyaXB0T2JqZWN0OwogICAgIE5QT2JqZWN0KiBfd2luZG93U2NyaXB0TlBP
YmplY3Q7Ci0gICAgCi0gICAgUmVmUHRyPE5vZGU+IF9kcmFnU3JjOyAgICAgLy8gZWxlbWVudCB0
aGF0IG1heSBiZSBhIGRyYWcgc291cmNlLCBmb3IgdGhlIGN1cnJlbnQgbW91c2UgZ2VzdHVyZQot
ICAgIGJvb2wgX2RyYWdTcmNJc0xpbms7Ci0gICAgYm9vbCBfZHJhZ1NyY0lzSW1hZ2U7Ci0gICAg
Ym9vbCBfZHJhZ1NyY0luU2VsZWN0aW9uOwotICAgIGJvb2wgX2RyYWdTcmNNYXlCZURIVE1MLCBf
ZHJhZ1NyY01heUJlVUE7ICAgLy8gQXJlIERIVE1MIGFuZC9vciB0aGUgVXNlckFnZW50IGFsbG93
ZWQgdG8gZHJhZyBvdXQ/Ci0gICAgYm9vbCBfZHJhZ1NyY0lzREhUTUw7Ci0gICAgUmVmUHRyPENs
aXBib2FyZE1hYz4gX2RyYWdDbGlwYm9hcmQ7ICAgLy8gdXNlZCBvbiBvbmx5IHRoZSBzb3VyY2Ug
c2lkZSBvZiBkcmFnZ2luZwotICAgIAorCiAgICAgUmVmUHRyPFJhbmdlPiBtX21hcmtlZFRleHRS
YW5nZTsKIH07CiAKSW5kZXg6IFdlYkNvcmUvYnJpZGdlL21hYy9GcmFtZU1hYy5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2JyaWRnZS9tYWMvRnJhbWVNYWMubW0JKHJldmlzaW9uIDE3NDExKQor
KysgV2ViQ29yZS9icmlkZ2UvbWFjL0ZyYW1lTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMDgs
NiArMTA4LDE4IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKIE5TRXZlbnQqIEZyYW1l
TWFjOjpfY3VycmVudEV2ZW50ID0gbmlsOwogCitzdHJ1Y3QgRnJhbWVNYWNEcmFnSW5mbyB7Cisg
ICAgUmVmUHRyPE5vZGU+IG1fZHJhZ1NyYzsgICAgIC8vIGVsZW1lbnQgdGhhdCBtYXkgYmUgYSBk
cmFnIHNvdXJjZSwgZm9yIHRoZSBjdXJyZW50IG1vdXNlIGdlc3R1cmUKKyAgICBib29sIG1fZHJh
Z1NyY0lzTGluazsKKyAgICBib29sIG1fZHJhZ1NyY0lzSW1hZ2U7CisgICAgYm9vbCBtX2RyYWdT
cmNJblNlbGVjdGlvbjsKKyAgICBib29sIG1fZHJhZ1NyY01heUJlREhUTUwsIG1fZHJhZ1NyY01h
eUJlVUE7ICAgLy8gQXJlIERIVE1MIGFuZC9vciB0aGUgVXNlckFnZW50IGFsbG93ZWQgdG8gZHJh
ZyBvdXQ/CisgICAgYm9vbCBtX2RyYWdTcmNJc0RIVE1MOworICAgIFJlZlB0cjxDbGlwYm9hcmRN
YWM+IG1fZHJhZ0NsaXBib2FyZDsgICAvLyB1c2VkIG9uIG9ubHkgdGhlIHNvdXJjZSBzaWRlIG9m
IGRyYWdnaW5nCit9OworCitzdGF0aWMgRnJhbWVNYWNEcmFnSW5mbyogc2hhcmVkRHJhZ0luZm87
CisKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgZXNjQ2hhciA9IDI3Owogc3RhdGljIFNFTCBz
ZWxlY3RvckZvcktleUV2ZW50KGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCogZXZlbnQpCiB7
CkBAIC0xNTAsNiArMTYyLDggQEAgRnJhbWVNYWM6OkZyYW1lTWFjKFBhZ2UqIHBhZ2UsIEVsZW1l
bnQqIAogICAgICwgX3dpbmRvd1NjcmlwdE9iamVjdCgwKQogICAgICwgX3dpbmRvd1NjcmlwdE5Q
T2JqZWN0KDApCiB7CisgICAgaWYgKCFzaGFyZWREcmFnSW5mbykKKyAgICAgICAgc2hhcmVkRHJh
Z0luZm8gPSBuZXcgRnJhbWVNYWNEcmFnSW5mbzsKICAgICBkLT5tX2V4dGVuc2lvbiA9IG5ldyBC
cm93c2VyRXh0ZW5zaW9uTWFjKHRoaXMpOwogICAgIGQtPm1fZnJhbWVMb2FkZXIgPSBuZXcgRnJh
bWVMb2FkZXIodGhpcyk7CiB9CkBAIC0yNDgsOCArMjYyLDggQEAgRnJhbWUqIEZyYW1lTWFjOjpj
cmVhdGVGcmFtZShjb25zdCBLVVJMJgogCiB2b2lkIEZyYW1lTWFjOjpmcmVlQ2xpcGJvYXJkKCkK
IHsKLSAgICBpZiAoX2RyYWdDbGlwYm9hcmQpCi0gICAgICAgIF9kcmFnQ2xpcGJvYXJkLT5zZXRB
Y2Nlc3NQb2xpY3koQ2xpcGJvYXJkTnVtYik7CisgICAgaWYgKHNoYXJlZERyYWdJbmZvLT5tX2Ry
YWdDbGlwYm9hcmQpCisgICAgICAgIHNoYXJlZERyYWdJbmZvLT5tX2RyYWdDbGlwYm9hcmQtPnNl
dEFjY2Vzc1BvbGljeShDbGlwYm9hcmROdW1iKTsKIH0KIAogLy8gRWl0aGVyIGdldCBjYWNoZWQg
cmVnZXhwIG9yIGJ1aWxkIG9uZSB0aGF0IG1hdGNoZXMgYW55IG9mIHRoZSBsYWJlbHMuCkBAIC0x
NDQxLDExICsxNDU1LDExIEBAIGJvb2wgRnJhbWVNYWM6OmRyYWdIeXN0ZXJlc2lzRXhjZWVkZWQo
ZmwKICAgICBJbnRTaXplIGRlbHRhID0gZHJhZ0xvY2F0aW9uIC0gbV9tb3VzZURvd25Qb3M7CiAg
ICAgCiAgICAgZmxvYXQgdGhyZXNob2xkID0gR2VuZXJhbERyYWdIeXN0ZXJlc2lzOwotICAgIGlm
IChfZHJhZ1NyY0lzSW1hZ2UpCisgICAgaWYgKHNoYXJlZERyYWdJbmZvLT5tX2RyYWdTcmNJc0lt
YWdlKQogICAgICAgICB0aHJlc2hvbGQgPSBJbWFnZURyYWdIeXN0ZXJlc2lzOwotICAgIGVsc2Ug
aWYgKF9kcmFnU3JjSXNMaW5rKQorICAgIGVsc2UgaWYgKHNoYXJlZERyYWdJbmZvLT5tX2RyYWdT
cmNJc0xpbmspCiAgICAgICAgIHRocmVzaG9sZCA9IExpbmtEcmFnSHlzdGVyZXNpczsKLSAgICBl
bHNlIGlmIChfZHJhZ1NyY0luU2VsZWN0aW9uKQorICAgIGVsc2UgaWYgKHNoYXJlZERyYWdJbmZv
LT5tX2RyYWdTcmNJblNlbGVjdGlvbikKICAgICAgICAgdGhyZXNob2xkID0gVGV4dERyYWdIeXN0
ZXJlc2lzOwogCiAgICAgcmV0dXJuIGZhYnNmKGRlbHRhLndpZHRoKCkpID49IHRocmVzaG9sZCB8
fCBmYWJzZihkZWx0YS5oZWlnaHQoKSkgPj0gdGhyZXNob2xkOwpAQCAtMTQ2NywzOSArMTQ4MSwz
OSBAQCB2b2lkIEZyYW1lTWFjOjpoYW5kbGVNb3VzZU1vdmVFdmVudChjb25zCiAKICAgICAgICAg
Ly8gQ2FyZWZ1bCB0aGF0IHRoZSBkcmFnIHN0YXJ0aW5nIGxvZ2ljIHN0YXlzIGluIHN5bmMgd2l0
aCBldmVudE1heVN0YXJ0RHJhZygpCiAgICAgCi0gICAgICAgIGlmIChtb3VzZURvd25NYXlTdGFy
dERyYWcoKSAmJiAhX2RyYWdTcmMpIHsKKyAgICAgICAgaWYgKG1vdXNlRG93bk1heVN0YXJ0RHJh
ZygpICYmICFzaGFyZWREcmFnSW5mby0+bV9kcmFnU3JjKSB7CiAgICAgICAgICAgICBCT09MIHRl
bXBGbGFnMSwgdGVtcEZsYWcyOwogICAgICAgICAgICAgW19icmlkZ2UgYWxsb3dESFRNTERyYWc6
JnRlbXBGbGFnMSBVQURyYWc6JnRlbXBGbGFnMl07Ci0gICAgICAgICAgICBfZHJhZ1NyY01heUJl
REhUTUwgPSB0ZW1wRmxhZzE7Ci0gICAgICAgICAgICBfZHJhZ1NyY01heUJlVUEgPSB0ZW1wRmxh
ZzI7Ci0gICAgICAgICAgICBpZiAoIV9kcmFnU3JjTWF5QmVESFRNTCAmJiAhX2RyYWdTcmNNYXlC
ZVVBKSB7CisgICAgICAgICAgICBzaGFyZWREcmFnSW5mby0+bV9kcmFnU3JjTWF5QmVESFRNTCA9
IHRlbXBGbGFnMTsKKyAgICAgICAgICAgIHNoYXJlZERyYWdJbmZvLT5tX2RyYWdTcmNNYXlCZVVB
ID0gdGVtcEZsYWcyOworICAgICAgICAgICAgaWYgKCFzaGFyZWREcmFnSW5mby0+bV9kcmFnU3Jj
TWF5QmVESFRNTCAmJiAhc2hhcmVkRHJhZ0luZm8tPm1fZHJhZ1NyY01heUJlVUEpIHsKICAgICAg
ICAgICAgICAgICBzZXRNb3VzZURvd25NYXlTdGFydERyYWcoZmFsc2UpOyAgICAgLy8gbm8gZWxl
bWVudCBpcyBkcmFnZ2FibGUKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICAKLSAg
ICAgICAgaWYgKG1vdXNlRG93bk1heVN0YXJ0RHJhZygpICYmICFfZHJhZ1NyYykgeworICAgICAg
ICBpZiAobW91c2VEb3duTWF5U3RhcnREcmFnKCkgJiYgIXNoYXJlZERyYWdJbmZvLT5tX2RyYWdT
cmMpIHsKICAgICAgICAgICAgIC8vIHRyeSB0byBmaW5kIGFuIGVsZW1lbnQgdGhhdCB3YW50cyB0
byBiZSBkcmFnZ2VkCiAgICAgICAgICAgICBIaXRUZXN0UmVzdWx0IHJlc3VsdChtX21vdXNlRG93
blBvcywgdHJ1ZSwgZmFsc2UpOwogICAgICAgICAgICAgcmVuZGVyZXIoKS0+bGF5ZXIoKS0+aGl0
VGVzdChyZXN1bHQpOwogICAgICAgICAgICAgTm9kZSAqbm9kZSA9IHJlc3VsdC5pbm5lck5vZGUo
KTsKLSAgICAgICAgICAgIF9kcmFnU3JjID0gKG5vZGUgJiYgbm9kZS0+cmVuZGVyZXIoKSkgPyBu
b2RlLT5yZW5kZXJlcigpLT5kcmFnZ2FibGVOb2RlKF9kcmFnU3JjTWF5QmVESFRNTCwgX2RyYWdT
cmNNYXlCZVVBLCBtX21vdXNlRG93blBvcy54KCksIG1fbW91c2VEb3duUG9zLnkoKSwgX2RyYWdT
cmNJc0RIVE1MKSA6IDA7Ci0gICAgICAgICAgICBpZiAoIV9kcmFnU3JjKSB7CisgICAgICAgICAg
ICBzaGFyZWREcmFnSW5mby0+bV9kcmFnU3JjID0gKG5vZGUgJiYgbm9kZS0+cmVuZGVyZXIoKSkg
PyBub2RlLT5yZW5kZXJlcigpLT5kcmFnZ2FibGVOb2RlKHNoYXJlZERyYWdJbmZvLT5tX2RyYWdT
cmNNYXlCZURIVE1MLCBzaGFyZWREcmFnSW5mby0+bV9kcmFnU3JjTWF5QmVVQSwgbV9tb3VzZURv
d25Qb3MueCgpLCBtX21vdXNlRG93blBvcy55KCksIHNoYXJlZERyYWdJbmZvLT5tX2RyYWdTcmNJ
c0RIVE1MKSA6IDA7CisgICAgICAgICAgICBpZiAoIXNoYXJlZERyYWdJbmZvLT5tX2RyYWdTcmMp
IHsKICAgICAgICAgICAgICAgICBzZXRNb3VzZURvd25NYXlTdGFydERyYWcoZmFsc2UpOyAgICAg
Ly8gbm8gZWxlbWVudCBpcyBkcmFnZ2FibGUKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAg
ICAgICAgICAgLy8gcmVtZW1iZXIgc29tZSBmYWN0cyBhYm91dCB0aGlzIHNvdXJjZSwgd2hpbGUg
d2UgaGF2ZSBhIEhpdFRlc3RSZXN1bHQgaGFuZHkKICAgICAgICAgICAgICAgICBub2RlID0gcmVz
dWx0LlVSTEVsZW1lbnQoKTsKLSAgICAgICAgICAgICAgICBfZHJhZ1NyY0lzTGluayA9IG5vZGUg
JiYgbm9kZS0+aXNMaW5rKCk7CisgICAgICAgICAgICAgICAgc2hhcmVkRHJhZ0luZm8tPm1fZHJh
Z1NyY0lzTGluayA9IG5vZGUgJiYgbm9kZS0+aXNMaW5rKCk7CiAKICAgICAgICAgICAgICAgICBu
b2RlID0gcmVzdWx0LmlubmVyTm9uU2hhcmVkTm9kZSgpOwotICAgICAgICAgICAgICAgIF9kcmFn
U3JjSXNJbWFnZSA9IG5vZGUgJiYgbm9kZS0+cmVuZGVyZXIoKSAmJiBub2RlLT5yZW5kZXJlcigp
LT5pc0ltYWdlKCk7CisgICAgICAgICAgICAgICAgc2hhcmVkRHJhZ0luZm8tPm1fZHJhZ1NyY0lz
SW1hZ2UgPSBub2RlICYmIG5vZGUtPnJlbmRlcmVyKCkgJiYgbm9kZS0+cmVuZGVyZXIoKS0+aXNJ
bWFnZSgpOwogICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIF9kcmFnU3JjSW5TZWxl
Y3Rpb24gPSBpc1BvaW50SW5zaWRlU2VsZWN0aW9uKG1fbW91c2VEb3duUG9zKTsKLSAgICAgICAg
ICAgIH0gICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgc2hhcmVkRHJhZ0luZm8tPm1f
ZHJhZ1NyY0luU2VsZWN0aW9uID0gaXNQb2ludEluc2lkZVNlbGVjdGlvbihtX21vdXNlRG93blBv
cyk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIC8vIEZvciBk
cmFncyBzdGFydGluZyBpbiB0aGUgc2VsZWN0aW9uLCB0aGUgdXNlciBtdXN0IHdhaXQgYmV0d2Vl
biB0aGUgbW91c2Vkb3duIGFuZCBtb3VzZWRyYWcsCiAgICAgICAgIC8vIG9yIGVsc2Ugd2UgYmFp
bCBvbiB0aGUgZHJhZ2dpbmcgc3R1ZmYgYW5kIGFsbG93IHNlbGVjdGlvbiB0byBvY2N1cgotICAg
ICAgICBpZiAobW91c2VEb3duTWF5U3RhcnREcmFnKCkgJiYgX2RyYWdTcmNJblNlbGVjdGlvbiAm
JiBbX2N1cnJlbnRFdmVudCB0aW1lc3RhbXBdIC0gX21vdXNlRG93blRpbWVzdGFtcCA8IFRleHRE
cmFnRGVsYXkpIHsKKyAgICAgICAgaWYgKG1vdXNlRG93bk1heVN0YXJ0RHJhZygpICYmIHNoYXJl
ZERyYWdJbmZvLT5tX2RyYWdTcmNJblNlbGVjdGlvbiAmJiBbX2N1cnJlbnRFdmVudCB0aW1lc3Rh
bXBdIC0gX21vdXNlRG93blRpbWVzdGFtcCA8IFRleHREcmFnRGVsYXkpIHsKICAgICAgICAgICAg
IHNldE1vdXNlRG93bk1heVN0YXJ0RHJhZyhmYWxzZSk7CiAgICAgICAgICAgICAvLyAuLi5idXQg
aWYgdGhpcyB3YXMgdGhlIGZpcnN0IGNsaWNrIGluIHRoZSB3aW5kb3csIHdlIGRvbid0IGV2ZW4g
d2FudCB0byBzdGFydCBzZWxlY3Rpb24KICAgICAgICAgICAgIGlmIChfYWN0aXZhdGlvbkV2ZW50
TnVtYmVyID09IFtfY3VycmVudEV2ZW50IGV2ZW50TnVtYmVyXSkgewpAQCAtMTUyMSw3ICsxNTM1
LDcgQEAgdm9pZCBGcmFtZU1hYzo6aGFuZGxlTW91c2VNb3ZlRXZlbnQoY29ucwogICAgICAgICAg
ICAgICAgIE5TUG9pbnQgZHJhZ0xvYyA9IE5TWmVyb1BvaW50OwogICAgICAgICAgICAgICAgIE5T
RHJhZ09wZXJhdGlvbiBzcmNPcCA9IE5TRHJhZ09wZXJhdGlvbk5vbmU7ICAgICAgICAgICAgICAg
IAogICAgICAgICAgICAgICAgIEJPT0wgd2NXcm90ZVBhc3RlYm9hcmQgPSBOTzsKLSAgICAgICAg
ICAgICAgICBpZiAoX2RyYWdTcmNNYXlCZURIVE1MKSB7CisgICAgICAgICAgICAgICAgaWYgKHNo
YXJlZERyYWdJbmZvLT5tX2RyYWdTcmNNYXlCZURIVE1MKSB7CiAgICAgICAgICAgICAgICAgICAg
IE5TUGFzdGVib2FyZCAqcGFzdGVib2FyZCA9IFtOU1Bhc3RlYm9hcmQgcGFzdGVib2FyZFdpdGhO
YW1lOk5TRHJhZ1Bib2FyZF07CiAgICAgICAgICAgICAgICAgICAgIC8vIE11c3QgYmUgZG9uZSBi
ZWZvcmUgb25kcmFnc3RhcnQgYWRkcyB0eXBlcyBhbmQgZGF0YSB0byB0aGUgcGJvYXJkLAogICAg
ICAgICAgICAgICAgICAgICAvLyBhbHNvIGRvbmUgZm9yIHNlY3VyaXR5LCBhcyBpdCBlcmFzZXMg
ZGF0YSBmcm9tIHRoZSBsYXN0IGRyYWcKQEAgLTE1MjksNDMgKzE1NDMsNDMgQEAgdm9pZCBGcmFt
ZU1hYzo6aGFuZGxlTW91c2VNb3ZlRXZlbnQoY29ucwogICAgICAgICAgICAgICAgICAgICAKICAg
ICAgICAgICAgICAgICAgICAgZnJlZUNsaXBib2FyZCgpOyAgICAvLyB3b3VsZCBvbmx5IGhhcHBl
biBpZiB3ZSBtaXNzZWQgYSBkcmFnRW5kLiAgRG8gaXQgYW55d2F5LCBqdXN0CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdG8gbWFrZSBzdXJlIGl0IGdldHMgbnVt
YmlmaWVkCi0gICAgICAgICAgICAgICAgICAgIF9kcmFnQ2xpcGJvYXJkID0gbmV3IENsaXBib2Fy
ZE1hYyh0cnVlLCBwYXN0ZWJvYXJkLCBDbGlwYm9hcmRXcml0YWJsZSwgdGhpcyk7CisgICAgICAg
ICAgICAgICAgICAgIHNoYXJlZERyYWdJbmZvLT5tX2RyYWdDbGlwYm9hcmQgPSBuZXcgQ2xpcGJv
YXJkTWFjKHRydWUsIHBhc3RlYm9hcmQsIENsaXBib2FyZFdyaXRhYmxlLCB0aGlzKTsKICAgICAg
ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoaXMgaXMgZHJhZyBv
ZiBhbiBlbGVtZW50LCBnZXQgc2V0IHVwIHRvIGdlbmVyYXRlIGEgZGVmYXVsdCBpbWFnZS4gIE90
aGVyd2lzZQogICAgICAgICAgICAgICAgICAgICAvLyBXZWJLaXQgd2lsbCBnZW5lcmF0ZSB0aGUg
ZGVmYXVsdCwgdGhlIGVsZW1lbnQgZG9lc24ndCBvdmVycmlkZS4KLSAgICAgICAgICAgICAgICAg
ICAgaWYgKF9kcmFnU3JjSXNESFRNTCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoc2hhcmVk
RHJhZ0luZm8tPm1fZHJhZ1NyY0lzREhUTUwpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGlu
dCBzcmNYLCBzcmNZOwotICAgICAgICAgICAgICAgICAgICAgICAgX2RyYWdTcmMtPnJlbmRlcmVy
KCktPmFic29sdXRlUG9zaXRpb24oc3JjWCwgc3JjWSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICBzaGFyZWREcmFnSW5mby0+bV9kcmFnU3JjLT5yZW5kZXJlcigpLT5hYnNvbHV0ZVBvc2l0aW9u
KHNyY1gsIHNyY1kpOwogICAgICAgICAgICAgICAgICAgICAgICAgSW50U2l6ZSBkZWx0YSA9IG1f
bW91c2VEb3duUG9zIC0gSW50UG9pbnQoc3JjWCwgc3JjWSk7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBfZHJhZ0NsaXBib2FyZC0+c2V0RHJhZ0ltYWdlRWxlbWVudChfZHJhZ1NyYy5nZXQoKSwg
SW50UG9pbnQoKSArIGRlbHRhKTsKLSAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHNoYXJlZERyYWdJbmZvLT5tX2RyYWdDbGlwYm9hcmQtPnNldERyYWdJbWFn
ZUVsZW1lbnQoc2hhcmVkRHJhZ0luZm8tPm1fZHJhZ1NyYy5nZXQoKSwgSW50UG9pbnQoKSArIGRl
bHRhKTsKKyAgICAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAgICAgIHNldE1v
dXNlRG93bk1heVN0YXJ0RHJhZyhkaXNwYXRjaERyYWdTcmNFdmVudChkcmFnc3RhcnRFdmVudCwg
bV9tb3VzZURvd24pICYmIG1heUNvcHkoKSk7CiAgICAgICAgICAgICAgICAgICAgIC8vIEludmFs
aWRhdGUgY2xpcGJvYXJkIGhlcmUgYWdhaW5zdCBhbnltb3JlIHBhc3RlYm9hcmQgd3JpdGluZyBm
b3Igc2VjdXJpdHkuICBUaGUgZHJhZwogICAgICAgICAgICAgICAgICAgICAvLyBpbWFnZSBjYW4g
c3RpbGwgYmUgY2hhbmdlZCBhcyB3ZSBkcmFnLCBidXQgbm90IHRoZSBwYXN0ZWJvYXJkIGRhdGEu
Ci0gICAgICAgICAgICAgICAgICAgIF9kcmFnQ2xpcGJvYXJkLT5zZXRBY2Nlc3NQb2xpY3koQ2xp
cGJvYXJkSW1hZ2VXcml0YWJsZSk7CisgICAgICAgICAgICAgICAgICAgIHNoYXJlZERyYWdJbmZv
LT5tX2RyYWdDbGlwYm9hcmQtPnNldEFjY2Vzc1BvbGljeShDbGlwYm9hcmRJbWFnZVdyaXRhYmxl
KTsKICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgIGlmIChtb3VzZURv
d25NYXlTdGFydERyYWcoKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgLy8gZ2F0aGVyIHZh
bHVlcyBmcm9tIERIVE1MIGVsZW1lbnQsIGlmIGl0IHNldCBhbnkKLSAgICAgICAgICAgICAgICAg
ICAgICAgIF9kcmFnQ2xpcGJvYXJkLT5zb3VyY2VPcGVyYXRpb24oc3JjT3ApOworICAgICAgICAg
ICAgICAgICAgICAgICAgc2hhcmVkRHJhZ0luZm8tPm1fZHJhZ0NsaXBib2FyZC0+c291cmNlT3Bl
cmF0aW9uKHNyY09wKTsKIAogICAgICAgICAgICAgICAgICAgICAgICAgTlNBcnJheSAqdHlwZXMg
PSBbcGFzdGVib2FyZCB0eXBlc107CiAgICAgICAgICAgICAgICAgICAgICAgICB3Y1dyb3RlUGFz
dGVib2FyZCA9IHR5cGVzICYmIFt0eXBlcyBjb3VudF0gPiAwOwogCi0gICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoX2RyYWdTcmNNYXlCZURIVE1MKQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGRyYWdJbWFnZSA9IF9kcmFnQ2xpcGJvYXJkLT5kcmFnTlNJbWFnZShkcmFnTG9jKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIChzaGFyZWREcmFnSW5mby0+bV9kcmFnU3JjTWF5QmVE
SFRNTCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcmFnSW1hZ2UgPSBzaGFyZWREcmFn
SW5mby0+bV9kcmFnQ2xpcGJvYXJkLT5kcmFnTlNJbWFnZShkcmFnTG9jKTsKICAgICAgICAgICAg
ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgLy8gWXVjaywgZHJhZ1NvdXJj
ZU1vdmVkVG8oKSBjYW4gYmUgY2FsbGVkIGFzIGEgcmVzdWx0IG9mIGtpY2tpbmcgb2ZmIHRoZSBk
cmFnIHdpdGgKICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRyYWdJbWFnZSEgIEJlY2F1c2Ug
b2YgdGhhdCBkdW1iIHJlZW50cmFuY3ksIHdlIG1heSB0aGluayB3ZSd2ZSBub3Qgc3RhcnRlZCB0
aGUKICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRyYWcgd2hlbiB0aGF0IGhhcHBlbnMuICBT
byB3ZSBoYXZlIHRvIGFzc3VtZSBpdCdzIHN0YXJ0ZWQgYmVmb3JlIHdlIGtpY2sgaXQgb2ZmLgot
ICAgICAgICAgICAgICAgICAgICAgICAgX2RyYWdDbGlwYm9hcmQtPnNldERyYWdIYXNTdGFydGVk
KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBzaGFyZWREcmFnSW5mby0+bV9kcmFnQ2xpcGJv
YXJkLT5zZXREcmFnSGFzU3RhcnRlZCgpOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIGlmIChtb3VzZURv
d25NYXlTdGFydERyYWcoKSkgewotICAgICAgICAgICAgICAgICAgICBCT09MIHN0YXJ0ZWREcmFn
ID0gW19icmlkZ2Ugc3RhcnREcmFnZ2luZ0ltYWdlOmRyYWdJbWFnZSBhdDpkcmFnTG9jIG9wZXJh
dGlvbjpzcmNPcCBldmVudDpfY3VycmVudEV2ZW50IHNvdXJjZUlzREhUTUw6X2RyYWdTcmNJc0RI
VE1MIERIVE1MV3JvdGVEYXRhOndjV3JvdGVQYXN0ZWJvYXJkXTsKLSAgICAgICAgICAgICAgICAg
ICAgaWYgKCFzdGFydGVkRHJhZyAmJiBfZHJhZ1NyY01heUJlREhUTUwpIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIFdlYktpdCBjYW5uZWQgdGhlIGRyYWcgYXQgdGhlIGxhc3QgbWludXRl
IC0gd2Ugb3dlIF9kcmFnU3JjIGEgRFJBR0VORCBldmVudAorICAgICAgICAgICAgICAgICAgICBC
T09MIHN0YXJ0ZWREcmFnID0gW19icmlkZ2Ugc3RhcnREcmFnZ2luZ0ltYWdlOmRyYWdJbWFnZSBh
dDpkcmFnTG9jIG9wZXJhdGlvbjpzcmNPcCBldmVudDpfY3VycmVudEV2ZW50IHNvdXJjZUlzREhU
TUw6c2hhcmVkRHJhZ0luZm8tPm1fZHJhZ1NyY0lzREhUTUwgREhUTUxXcm90ZURhdGE6d2NXcm90
ZVBhc3RlYm9hcmRdOworICAgICAgICAgICAgICAgICAgICBpZiAoIXN0YXJ0ZWREcmFnICYmIHNo
YXJlZERyYWdJbmZvLT5tX2RyYWdTcmNNYXlCZURIVE1MKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAvLyBXZWJLaXQgY2FubmVkIHRoZSBkcmFnIGF0IHRoZSBsYXN0IG1pbnV0ZSAtIHdlIG93
ZSBtX2RyYWdTcmMgYSBEUkFHRU5EIGV2ZW50CiAgICAgICAgICAgICAgICAgICAgICAgICBQbGF0
Zm9ybU1vdXNlRXZlbnQgZXZlbnQoUGxhdGZvcm1Nb3VzZUV2ZW50OjpjdXJyZW50RXZlbnQpOwog
ICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2hEcmFnU3JjRXZlbnQoZHJhZ2VuZEV2ZW50
LCBldmVudCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBzZXRNb3VzZURvd25NYXlTdGFydERy
YWcoZmFsc2UpOwpAQCAtMTU3NSw3ICsxNTg5LDcgQEAgdm9pZCBGcmFtZU1hYzo6aGFuZGxlTW91
c2VNb3ZlRXZlbnQoY29ucwogICAgICAgICAgICAgICAgIGlmICghbW91c2VEb3duTWF5U3RhcnRE
cmFnKCkpIHsKICAgICAgICAgICAgICAgICAgICAgLy8gc29tZXRoaW5nIGZhaWxlZCB0byBzdGFy
dCB0aGUgZHJhZywgY2xlYW51cAogICAgICAgICAgICAgICAgICAgICBmcmVlQ2xpcGJvYXJkKCk7
Ci0gICAgICAgICAgICAgICAgICAgIF9kcmFnU3JjID0gMDsKKyAgICAgICAgICAgICAgICAgICAg
c2hhcmVkRHJhZ0luZm8tPm1fZHJhZ1NyYyA9IDA7CiAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgfQogCkBAIC0xNzg0LDcgKzE3OTgsNyBAQCB2b2lkIEZyYW1lTWFjOjptb3VzZURvd24o
TlNFdmVudCAqZXZlbnQpCiAgICAgcHJlcGFyZUZvclVzZXJBY3Rpb24oKTsKIAogICAgIF9tb3Vz
ZURvd25WaWV3ID0gbmlsOwotICAgIF9kcmFnU3JjID0gMDsKKyAgICBzaGFyZWREcmFnSW5mby0+
bV9kcmFnU3JjID0gMDsKICAgICAKICAgICBOU0V2ZW50ICpvbGRDdXJyZW50RXZlbnQgPSBfY3Vy
cmVudEV2ZW50OwogICAgIF9jdXJyZW50RXZlbnQgPSBIYXJkUmV0YWluKGV2ZW50KTsKQEAgLTMz
MjIsMjYgKzMzMzYsMjYgQEAgYm9vbCBGcmFtZU1hYzo6c2hvdWxkQ2xvc2UoKQogCiB2b2lkIEZy
YW1lTWFjOjpkcmFnU291cmNlTW92ZWRUbyhjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50
KQogewotICAgIGlmIChfZHJhZ1NyYyAmJiBfZHJhZ1NyY01heUJlREhUTUwpCisgICAgaWYgKHNo
YXJlZERyYWdJbmZvLT5tX2RyYWdTcmMgJiYgc2hhcmVkRHJhZ0luZm8tPm1fZHJhZ1NyY01heUJl
REhUTUwpCiAgICAgICAgIC8vIGZvciBub3cgd2UgZG9uJ3QgY2FyZSBpZiBldmVudCBoYW5kbGVy
IGNhbmNlbHMgZGVmYXVsdCBiZWhhdmlvciwgc2luY2UgdGhlcmUgaXMgbm9uZQogICAgICAgICBk
aXNwYXRjaERyYWdTcmNFdmVudChkcmFnRXZlbnQsIGV2ZW50KTsKIH0KIAogdm9pZCBGcmFtZU1h
Yzo6ZHJhZ1NvdXJjZUVuZGVkQXQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCwgTlNE
cmFnT3BlcmF0aW9uIG9wZXJhdGlvbikKIHsKLSAgICBpZiAoX2RyYWdTcmMgJiYgX2RyYWdTcmNN
YXlCZURIVE1MKSB7Ci0gICAgICAgIF9kcmFnQ2xpcGJvYXJkLT5zZXREZXN0aW5hdGlvbk9wZXJh
dGlvbihvcGVyYXRpb24pOworICAgIGlmIChzaGFyZWREcmFnSW5mby0+bV9kcmFnU3JjICYmIHNo
YXJlZERyYWdJbmZvLT5tX2RyYWdTcmNNYXlCZURIVE1MKSB7CisgICAgICAgIHNoYXJlZERyYWdJ
bmZvLT5tX2RyYWdDbGlwYm9hcmQtPnNldERlc3RpbmF0aW9uT3BlcmF0aW9uKG9wZXJhdGlvbik7
CiAgICAgICAgIC8vIGZvciBub3cgd2UgZG9uJ3QgY2FyZSBpZiBldmVudCBoYW5kbGVyIGNhbmNl
bHMgZGVmYXVsdCBiZWhhdmlvciwgc2luY2UgdGhlcmUgaXMgbm9uZQogICAgICAgICBkaXNwYXRj
aERyYWdTcmNFdmVudChkcmFnZW5kRXZlbnQsIGV2ZW50KTsKICAgICB9CiAgICAgZnJlZUNsaXBi
b2FyZCgpOwotICAgIF9kcmFnU3JjID0gMDsKKyAgICBzaGFyZWREcmFnSW5mby0+bV9kcmFnU3Jj
ID0gMDsKIH0KIAogLy8gcmV0dXJucyBpZiB3ZSBzaG91bGQgY29udGludWUgImRlZmF1bHQgcHJv
Y2Vzc2luZyIsIGkuZS4sIHdoZXRoZXIgZXZlbnRoYW5kbGVyIGNhbmNlbGVkCi1ib29sIEZyYW1l
TWFjOjpkaXNwYXRjaERyYWdTcmNFdmVudChjb25zdCBBdG9taWNTdHJpbmcgJmV2ZW50VHlwZSwg
Y29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCkgY29uc3QKK2Jvb2wgRnJhbWVNYWM6OmRp
c3BhdGNoRHJhZ1NyY0V2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBjb25zdCBQ
bGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50KSBjb25zdAogewotICAgIGJvb2wgbm9EZWZhdWx0UHJv
YyA9IGQtPm1fdmlldy0+ZGlzcGF0Y2hEcmFnRXZlbnQoZXZlbnRUeXBlLCBfZHJhZ1NyYy5nZXQo
KSwgZXZlbnQsIF9kcmFnQ2xpcGJvYXJkLmdldCgpKTsKKyAgICBib29sIG5vRGVmYXVsdFByb2Mg
PSBkLT5tX3ZpZXctPmRpc3BhdGNoRHJhZ0V2ZW50KGV2ZW50VHlwZSwgc2hhcmVkRHJhZ0luZm8t
Pm1fZHJhZ1NyYy5nZXQoKSwgZXZlbnQsIHNoYXJlZERyYWdJbmZvLT5tX2RyYWdDbGlwYm9hcmQu
Z2V0KCkpOwogICAgIHJldHVybiAhbm9EZWZhdWx0UHJvYzsKIH0KIApJbmRleDogV2ViQ29yZS9w
YWdlL0ZyYW1lVmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5j
cHAJKHJldmlzaW9uIDE3NDExKQorKysgV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUg
IkZyYW1lVHJlZS5oIgogI2luY2x1ZGUgIkhUTUxEb2N1bWVudC5oIgorI2luY2x1ZGUgIkhUTUxG
cmFtZUVsZW1lbnRCYXNlLmgiCiAjaW5jbHVkZSAiSFRNTEZyYW1lU2V0RWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKQEAgLTkz
OCwxNCArOTM5LDI2IEBAIGJvb2wgRnJhbWVWaWV3Ojp1cGRhdGVEcmFnQW5kRHJvcChjb25zdCAK
ICAgICAgICAgbmV3VGFyZ2V0ID0gbmV3VGFyZ2V0LT5zaGFkb3dBbmNlc3Rvck5vZGUoKTsKIAog
ICAgIGlmIChkLT5kcmFnVGFyZ2V0ICE9IG5ld1RhcmdldCkgewotICAgICAgICAvLyBub3RlIHRo
aXMgb3JkZXJpbmcgaXMgZXhwbGljaXRseSBjaG9zZW4gdG8gbWF0Y2ggV2luSUUKKyAgICAgICAg
Ly8gRklYTUU6IHRoaXMgb3JkZXJpbmcgd2FzIGV4cGxpY2l0bHkgY2hvc2VuIHRvIG1hdGNoIFdp
bklFLiBIb3dldmVyLAorICAgICAgICAvLyBpdCBpcyBzb21ldGltZXMgaW5jb3JyZWN0IHdoZW4g
ZHJhZ2dpbmcgd2l0aGluIHN1YmZyYW1lcywgYXMgc2VlbiB3aXRoCisgICAgICAgIC8vIExheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL2RyYWctaW4tZnJhbWVzLmh0bWwuCiAgICAgICAgIGlmIChuZXdU
YXJnZXQpCi0gICAgICAgICAgICBhY2NlcHQgPSBkaXNwYXRjaERyYWdFdmVudChkcmFnZW50ZXJF
dmVudCwgbmV3VGFyZ2V0LCBldmVudCwgY2xpcGJvYXJkKTsKKyAgICAgICAgICAgIGlmIChuZXdU
YXJnZXQtPmhhc1RhZ05hbWUoZnJhbWVUYWcpIHx8IG5ld1RhcmdldC0+aGFzVGFnTmFtZShpZnJh
bWVUYWcpKQorICAgICAgICAgICAgICAgIGFjY2VwdCA9IHN0YXRpY19jYXN0PEhUTUxGcmFtZUVs
ZW1lbnRCYXNlKj4obmV3VGFyZ2V0KS0+Y29udGVudEZyYW1lKCktPnZpZXcoKS0+dXBkYXRlRHJh
Z0FuZERyb3AoZXZlbnQsIGNsaXBib2FyZCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgYWNjZXB0ID0gZGlzcGF0Y2hEcmFnRXZlbnQoZHJhZ2VudGVyRXZlbnQsIG5ld1Rhcmdl
dCwgZXZlbnQsIGNsaXBib2FyZCk7CisgICAgICAgIAogICAgICAgICBpZiAoZC0+ZHJhZ1Rhcmdl
dCkKLSAgICAgICAgICAgIGRpc3BhdGNoRHJhZ0V2ZW50KGRyYWdsZWF2ZUV2ZW50LCBkLT5kcmFn
VGFyZ2V0LmdldCgpLCBldmVudCwgY2xpcGJvYXJkKTsKKyAgICAgICAgICAgIGlmIChkLT5kcmFn
VGFyZ2V0LT5oYXNUYWdOYW1lKGZyYW1lVGFnKSB8fCBkLT5kcmFnVGFyZ2V0LT5oYXNUYWdOYW1l
KGlmcmFtZVRhZykpCisgICAgICAgICAgICAgICAgYWNjZXB0ID0gc3RhdGljX2Nhc3Q8SFRNTEZy
YW1lRWxlbWVudEJhc2UqPihkLT5kcmFnVGFyZ2V0LmdldCgpKS0+Y29udGVudEZyYW1lKCktPnZp
ZXcoKS0+dXBkYXRlRHJhZ0FuZERyb3AoZXZlbnQsIGNsaXBib2FyZCk7CisgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgZGlzcGF0Y2hEcmFnRXZlbnQoZHJhZ2xlYXZlRXZlbnQsIGQt
PmRyYWdUYXJnZXQuZ2V0KCksIGV2ZW50LCBjbGlwYm9hcmQpOwogICAgIH0gZWxzZSB7CiAgICAg
ICAgIGlmIChuZXdUYXJnZXQpCi0gICAgICAgICAgICBhY2NlcHQgPSBkaXNwYXRjaERyYWdFdmVu
dChkcmFnb3ZlckV2ZW50LCBuZXdUYXJnZXQsIGV2ZW50LCBjbGlwYm9hcmQpOworICAgICAgICAg
ICAgaWYgKG5ld1RhcmdldC0+aGFzVGFnTmFtZShmcmFtZVRhZykgfHwgbmV3VGFyZ2V0LT5oYXNU
YWdOYW1lKGlmcmFtZVRhZykpCisgICAgICAgICAgICAgICAgYWNjZXB0ID0gc3RhdGljX2Nhc3Q8
SFRNTEZyYW1lRWxlbWVudEJhc2UqPihuZXdUYXJnZXQpLT5jb250ZW50RnJhbWUoKS0+dmlldygp
LT51cGRhdGVEcmFnQW5kRHJvcChldmVudCwgY2xpcGJvYXJkKTsKKyAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICBhY2NlcHQgPSBkaXNwYXRjaERyYWdFdmVudChkcmFnb3ZlckV2ZW50
LCBuZXdUYXJnZXQsIGV2ZW50LCBjbGlwYm9hcmQpOwogICAgIH0KICAgICBkLT5kcmFnVGFyZ2V0
ID0gbmV3VGFyZ2V0OwogCkBAIC05NTUsNyArOTY4LDEwIEBAIGJvb2wgRnJhbWVWaWV3Ojp1cGRh
dGVEcmFnQW5kRHJvcChjb25zdCAKIHZvaWQgRnJhbWVWaWV3OjpjYW5jZWxEcmFnQW5kRHJvcChj
b25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50LCBDbGlwYm9hcmQqIGNsaXBib2FyZCkKIHsK
ICAgICBpZiAoZC0+ZHJhZ1RhcmdldCkKLSAgICAgICAgZGlzcGF0Y2hEcmFnRXZlbnQoZHJhZ2xl
YXZlRXZlbnQsIGQtPmRyYWdUYXJnZXQuZ2V0KCksIGV2ZW50LCBjbGlwYm9hcmQpOworICAgICAg
ICBpZiAoZC0+ZHJhZ1RhcmdldC0+aGFzVGFnTmFtZShmcmFtZVRhZykgfHwgZC0+ZHJhZ1Rhcmdl
dC0+aGFzVGFnTmFtZShpZnJhbWVUYWcpKQorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8SFRNTEZy
YW1lRWxlbWVudEJhc2UqPihkLT5kcmFnVGFyZ2V0LmdldCgpKS0+Y29udGVudEZyYW1lKCktPnZp
ZXcoKS0+Y2FuY2VsRHJhZ0FuZERyb3AoZXZlbnQsIGNsaXBib2FyZCk7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIGRpc3BhdGNoRHJhZ0V2ZW50KGRyYWdsZWF2ZUV2ZW50LCBkLT5kcmFnVGFy
Z2V0LmdldCgpLCBldmVudCwgY2xpcGJvYXJkKTsKICAgICBkLT5kcmFnVGFyZ2V0ID0gMDsKIH0K
IApAQCAtOTYzLDcgKzk3OSwxMCBAQCBib29sIEZyYW1lVmlldzo6cGVyZm9ybURyYWdBbmREcm9w
KGNvbnN0CiB7CiAgICAgYm9vbCBhY2NlcHQgPSBmYWxzZTsKICAgICBpZiAoZC0+ZHJhZ1Rhcmdl
dCkKLSAgICAgICAgYWNjZXB0ID0gZGlzcGF0Y2hEcmFnRXZlbnQoZHJvcEV2ZW50LCBkLT5kcmFn
VGFyZ2V0LmdldCgpLCBldmVudCwgY2xpcGJvYXJkKTsKKyAgICAgICAgaWYgKGQtPmRyYWdUYXJn
ZXQtPmhhc1RhZ05hbWUoZnJhbWVUYWcpIHx8IGQtPmRyYWdUYXJnZXQtPmhhc1RhZ05hbWUoaWZy
YW1lVGFnKSkKKyAgICAgICAgICAgIGFjY2VwdCA9IHN0YXRpY19jYXN0PEhUTUxGcmFtZUVsZW1l
bnRCYXNlKj4oZC0+ZHJhZ1RhcmdldC5nZXQoKSktPmNvbnRlbnRGcmFtZSgpLT52aWV3KCktPnBl
cmZvcm1EcmFnQW5kRHJvcChldmVudCwgY2xpcGJvYXJkKTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgYWNjZXB0ID0gZGlzcGF0Y2hEcmFnRXZlbnQoZHJvcEV2ZW50LCBkLT5kcmFnVGFyZ2V0
LmdldCgpLCBldmVudCwgY2xpcGJvYXJkKTsKICAgICBkLT5kcmFnVGFyZ2V0ID0gMDsKICAgICBy
ZXR1cm4gYWNjZXB0OwogfQpJbmRleDogV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMTc0MTMpCisrKyBXZWJLaXRUb29s
cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNiBAQAorMjAwNi0xMC0yOSAg
QWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQG55cG9wLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03MzIzCisgICAgICAgIFJFR1JFU1NJT04gKDEwLjQuNCk6IG9uZHJhZyogZXZl
bnRzIGRvbid0IGZpcmUgb24gcGFnZSBpbiBhIGZyYW1lCisKKyAgICAgICAgV2hlbiBkcmFnZ2lu
ZywgZG8gbm90IHNlbmQgRXZlbnRTZW5kaW5nQ29udHJvbGxlcidzIGV2ZW50cyBpbW1lZGlhdGVs
eS4gRHJhZ2dpbmcgCisgICAgICAgIGlzIHN1cHBvc2VkIHRvIGJlIG1vZGFsLCBzbyB3ZSBuZWVk
IHRvIHBlcmZvcm0gaXQgZnJvbSB3aXRoaW4gdGhlIGRlbGVnYXRlLCB3aXRob3V0CisgICAgICAg
IHJldHVybmluZyB0byBKUyB0byBtYWtlIHRoZSBuZXh0IG1vdXNlIG1vdmVtZW50LgorCisgICAg
ICAgIFdoZW4gdGhlIG1vdXNlIGlzIGRvd24sIG1vdXNlIGV2ZW50cyBhcmUgbm93IHJlY29yZGVk
LCBhbmQgZXhlY3V0ZWQgd2hlbiBtb3VzZVVwIGlzIHNlbnQuCisKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5tOgorICAgICAgICAoLVtXYWl0VW50aWxEb25lRGVsZWdh
dGUgd2ViVmlldzpkcmFnSW1hZ2U6YXQ6b2Zmc2V0OmV2ZW50OnBhc3RlYm9hcmQ6c291cmNlOnNs
aWRlQmFjazpmb3JWaWV3Ol0pOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0V2ZW50U2VuZGlu
Z0NvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9FdmVudFNlbmRpbmdDb250
cm9sbGVyLm06CisgICAgICAgICgtW0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIgZGVhbGxvY10pOgor
ICAgICAgICAoLVtFdmVudFNlbmRpbmdDb250cm9sbGVyIG1vdXNlRG93bl0pOgorICAgICAgICAo
LVtFdmVudFNlbmRpbmdDb250cm9sbGVyIG1vdXNlVXBdKToKKyAgICAgICAgKC1bRXZlbnRTZW5k
aW5nQ29udHJvbGxlciBtb3VzZU1vdmVUb1g6WTpdKToKKyAgICAgICAgKCtbRXZlbnRTZW5kaW5n
Q29udHJvbGxlciByZXBsYXlTYXZlZEV2ZW50c10pOgorCiAyMDA2LTEwLTI5ICBEYXJpbiBBZGxl
ciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBNaXR6LgpJbmRleDog
V2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUubQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5tCShyZXZpc2lvbiAx
NzQxMSkKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLm0JKHdv
cmtpbmcgY29weSkKQEAgLTcwMSwxMiArNzAxLDkgQEAgc3RhdGljIHZvaWQgZHVtcCh2b2lkKQog
CiAtICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKilzZW5kZXIgZHJhZ0ltYWdlOihOU0ltYWdlICop
YW5JbWFnZSBhdDooTlNQb2ludCl2aWV3TG9jYXRpb24gb2Zmc2V0OihOU1NpemUpaW5pdGlhbE9m
ZnNldCBldmVudDooTlNFdmVudCAqKWV2ZW50IHBhc3RlYm9hcmQ6KE5TUGFzdGVib2FyZCAqKXBi
b2FyZCBzb3VyY2U6KGlkKXNvdXJjZU9iaiBzbGlkZUJhY2s6KEJPT0wpc2xpZGVGbGFnIGZvclZp
ZXc6KE5TVmlldyAqKXZpZXcKIHsKLSAgICAvLyBBIG5ldyBkcmFnIHdhcyBzdGFydGVkIGJlZm9y
ZSB0aGUgb2xkIG9uZSBlbmRlZC4gIFByb2JhYmx5IHNob3VsZG4ndCBoYXBwZW4uCi0gICAgaWYg
KGRyYWdnaW5nSW5mbykgewotICAgICAgICBbW2RyYWdnaW5nSW5mbyBkcmFnZ2luZ1NvdXJjZV0g
ZHJhZ2dlZEltYWdlOltkcmFnZ2luZ0luZm8gZHJhZ2dlZEltYWdlXSBlbmRlZEF0Omxhc3RNb3Vz
ZVBvc2l0aW9uIG9wZXJhdGlvbjpOU0RyYWdPcGVyYXRpb25Ob25lXTsKLSAgICAgICAgW2RyYWdn
aW5nSW5mbyByZWxlYXNlXTsKLSAgICB9CisgICAgYXNzZXJ0KCFkcmFnZ2luZ0luZm8pOwogICAg
IGRyYWdnaW5nSW5mbyA9IFtbRHVtcFJlbmRlclRyZWVEcmFnZ2luZ0luZm8gYWxsb2NdIGluaXRX
aXRoSW1hZ2U6YW5JbWFnZSBvZmZzZXQ6aW5pdGlhbE9mZnNldCBwYXN0ZWJvYXJkOnBib2FyZCBz
b3VyY2U6c291cmNlT2JqXTsKKyAgICBbRXZlbnRTZW5kaW5nQ29udHJvbGxlciByZXBsYXlTYXZl
ZEV2ZW50c107CiB9CiAKIC0gKHZvaWQpd2ViVmlld0ZvY3VzOihXZWJWaWV3ICopd2ViVmlldwpJ
bmRleDogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0V2ZW50U2VuZGluZ0Nv
bnRyb2xsZXIuaAkocmV2aXNpb24gMTc0MTEpCisrKyBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJl
ZS9FdmVudFNlbmRpbmdDb250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDYgKzM4LDgg
QEAKICAgICBkb3VibGUgdGltZU9mZnNldDsKIH0KIAorKyAodm9pZClyZXBsYXlTYXZlZEV2ZW50
czsKKwogLSAodm9pZCllbmFibGVET01VSUV2ZW50TG9nZ2luZzooV2ViU2NyaXB0T2JqZWN0ICop
bm9kZTsKIAogLSAodm9pZCloYW5kbGVFdmVudDooRE9NRXZlbnQgKilldmVudDsKSW5kZXg6IFdl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIubQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9FdmVudFNlbmRpbmdDb250cm9sbGVy
Lm0JKHJldmlzaW9uIDE3NDExKQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvRXZlbnRT
ZW5kaW5nQ29udHJvbGxlci5tCSh3b3JraW5nIGNvcHkpCkBAIC00MSw2ICs0MSw4IEBAIGV4dGVy
biB2b2lkIF9OU05ld0tpbGxSaW5nU2VxdWVuY2UoKTsKIAogTlNQb2ludCBsYXN0TW91c2VQb3Np
dGlvbjsKIE5TQXJyYXkgKndlYmtpdERvbUV2ZW50TmFtZXM7CitOU011dGFibGVBcnJheSAqc2F2
ZWRNb3VzZUV2ZW50czsgLy8gbW91c2UgZXZlbnRzIHNlbnQgYmV0d2VlbiBtb3VzZURvd24gYW5k
IG1vdXNlVXAgYXJlIHN0b3JlZCBoZXJlLCBhbmQgdGhlbiBleGVjdXRlZCBhdCBvbmNlLgorQk9P
TCByZXBsYXlpbmdTYXZlZEV2ZW50czsKIAogQGltcGxlbWVudGF0aW9uIEV2ZW50U2VuZGluZ0Nv
bnRyb2xsZXIKIApAQCAtMTI2LDYgKzEyOCwxNSBAQCBOU0FycmF5ICp3ZWJraXREb21FdmVudE5h
bWVzOwogICAgIHJldHVybiBuaWw7CiB9CiAKKy0gKHZvaWQpZGVhbGxvYworeworICAgIGFzc2Vy
dCghZG93bik7CisgICAgYXNzZXJ0KFtzYXZlZE1vdXNlRXZlbnRzIGNvdW50XSA9PSAwKTsKKyAg
ICBbc2F2ZWRNb3VzZUV2ZW50cyByZWxlYXNlXTsKKyAgICBzYXZlZE1vdXNlRXZlbnRzID0gbmls
OworICAgIFtzdXBlciBkZWFsbG9jXTsKK30KKwogLSAoZG91YmxlKWN1cnJlbnRFdmVudFRpbWUK
IHsKICAgICByZXR1cm4gR2V0Q3VycmVudEV2ZW50VGltZSgpICsgdGltZU9mZnNldDsKQEAgLTE0
Myw2ICsxNTQsOSBAQCBOU0FycmF5ICp3ZWJraXREb21FdmVudE5hbWVzOwogCiAtICh2b2lkKW1v
dXNlRG93bgogeworICAgIGFzc2VydCghZG93bik7CisgICAgYXNzZXJ0KCFyZXBsYXlpbmdTYXZl
ZEV2ZW50cyk7CisKICAgICBbW1tmcmFtZSBmcmFtZVZpZXddIGRvY3VtZW50Vmlld10gbGF5b3V0
XTsKICAgICBpZiAoW3NlbGYgY3VycmVudEV2ZW50VGltZV0gLSBsYXN0Q2xpY2sgPj0gMSkKICAg
ICAgICAgY2xpY2tDb3VudCA9IDE7CkBAIC0xNjcsNiArMTgxLDIyIEBAIE5TQXJyYXkgKndlYmtp
dERvbUV2ZW50TmFtZXM7CiAKIC0gKHZvaWQpbW91c2VVcAogeworICAgIGFzc2VydChkb3duKTsK
KworICAgIGlmICghcmVwbGF5aW5nU2F2ZWRFdmVudHMpIHsKKyAgICAgICAgTlNJbnZvY2F0aW9u
ICppbnZvY2F0aW9uID0gW05TSW52b2NhdGlvbiBpbnZvY2F0aW9uV2l0aE1ldGhvZFNpZ25hdHVy
ZTpbRXZlbnRTZW5kaW5nQ29udHJvbGxlciBpbnN0YW5jZU1ldGhvZFNpZ25hdHVyZUZvclNlbGVj
dG9yOkBzZWxlY3Rvcihtb3VzZVVwKV1dOworICAgICAgICBbaW52b2NhdGlvbiBzZXRUYXJnZXQ6
c2VsZl07CisgICAgICAgIFtpbnZvY2F0aW9uIHNldFNlbGVjdG9yOkBzZWxlY3Rvcihtb3VzZVVw
KV07CisgICAgICAgIAorICAgICAgICBpZiAoIXNhdmVkTW91c2VFdmVudHMpCisgICAgICAgICAg
ICBzYXZlZE1vdXNlRXZlbnRzID0gW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdF07CisgICAg
ICAgIFtzYXZlZE1vdXNlRXZlbnRzIGFkZE9iamVjdDppbnZvY2F0aW9uXTsKKyAgICAgICAgCisg
ICAgICAgIFtFdmVudFNlbmRpbmdDb250cm9sbGVyIHJlcGxheVNhdmVkRXZlbnRzXTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworCiAgICAgW1tbZnJhbWUgZnJhbWVWaWV3XSBkb2N1bWVudFZp
ZXddIGxheW91dF07CiAgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0
aFR5cGU6TlNMZWZ0TW91c2VVcCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBsb2NhdGlvbjpsYXN0TW91c2VQb3NpdGlvbiAKQEAgLTIwMSw2ICsyMzEsMjAgQEAgTlNB
cnJheSAqd2Via2l0RG9tRXZlbnROYW1lczsKIAogLSAodm9pZCltb3VzZU1vdmVUb1g6KGludCl4
IFk6KGludCl5CiB7CisgICAgaWYgKGRvd24gJiYgIXJlcGxheWluZ1NhdmVkRXZlbnRzKSB7Cisg
ICAgICAgIE5TSW52b2NhdGlvbiAqaW52b2NhdGlvbiA9IFtOU0ludm9jYXRpb24gaW52b2NhdGlv
bldpdGhNZXRob2RTaWduYXR1cmU6W0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIgaW5zdGFuY2VNZXRo
b2RTaWduYXR1cmVGb3JTZWxlY3RvcjpAc2VsZWN0b3IobW91c2VNb3ZlVG9YOlk6KV1dOworICAg
ICAgICBbaW52b2NhdGlvbiBzZXRUYXJnZXQ6c2VsZl07CisgICAgICAgIFtpbnZvY2F0aW9uIHNl
dFNlbGVjdG9yOkBzZWxlY3Rvcihtb3VzZU1vdmVUb1g6WTopXTsKKyAgICAgICAgW2ludm9jYXRp
b24gc2V0QXJndW1lbnQ6JnggYXRJbmRleDoyXTsKKyAgICAgICAgW2ludm9jYXRpb24gc2V0QXJn
dW1lbnQ6JnkgYXRJbmRleDozXTsKKyAgICAgICAgCisgICAgICAgIGlmICghc2F2ZWRNb3VzZUV2
ZW50cykKKyAgICAgICAgICAgIHNhdmVkTW91c2VFdmVudHMgPSBbW05TTXV0YWJsZUFycmF5IGFs
bG9jXSBpbml0XTsKKyAgICAgICAgW3NhdmVkTW91c2VFdmVudHMgYWRkT2JqZWN0Omludm9jYXRp
b25dOworICAgICAgICAKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIE5TVmlldyAqdmll
dyA9IFtmcmFtZSB3ZWJWaWV3XTsKICAgICBsYXN0TW91c2VQb3NpdGlvbiA9IFt2aWV3IGNvbnZl
cnRQb2ludDpOU01ha2VQb2ludCh4LCBbdmlldyBmcmFtZV0uc2l6ZS5oZWlnaHQgLSB5KSB0b1Zp
ZXc6bmlsXTsKICAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlw
ZTooZG93biA/IE5TTGVmdE1vdXNlRHJhZ2dlZCA6IE5TTW91c2VNb3ZlZCkgCkBAIC0yNjEsNiAr
MzA1LDE4IEBAIE5TQXJyYXkgKndlYmtpdERvbUV2ZW50TmFtZXM7CiAgICAgfQogfQogCisrICh2
b2lkKXJlcGxheVNhdmVkRXZlbnRzCit7CisgICAgcmVwbGF5aW5nU2F2ZWRFdmVudHMgPSBZRVM7
CisgICAgd2hpbGUgKFtzYXZlZE1vdXNlRXZlbnRzIGNvdW50XSkgeworICAgICAgICAvLyBpZiBh
IGRyYWcgaXMgaW5pdGlhdGVkLCB0aGUgcmVtYWluaW5nIHNhdmVkIGV2ZW50cyB3aWxsIGJlIGRp
c3BhdGNoZWQgZnJvbSBvdXIgZHJhZ2dpbmcgZGVsZWdhdGUKKyAgICAgICAgTlNJbnZvY2F0aW9u
ICppbnZvY2F0aW9uID0gW1tbc2F2ZWRNb3VzZUV2ZW50cyBvYmplY3RBdEluZGV4OjBdIHJldGFp
bl0gYXV0b3JlbGVhc2VdOworICAgICAgICBbc2F2ZWRNb3VzZUV2ZW50cyByZW1vdmVPYmplY3RB
dEluZGV4OjBdOworICAgICAgICBbaW52b2NhdGlvbiBpbnZva2VdOworICAgIH0KKyAgICByZXBs
YXlpbmdTYXZlZEV2ZW50cyA9IE5POworfQorCiAtICh2b2lkKWtleURvd246KE5TU3RyaW5nICop
Y2hhcmFjdGVyIHdpdGhNb2RpZmllcnM6KFdlYlNjcmlwdE9iamVjdCAqKW1vZGlmaWVycwogewog
ICAgIE5TU3RyaW5nICptb2RpZmllciA9IG5pbDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>11281</attachid>
            <date>2006-10-29 22:52:27 -0800</date>
            <delta_ts>2006-11-01 22:24:49 -0800</delta_ts>
            <desc>proposed fix</desc>
            <filename>7323r2_patch.txt</filename>
            <type>text/plain</type>
            <size>47603</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE3NDM0KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMzMgQEAKKzIwMDYtMTAtMzAgIEFsZXhleSBQcm9za3VyeWFr
b3YgIDxhcEBueXBvcC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGVzdCBmb3IgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzMyMworICAgICAgICBSRUdSRVNTSU9OICgxMC40LjQpOiBvbmRyYWcqIGV2ZW50cyBkb24n
dCBmaXJlIG9uIHBhZ2UgaW4gYSBmcmFtZQorCisgICAgICAgICogZmFzdC9ldmVudHMvZHJhZy1p
bi1mcmFtZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9kcmFn
LWluLWZyYW1lcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9yZXNvdXJjZXMv
ZHJhZy1pbi1mcmFtZXMtY29uc29sZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50
cy9yZXNvdXJjZXMvZHJhZy1pbi1mcmFtZXMtbGVmdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2V2ZW50cy9yZXNvdXJjZXMvZHJhZy1pbi1mcmFtZXMtcmlnaHQuaHRtbDogQWRkZWQuCisK
KyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9leHBhbmRpbmctc2VsZWN0aW9ucy5odG1sOgor
ICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2V4cGFuZGluZy1zZWxlY3Rpb25zMi5odG1sOgor
ICAgICAgICAqIGZhc3QvZHluYW1pYy9sYXllci1oaXQtdGVzdC1jcmFzaC5odG1sOgorICAgICAg
ICAqIGZhc3QvZXZlbnRzL2V2ZW50LXZpZXctdG9TdHJpbmcuaHRtbDoKKyAgICAgICAgKiBmYXN0
L2V2ZW50cy9yZXNvdXJjZXMvZHJhZy1vdXRzaWRlLXdpbmRvdy1mcmFtZS5odG1sOgorICAgICAg
ICAqIHN2Zy9jdXN0b20vaG92ZXItZGVmYXVsdC1maWxsLnN2ZzoKKyAgICAgICAgQWRkZWQgbWlz
c2luZyBjYWxscyB0byBtb3VzZVVwKCkuCisKKyAgICAgICAgKiBzdmcvY3VzdG9tL3N0cm9rZS13
aWR0aC1jbGljay1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3ZnL2N1c3RvbS9zdHJva2Utd2lk
dGgtY2xpY2suc3ZnOgorICAgICAgICBEb24ndCBhdHRlbXB0IHRvIGNsaWNrIG91dHNpZGUgdGhl
IHBhZ2UsIHRoaXMgd2FzIGNvbmZ1c2luZyBEUlQuCisKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVj
dGlvbi9zZWxlY3QtZnJvbS10ZXh0ZmllbGQtb3V0d2FyZHMtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGVkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdC1mcm9tLXRleHRmaWVsZC1vdXR3YXJkcy5odG1s
OgorICAgICAgICBSZW1vdmVkIGFsZXJ0cyBiZXR3ZWVuIGRyYWdnaW5nIHN0ZXBzIC0gdGhleSBh
cmUgbm93IHVzZWxlc3MsCisgICAgICAgIGFzIHRoZSBkcmFnZ2luZyBldmVudHMgYXJlIHN0b3Jl
ZCBhbmQgZXhlY3V0ZWQgYXQgb25jZS4KKwogMjAwNi0xMC0yOSAgTWl0eiBQZXR0ZWwgIDxtaXR6
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmYuCkluZGV4OiBMYXlvdXRU
ZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9leHBhbmRpbmctc2VsZWN0aW9uczIuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9leHBhbmRpbmctc2VsZWN0aW9u
czIuaHRtbAkocmV2aXNpb24gMTc0MjIpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlv
bi9leHBhbmRpbmctc2VsZWN0aW9uczIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTIsNiArMTIs
NyBAQCBmdW5jdGlvbiBlZGl0aW5nVGVzdCgpIHsKICAgICBldmVudFNlbmRlci5tb3VzZURvd24o
KTsKICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CiAgICAgZXZlbnRTZW5kZXIubW91c2VEb3du
KCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwogfQogCiA8L3NjcmlwdD4KSW5kZXg6IExh
eW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2V4cGFuZGluZy1zZWxlY3Rpb25zLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZXhwYW5kaW5nLXNlbGVj
dGlvbnMuaHRtbAkocmV2aXNpb24gMTc0MjIpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVj
dGlvbi9leHBhbmRpbmctc2VsZWN0aW9ucy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMiw2ICsx
Miw3IEBAIGZ1bmN0aW9uIGVkaXRpbmdUZXN0KCkgewogICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93
bigpOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKICAgICBldmVudFNlbmRlci5tb3VzZURv
d24oKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CiB9CiAKIDwvc2NyaXB0PgpJbmRleDog
TGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0LWZyb20tdGV4dGZpZWxkLW91dHdh
cmRzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVj
dGlvbi9zZWxlY3QtZnJvbS10ZXh0ZmllbGQtb3V0d2FyZHMtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAxNzQyMikKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdC1mcm9tLXRl
eHRmaWVsZC1vdXR3YXJkcy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMjMgKzEs
MTYgQEAKLUFMRVJUOiBtaWRkbGUKIEVESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVj
dGVkRE9NUmFuZ2U6KG51bGwpIHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAxMSBvZiAjdGV4dCA+IERJ
ViB0byAxMSBvZiAjdGV4dCA+IERJViBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0
cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENo
YW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCiBFRElU
SU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gMTEg
b2YgI3RleHQgPiBESVYgdG8gMTEgb2YgI3RleHQgPiBESVYgdG9ET01SYW5nZTpyYW5nZSBmcm9t
IDExIG9mICN0ZXh0ID4gRElWIHRvIDEyIG9mICN0ZXh0ID4gRElWIGFmZmluaXR5Ok5TU2VsZWN0
aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCiBFRElUSU5HIERFTEVH
QVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25O
b3RpZmljYXRpb24KLUFMRVJUOiBsZWZ0CiBFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VT
ZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gMTEgb2YgI3RleHQgPiBESVYgdG8gMTIgb2YgI3Rl
eHQgPiBESVYgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDAgb2YgI3RleHQgPiBESVYgdG8gMTIgb2Yg
I3RleHQgPiBESVYgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxT
ZWxlY3Rpbmc6RkFMU0UKIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rp
b246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgotQUxFUlQ6IHJpZ2h0CiBF
RElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20g
MCBvZiAjdGV4dCA+IERJViB0byAxMiBvZiAjdGV4dCA+IERJViB0b0RPTVJhbmdlOnJhbmdlIGZy
b20gMTEgb2YgI3RleHQgPiBESVYgdG8gMTcgb2YgI3RleHQgPiBESVYgYWZmaW5pdHk6TlNTZWxl
Y3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKIEVESVRJTkcgREVM
RUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlv
bk5vdGlmaWNhdGlvbgotQUxFUlQ6IHdheSB1cAogRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hh
bmdlU2VsZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9tIDExIG9mICN0ZXh0ID4gRElWIHRvIDE3IG9m
ICN0ZXh0ID4gRElWIHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAwIG9mICN0ZXh0ID4gRElWIHRvIDEy
IG9mICN0ZXh0ID4gRElWIGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0
aWxsU2VsZWN0aW5nOkZBTFNFCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2Vs
ZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KLUFMRVJUOiB1cAog
RURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9t
IDAgb2YgI3RleHQgPiBESVYgdG8gMTIgb2YgI3RleHQgPiBESVYgdG9ET01SYW5nZTpyYW5nZSBm
cm9tIDAgb2YgI3RleHQgPiBESVYgdG8gMTIgb2YgI3RleHQgPiBESVYgYWZmaW5pdHk6TlNTZWxl
Y3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKLUFMRVJUOiBkb3du
CiBFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZy
b20gMCBvZiAjdGV4dCA+IERJViB0byAxMiBvZiAjdGV4dCA+IERJViB0b0RPTVJhbmdlOnJhbmdl
IGZyb20gMTEgb2YgI3RleHQgPiBESVYgdG8gMTcgb2YgI3RleHQgPiBESVYgYWZmaW5pdHk6TlNT
ZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKIEVESVRJTkcg
REVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVj
dGlvbk5vdGlmaWNhdGlvbgotQUxFUlQ6IHdheSBkb3duCiBFRElUSU5HIERFTEVHQVRFOiBzaG91
bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gMTEgb2YgI3RleHQgPiBESVYgdG8g
MTcgb2YgI3RleHQgPiBESVYgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDExIG9mICN0ZXh0ID4gRElW
IHRvIDE3IG9mICN0ZXh0ID4gRElWIGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3Ry
ZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCiBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAg
UmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKSW5kZXg6IExheW91dFRlc3RzL2VkaXRp
bmcvc2VsZWN0aW9uL3NlbGVjdC1mcm9tLXRleHRmaWVsZC1vdXR3YXJkcy5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdC1mcm9tLXRleHRmaWVs
ZC1vdXR3YXJkcy5odG1sCShyZXZpc2lvbiAxNzQyMikKKysrIExheW91dFRlc3RzL2VkaXRpbmcv
c2VsZWN0aW9uL3NlbGVjdC1mcm9tLXRleHRmaWVsZC1vdXR3YXJkcy5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0xMCwyNCArMTAsMjUgQEAgZnVuY3Rpb24gZWRpdGluZ1Rlc3QoKSB7CiAgICAgdmFy
IG1pZGRsZVggPSBmaWVsZC5vZmZzZXRMZWZ0ICsgZmllbGQub2Zmc2V0V2lkdGggLyAyOwogICAg
IHZhciBtaWRkbGVZID0gZmllbGQub2Zmc2V0VG9wICsgZmllbGQub2Zmc2V0SGVpZ2h0IC8gMjsK
ICAgICAKLSAgICBhbGVydCgibWlkZGxlIik7CisgICAgLy8gYWxlcnQoIm1pZGRsZSIpOwogICAg
IGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKG1pZGRsZVgsIG1pZGRsZVkpOwogICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlRG93bigpOwogICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3YXJkKDEwMDApOwogICAg
IGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKLSAg
ICBhbGVydCgibGVmdCIpOworICAgIC8vIGFsZXJ0KCJsZWZ0Iik7CiAgICAgZXZlbnRTZW5kZXIu
bW91c2VNb3ZlVG8oMCwgbWlkZGxlWSk7Ci0gICAgYWxlcnQoInJpZ2h0Iik7CisgICAgLy8gYWxl
cnQoInJpZ2h0Iik7CiAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oZG9jdW1lbnQuYm9keS5v
ZmZzZXRXaWR0aCwgbWlkZGxlWSk7Ci0gICAgYWxlcnQoIndheSB1cCIpOworICAgIC8vIGFsZXJ0
KCJ3YXkgdXAiKTsKICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhtaWRkbGVYLCBtaWRkbGVZ
IC0gMiAqIGZpZWxkLm9mZnNldEhlaWdodCk7Ci0gICAgYWxlcnQoInVwIik7CisgICAgLy8gYWxl
cnQoInVwIik7CiAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8obWlkZGxlWCwgbWlkZGxlWSAt
IGZpZWxkLm9mZnNldEhlaWdodCk7Ci0gICAgYWxlcnQoImRvd24iKTsKKyAgICAvLyBhbGVydCgi
ZG93biIpOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKG1pZGRsZVgsIG1pZGRsZVkgKyBm
aWVsZC5vZmZzZXRIZWlnaHQpOwotICAgIGFsZXJ0KCJ3YXkgZG93biIpOworICAgIC8vIGFsZXJ0
KCJ3YXkgZG93biIpOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKG1pZGRsZVgsIG1pZGRs
ZVkgKyAyICogZmllbGQub2Zmc2V0SGVpZ2h0KTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7
CiB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZHluYW1pYy9s
YXllci1oaXQtdGVzdC1jcmFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZHluYW1pYy9sYXllci1oaXQtdGVzdC1jcmFzaC5odG1sCShyZXZpc2lvbiAxNzQyMikKKysrIExh
eW91dFRlc3RzL2Zhc3QvZHluYW1pYy9sYXllci1oaXQtdGVzdC1jcmFzaC5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0zMyw2ICszMyw4IEBAIGZ1bmN0aW9uIG1vdmVNb3VzZSgpCiAKIGZ1bmN0aW9u
IGZpbmlzaCgpCiB7CisgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikKKyAgICAgICAgZXZlbnRT
ZW5kZXIubW91c2VVcCgpOwogICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKIH0KSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL2RyYWctaW4tZnJhbWVzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9kcmFnLWluLWZyYW1lcy1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9kcmFnLWluLWZyYW1lcy1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTggQEAKK0V2ZW50IGxvZworCitv
bmRyYWdzdGFydCBzcmMKK29uZHJhZyBzcmMKK29uZHJhZ2VudGVyIGxlZnQgdGFyZ2V0CitvbmRy
YWcgc3JjCitvbmRyYWdvdmVyIGxlZnQgdGFyZ2V0CitvbmRyYWcgc3JjCitvbmRyYWdlbnRlciBy
aWdodCB0YXJnZXQKK29uZHJhZ2xlYXZlIGxlZnQgdGFyZ2V0CitvbmRyYWcgc3JjCitvbmRyYWdv
dmVyIHJpZ2h0IHRhcmdldAorb25kcmFnb3ZlciByaWdodCB0YXJnZXQKK29uZHJvcCByaWdodCB0
YXJnZXQKK29uZHJhZ2VuZCBzcmMKK1RoZXNlIHJlc3VsdHMgYXJlIGp1c3QgInNlbnNpYmxlIiBh
dCB0aGUgbW9tZW50LCBtZWFuaW5nIHRoYXQgYWxsIHRoZSBldmVudHMgZmlyZSBvbiB0aGUgcmln
aHQgZWxlbWVudHMsIG5vdGhpbmcgbW9yZS4gVGhlIG9yZGVyIGluIHBhcnRpY3VsYXIgY2FuIHJp
Z2h0ZnVsbHkgY2hhbmdlLgorCisKClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL2RyYWctaW4tZnJhbWVzLWV4cGVjdGVkLnR4dApfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2
bjptaW1lLXR5cGUKICAgKyB0ZXh0L3BsYWluCk5hbWU6IHN2bjplb2wtc3R5bGUKICAgKyBuYXRp
dmUKCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9kcmFnLWluLWZyYW1lcy5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2RyYWctaW4tZnJhbWVzLmh0bWwJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9kcmFnLWluLWZyYW1lcy5o
dG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDcxIEBACis8aGVhZD4KKzxzY3JpcHQ+CitmdW5j
dGlvbiBsb2cobWVzc2FnZSkgeworICAgIGNvbnNvbGVfZG9jID0gZnJhbWVzWzJdLmRvY3VtZW50
OworICAgIHZhciBpdGVtID0gY29uc29sZV9kb2MuY3JlYXRlRWxlbWVudCgibGkiKTsKKyAgICBp
dGVtLmFwcGVuZENoaWxkKGNvbnNvbGVfZG9jLmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UpKTsKKyAg
ICBjb25zb2xlX2RvYy5nZXRFbGVtZW50QnlJZCgnY29uc29sZV9tZXNzYWdlcycpLmFwcGVuZENo
aWxkKGl0ZW0pOworfQorCitmdW5jdGlvbiB0ZXN0KCkgeworICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisKKyAg
ICAgICAgLy8gRmluZCB0aGUgZWxlbWVudCB0byBkcmFnCisgICAgICAgIGVsZW1lbnRUb0RyYWcg
PSBmcmFtZXNbMF0uZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVsZW1lbnRUb0RyYWciKTsKKyAg
ICAgICAgeDEgPSBlbGVtZW50VG9EcmFnLm9mZnNldExlZnQgKyBlbGVtZW50VG9EcmFnLm9mZnNl
dFdpZHRoIC8gMjsKKyAgICAgICAgeTEgPSBlbGVtZW50VG9EcmFnLm9mZnNldFRvcCArIGVsZW1l
bnRUb0RyYWcub2Zmc2V0SGVpZ2h0IC8gMjsKKworICAgICAgICAvLyBEcmFnIHRvIHRoZSBtaWRk
bGUgb2YgdGhlIGRlc3RpbmF0aW9uIGVsZW1lbnQgaW4gdGhlIHNhbWUgZnJhbWUKKyAgICAgICAg
ZHJhZ1RhcmdldCA9IGZyYW1lc1swXS5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZHJhZ1Rhcmdl
dCIpOworICAgICAgICB4MiA9IGRyYWdUYXJnZXQub2Zmc2V0TGVmdCArIGRyYWdUYXJnZXQub2Zm
c2V0V2lkdGggLyAyOworICAgICAgICB5MiA9IGRyYWdUYXJnZXQub2Zmc2V0VG9wICsgZHJhZ1Rh
cmdldC5vZmZzZXRIZWlnaHQgLyAyOworCisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRv
KHgxLHkxKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlTW92ZVRvKHgyLCB5Mik7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92
ZVRvKHgyLCB5MisxKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeDIsIHkyKzIp
OworCisgICAgICAgIC8vIERyYWcgdG8gdGhlIG1pZGRsZSBvZiB0aGUgZGVzdGluYXRpb24gZWxl
bWVudCBpbiBhbm90aGVyIGZyYW1lCisgICAgICAgIGRyYWdUYXJnZXQyID0gZnJhbWVzWzFdLmRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJkcmFnVGFyZ2V0MiIpOworICAgICAgICB4MyA9IDE1MCAr
IGRyYWdUYXJnZXQyLm9mZnNldExlZnQgKyBkcmFnVGFyZ2V0Mi5vZmZzZXRXaWR0aCAvIDI7Cisg
ICAgICAgIHkzID0gZHJhZ1RhcmdldDIub2Zmc2V0VG9wICsgZHJhZ1RhcmdldDIub2Zmc2V0SGVp
Z2h0IC8gMjsKKworICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4MywgeTMpOworICAg
ICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4MywgeTMrMSk7CisgICAgICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlVXAoKTsKKworICAgICAgICBkb2N1bWVudC53cml0ZSgiPGJvZHk+IiArIAorICAg
ICAgICAgICAgZnJhbWVzWzJdLmRvY3VtZW50LmJvZHkuaW5uZXJIVE1MICsgCisgICAgICAgICAg
ICAiPHA+VGhlc2UgcmVzdWx0cyBhcmUganVzdCBcInNlbnNpYmxlXCIgYXQgdGhlIG1vbWVudCwg
bWVhbmluZyB0aGF0ICIgKworICAgICAgICAgICAgImFsbCB0aGUgZXZlbnRzIGZpcmUgb24gdGhl
IHJpZ2h0IGVsZW1lbnRzLCBub3RoaW5nIG1vcmUuIFRoZSBvcmRlciBpbiBwYXJ0aWN1bGFyICIr
CisgICAgICAgICAgICAiY2FuIHJpZ2h0ZnVsbHkgY2hhbmdlLjwvcD4iICsKKyAgICAgICAgICAg
ICI8c2NyIiArICJpcHQ+bGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOzwvc2NyIiAr
ICJpcHQ+IiArIAorICAgICAgICAgICAgIjwvYm9keT4iKTsKKyAgICB9Cit9Cis8L3NjcmlwdD4K
KzwvaGVhZD4KKzwhLS0gZnJhbWVzIC0tPgorPGZyYW1lc2V0ICBjb2xzPSIxNTAsMTUwLCoiIGJv
cmRlcj0iMCIgb25sb2FkPSJ0ZXN0KCk7Ij4KKworICAgIDxmcmFtZSBuYW1lPSJsZWZ0IiBzcmM9
InJlc291cmNlcy9kcmFnLWluLWZyYW1lcy1sZWZ0Lmh0bWwiIG1hcmdpbndpZHRoPSIxMCIgbWFy
Z2luaGVpZ2h0PSIxMCIgc2Nyb2xsaW5nPSJhdXRvIiBmcmFtZWJvcmRlcj0iMCIKKyAgICAgICAg
ICAgICAgICAgb25kcmFnPSJhbGVydCgnb25kcmFnIGxlZnQgZnJhbWUnKSIKKyAgICAgICAgICAg
ICAgICAgb25kcm9wPSJhbGVydCgnb25kcm9wIGxlZnQgZnJhbWUnKSIKKyAgICAgICAgICAgICAg
ICAgb25kcmFnc3RhcnQ9ImFsZXJ0KCdvbmRyYWdzdGFydCBsZWZ0IGZyYW1lJykiCisgICAgICAg
ICAgICAgICAgIG9uZHJhZ2VuZD0iYWxlcnQoJ29uZHJhZ2VuZCBsZWZ0IGZyYW1lJykiCisgICAg
ICAgICAgICAgICAgIG9uZHJhZ2VudGVyPSJsb2coJ29uZHJhZ2VudGVyIGxlZnQgZnJhbWUnKSIK
KyAgICAgICAgICAgICAgICAgb25kcmFnb3Zlcj0ibG9nKCdvbmRyYWdvdmVyIGxlZnQgZnJhbWUn
KSIKKyAgICAgICAgICAgICAgICAgb25kcmFnbGVhdmU9ImxvZygnb25kcmFnbGVhdmUgbGVmdCBm
cmFtZScpIj4KKyAgICA8ZnJhbWUgbmFtZT0icmlnaHQiIHNyYz0icmVzb3VyY2VzL2RyYWctaW4t
ZnJhbWVzLXJpZ2h0Lmh0bWwiIG1hcmdpbndpZHRoPSIxMCIgbWFyZ2luaGVpZ2h0PSIxMCIgc2Ny
b2xsaW5nPSJhdXRvIiBmcmFtZWJvcmRlcj0iMCIKKyAgICAgICAgICAgICAgICAgb25kcmFnPSJh
bGVydCgnb25kcmFnIHJpZ2h0IGZyYW1lJykiCisgICAgICAgICAgICAgICAgIG9uZHJvcD0iYWxl
cnQoJ29uZHJvcCByaWdodCBmcmFtZScpIgorICAgICAgICAgICAgICAgICBvbmRyYWdzdGFydD0i
YWxlcnQoJ29uZHJhZ3N0YXJ0IHJpZ2h0IGZyYW1lJykiCisgICAgICAgICAgICAgICAgIG9uZHJh
Z2VuZD0iYWxlcnQoJ29uZHJhZ2VuZCByaWdodCBmcmFtZScpIgorICAgICAgICAgICAgICAgICBv
bmRyYWdlbnRlcj0ibG9nKCdvbmRyYWdlbnRlciByaWdodCBmcmFtZScpIgorICAgICAgICAgICAg
ICAgICBvbmRyYWdvdmVyPSJsb2coJ29uZHJhZ292ZXIgcmlnaHQgZnJhbWUnKSIKKyAgICAgICAg
ICAgICAgICAgb25kcmFnbGVhdmU9ImxvZygnb25kcmFnbGVhdmUgcmlnaHQgZnJhbWUnKSI+Cisg
ICAgPGZyYW1lIG5hbWU9ImNvbnNvbGUiIHNyYz0icmVzb3VyY2VzL2RyYWctaW4tZnJhbWVzLWNv
bnNvbGUuaHRtbCIgIG1hcmdpbndpZHRoPSIxMCIgbWFyZ2luaGVpZ2h0PSIxMCIgc2Nyb2xsaW5n
PSJhdXRvIiBmcmFtZWJvcmRlcj0iMCI+Cis8L2ZyYW1lc2V0PgoKUHJvcGVydHkgY2hhbmdlcyBv
bjogTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZHJhZy1pbi1mcmFtZXMuaHRtbApfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
Ck5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyB0ZXh0L2h0bWwKCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9ldmVudC12aWV3LXRvU3RyaW5nLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvZXZlbnQtdmlldy10b1N0cmluZy5odG1sCShyZXZpc2lvbiAxNzQy
MikKKysrIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2V2ZW50LXZpZXctdG9TdHJpbmcuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogCQlpZiAod2luZG93LmV2ZW50U2VuZGVy
KSB7CiAJCQlldmVudFNlbmRlci5tb3VzZU1vdmVUbyg1MCwgNTApOwogCQkJZXZlbnRTZW5kZXIu
bW91c2VEb3duKCk7CisJCQlldmVudFNlbmRlci5tb3VzZVVwKCk7CiAJCX0gZWxzZSB7CiAJCQly
ZXN1bHRzRGl2LmlubmVySFRNTCArPSAiTWFudWFsIHRlc3QgbW9kZS48YnIvPiI7CiAJCX0KSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Jlc291cmNlcy9kcmFnLWluLWZyYW1lcy1jb25z
b2xlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVzb3VyY2Vz
L2RyYWctaW4tZnJhbWVzLWNvbnNvbGUuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3Jlc291cmNlcy9kcmFnLWluLWZyYW1lcy1jb25zb2xlLmh0bWwJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsNCBAQAorPGJvZHk+Cis8aDQ+RXZlbnQgbG9nPC9oND4KKzx1bCBp
ZD0nY29uc29sZV9tZXNzYWdlcycgc3R5bGU9J2ZvbnQtc2l6ZTo4cHgnPjwvdWw+Cis8L2JvZHk+
CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZXNvdXJjZXMv
ZHJhZy1pbi1mcmFtZXMtY29uc29sZS5odG1sCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOm1pbWUtdHlw
ZQogICArIHRleHQvaHRtbAoKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Jlc291cmNl
cy9kcmFnLWluLWZyYW1lcy1sZWZ0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvcmVzb3VyY2VzL2RyYWctaW4tZnJhbWVzLWxlZnQuaHRtbAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Jlc291cmNlcy9kcmFnLWluLWZyYW1lcy1sZWZ0
Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDkgQEAKKzxodG1sPgorPGhlYWQ+CisgICAg
PHRpdGxlPkxlZnQ8L3RpdGxlPgorPC9oZWFkPgorCis8Ym9keSBzdHlsZT0ibWFyZ2luOjA7IHBh
ZGRpbmc6MCI+CisKKzxzY3JpcHQ+CitmdW5jdGlvbiBsb2cobWVzc2FnZSkgeworICAgIGNvbnNv
bGVfZG9jID0gcGFyZW50LmZyYW1lc1syXS5kb2N1bWVudDsKKyAgICB2YXIgaXRlbSA9IGNvbnNv
bGVfZG9jLmNyZWF0ZUVsZW1lbnQoImxpIik7CisgICAgaXRlbS5hcHBlbmRDaGlsZChjb25zb2xl
X2RvYy5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlKSk7CisgICAgY29uc29sZV9kb2MuZ2V0RWxlbWVu
dEJ5SWQoJ2NvbnNvbGVfbWVzc2FnZXMnKS5hcHBlbmRDaGlsZChpdGVtKTsKK30KKzwvc2NyaXB0
PgorCis8ZGl2IHN0eWxlPSJ3aWR0aDoxNTA7IGhlaWdodDo3NTsgdGV4dC1hbGlnbjpjZW50ZXI7
Ij4KKyAgPGEgaWQ9ImVsZW1lbnRUb0RyYWciCisgICAgIGhyZWY9IiMiCisgICAgIHN0eWxlPSJw
b3NpdGlvbjogcmVsYXRpdmU7IHRvcDogNTAiCisgICAgIG9uZHJhZz0ibG9nKCdvbmRyYWcgc3Jj
JykiCisgICAgIG9uZHJhZ3N0YXJ0PSJsb2coJ29uZHJhZ3N0YXJ0IHNyYycpIgorICAgICBvbmRy
YWdlbmQ9ImxvZygnb25kcmFnZW5kIHNyYycpIgorICAgICBvbmRyYWdlbnRlcj0ibG9nKCdvbmRy
YWdlbnRlciBzcmMnKSIKKyAgICAgb25kcmFnb3Zlcj0ibG9nKCdvbmRyYWdvdmVyIHNyYycpIgor
ICAgICBvbmRyYWdsZWF2ZT0ibG9nKCdvbmRyYWdsZWF2ZSBzcmMnKSIKKyAgICAgb25kcm9wPSJs
b2coJ29uZHJvcCBzcmMnKSI+CisgIERyYWcgbWUKKyAgPC9hPgorPC9kaXY+CisKKzxkaXYgaWQ9
ImRyYWdUYXJnZXQiCisgICAgIHN0eWxlPSJ3aWR0aDoxNTA7IGhlaWdodDoxNTA7IGJhY2tncm91
bmQtY29sb3I6bGlnaHRncmVlbjsgdGV4dC1hbGlnbjpjZW50ZXI7IgorICAgICBvbmRyYWc9ImFs
ZXJ0KCdvbmRyYWcgbGVmdCB0YXJnZXQnKSIKKyAgICAgb25kcmFnc3RhcnQ9ImFsZXJ0KCdvbmRy
YWdzdGFydCBsZWZ0IHRhcmdldCcpIgorICAgICBvbmRyYWdlbmQ9ImFsZXJ0KCdvbmRyYWdlbmQg
bGVmdCB0YXJnZXQnKSIKKyAgICAgb25kcmFnZW50ZXI9ImxvZygnb25kcmFnZW50ZXIgbGVmdCB0
YXJnZXQnKTsgcmV0dXJuIGZhbHNlOyIKKyAgICAgb25kcmFnb3Zlcj0ibG9nKCdvbmRyYWdvdmVy
IGxlZnQgdGFyZ2V0Jyk7IHJldHVybiBmYWxzZTsiCisgICAgIG9uZHJhZ2xlYXZlPSJsb2coJ29u
ZHJhZ2xlYXZlIGxlZnQgdGFyZ2V0JykiCisgICAgIG9uZHJvcD0ibG9nKCdvbmRyb3AgbGVmdCB0
YXJnZXQnKSI+CisgIDxzcGFuIHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmU7IHRvcDogNTAiPkhl
cmU8L3NwYW4+Cis8L2Rpdj4KKworPHA+PGEgaHJlZj0iaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NzMyMyIgdGFyZ2V0PSJfdG9wIj5CdWcgNzMyMzwvYT46IAorUkVHUkVT
U0lPTiAoMTAuNC40KTogb25kcmFnKiBldmVudHMgZG9uJ3QgZmlyZSBvbiBwYWdlIGluIGEgZnJh
bWU8L3A+Cis8cD5UaGlzIHRlc3Qgd29ya3Mgb25seSBpbiBhdXRvbWF0aWMgbW9kZSwgYnV0IHlv
dSBjYW4gYWxzbyB0cnkgZHJhZ2dpbmcgbWFudWFsbHkgdG8gY29tcGFyZSB0aGUgcmVzdWx0cyB3
aXRoIG90aGVyIGJyb3dzZXJzLjwvcD4KKworPC9ib2R5PgorPC9odG1sPgoKUHJvcGVydHkgY2hh
bmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVzb3VyY2VzL2RyYWctaW4tZnJhbWVz
LWxlZnQuaHRtbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyB0ZXh0L2h0bWwK
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZXNvdXJjZXMvZHJhZy1pbi1mcmFtZXMt
cmlnaHQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZXNvdXJj
ZXMvZHJhZy1pbi1mcmFtZXMtcmlnaHQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3Jlc291cmNlcy9kcmFnLWluLWZyYW1lcy1yaWdodC5odG1sCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDMxIEBACis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5SaWdodDwv
dGl0bGU+Cis8L2hlYWQ+CisKKzxib2R5IHN0eWxlPSJtYXJnaW46MDsgcGFkZGluZzowIj4KKwor
PHNjcmlwdD4KK2Z1bmN0aW9uIGxvZyhtZXNzYWdlKSB7CisgICAgY29uc29sZV9kb2MgPSBwYXJl
bnQuZnJhbWVzWzJdLmRvY3VtZW50OworICAgIHZhciBpdGVtID0gY29uc29sZV9kb2MuY3JlYXRl
RWxlbWVudCgibGkiKTsKKyAgICBpdGVtLmFwcGVuZENoaWxkKGNvbnNvbGVfZG9jLmNyZWF0ZVRl
eHROb2RlKG1lc3NhZ2UpKTsKKyAgICBjb25zb2xlX2RvYy5nZXRFbGVtZW50QnlJZCgnY29uc29s
ZV9tZXNzYWdlcycpLmFwcGVuZENoaWxkKGl0ZW0pOworfQorPC9zY3JpcHQ+CisKKzxkaXYgc3R5
bGU9ImhlaWdodDo3NXB4Ij48L2Rpdj4KKworPGRpdiBpZD0iZHJhZ1RhcmdldDIiCisgICAgIHN0
eWxlPSJ3aWR0aDoxNTA7IGhlaWdodDoxNTA7IGJhY2tncm91bmQtY29sb3I6bGlnaHRibHVlOyB0
ZXh0LWFsaWduOmNlbnRlcjsiCisgICAgIG9uZHJhZz0iYWxlcnQoJ29uZHJhZyByaWdodCB0YXJn
ZXQnKSIKKyAgICAgb25kcmFnc3RhcnQ9ImFsZXJ0KCdvbmRyYWdzdGFydCByaWdodCB0YXJnZXQn
KSIKKyAgICAgb25kcmFnZW5kPSJhbGVydCgnb25kcmFnZW5kIHJpZ2h0IHRhcmdldCcpIgorICAg
ICBvbmRyYWdlbnRlcj0ibG9nKCdvbmRyYWdlbnRlciByaWdodCB0YXJnZXQnKTsgcmV0dXJuIGZh
bHNlOyIKKyAgICAgb25kcmFnb3Zlcj0ibG9nKCdvbmRyYWdvdmVyIHJpZ2h0IHRhcmdldCcpOyBy
ZXR1cm4gZmFsc2U7IgorICAgICBvbmRyYWdsZWF2ZT0ibG9nKCdvbmRyYWdsZWF2ZSByaWdodCB0
YXJnZXQnKSIKKyAgICAgb25kcm9wPSJsb2coJ29uZHJvcCByaWdodCB0YXJnZXQnKSI+CisgIDxz
cGFuIHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmU7IHRvcDogNTAiPkFuZCBoZXJlPC9zcGFuPgor
PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9yZXNvdXJjZXMvZHJhZy1pbi1mcmFtZXMtcmlnaHQuaHRtbApfX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyB0ZXh0L2h0bWwKCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9yZXNvdXJjZXMvZHJhZy1vdXRzaWRlLXdpbmRvdy1mcmFtZS5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Jlc291cmNlcy9kcmFnLW91dHNp
ZGUtd2luZG93LWZyYW1lLmh0bWwJKHJldmlzaW9uIDE3NDIyKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvcmVzb3VyY2VzL2RyYWctb3V0c2lkZS13aW5kb3ctZnJhbWUuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMTgsNiArMTgsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICBldmVudFNlbmRl
ci5tb3VzZU1vdmVUbygxNTAsIDEwMCk7CiAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CiAg
ICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oNTAsIDEwMCk7CisgICAgZXZlbnRTZW5kZXIubW91
c2VVcCgpOwogICAgIGFsZXJ0KCJUZXN0IHJlc3VsdDogIiArIHJlc3VsdCk7CiB9CiA8L3Njcmlw
dD4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9jdXN0b20vaG92ZXItZGVmYXVsdC1maWxsLnN2Zwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2hvdmVyLWRlZmF1bHQtZmlsbC5z
dmcJKHJldmlzaW9uIDE3NDIyKQorKysgTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9ob3Zlci1kZWZh
dWx0LWZpbGwuc3ZnCSh3b3JraW5nIGNvcHkpCkBAIC04LDYgKzgsNyBAQAogICBpZiAod2luZG93
LmV2ZW50U2VuZGVyKSB7CiAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oNTAsIDUwKTsKICAg
ICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CiAg
IH0KIF1dPgogPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3N0cm9rZS13
aWR0aC1jbGljay1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2N1
c3RvbS9zdHJva2Utd2lkdGgtY2xpY2stZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxNzQyMikKKysr
IExheW91dFRlc3RzL3N2Zy9jdXN0b20vc3Ryb2tlLXdpZHRoLWNsaWNrLWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtNzIsNyArNzIsNyBAQCBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3
RGlkQ2hhbmdlU2VsZWN0CiAgIAogICAgIAogICAgICAgCi0gICAgICBTVUNDRVNTOiBjbGljayBh
dCAxMCwgMTAgd2FzIGNvcnJlY3RseSBpZ25vcmVkU1VDQ0VTUzogY2xpY2sgcmVjZWl2ZWQgYXQ6
IDMwLCAxMDBTVUNDRVNTOiBjbGljayBhdCAyOSwgMTAwIHdhcyBjb3JyZWN0bHkgaWdub3JlZFNV
Q0NFU1M6IGNsaWNrIHJlY2VpdmVkIGF0OiAzMCwgNTBTVUNDRVNTOiBjbGljayBhdCAzMCwgNDkg
d2FzIGNvcnJlY3RseSBpZ25vcmVkU1VDQ0VTUzogY2xpY2sgcmVjZWl2ZWQgYXQ6IDMwLCAxNTBT
VUNDRVNTOiBjbGljayBhdCAzMCwgMTUxIHdhcyBjb3JyZWN0bHkgaWdub3JlZFNVQ0NFU1M6IGNs
aWNrIHJlY2VpdmVkIGF0OiAzMDAsIDEwMFNVQ0NFU1M6IGNsaWNrIGF0IDMwMSwgMTAwIHdhcyBj
b3JyZWN0bHkgaWdub3JlZFNVQ0NFU1M6IGNsaWNrIHJlY2VpdmVkIGF0OiAzMDAsIDUwU1VDQ0VT
UzogY2xpY2sgYXQgMzAwLCA0OSB3YXMgY29ycmVjdGx5IGlnbm9yZWRTVUNDRVNTOiBjbGljayBy
ZWNlaXZlZCBhdDogMzAwLCAxNTBTVUNDRVNTOiBjbGljayBhdCAzMDAsIDE1MSB3YXMgY29ycmVj
dGx5IGlnbm9yZWRTVUNDRVNTOiBjbGljayBhdCAxMDAwLCAxMDAwIHdhcyBjb3JyZWN0bHkgaWdu
b3JlZAorICAgICAgU1VDQ0VTUzogY2xpY2sgYXQgMTAsIDEwIHdhcyBjb3JyZWN0bHkgaWdub3Jl
ZFNVQ0NFU1M6IGNsaWNrIHJlY2VpdmVkIGF0OiAzMCwgMTAwU1VDQ0VTUzogY2xpY2sgYXQgMjks
IDEwMCB3YXMgY29ycmVjdGx5IGlnbm9yZWRTVUNDRVNTOiBjbGljayByZWNlaXZlZCBhdDogMzAs
IDUwU1VDQ0VTUzogY2xpY2sgYXQgMzAsIDQ5IHdhcyBjb3JyZWN0bHkgaWdub3JlZFNVQ0NFU1M6
IGNsaWNrIHJlY2VpdmVkIGF0OiAzMCwgMTUwU1VDQ0VTUzogY2xpY2sgYXQgMzAsIDE1MSB3YXMg
Y29ycmVjdGx5IGlnbm9yZWRTVUNDRVNTOiBjbGljayByZWNlaXZlZCBhdDogMzAwLCAxMDBTVUND
RVNTOiBjbGljayBhdCAzMDEsIDEwMCB3YXMgY29ycmVjdGx5IGlnbm9yZWRTVUNDRVNTOiBjbGlj
ayByZWNlaXZlZCBhdDogMzAwLCA1MFNVQ0NFU1M6IGNsaWNrIGF0IDMwMCwgNDkgd2FzIGNvcnJl
Y3RseSBpZ25vcmVkU1VDQ0VTUzogY2xpY2sgcmVjZWl2ZWQgYXQ6IDMwMCwgMTUwU1VDQ0VTUzog
Y2xpY2sgYXQgMzAwLCAxNTEgd2FzIGNvcnJlY3RseSBpZ25vcmVkCiAgICAgCiAgIAogICAKQEAg
LTk3LDcgKzk3LDYgQEAgRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdAog
ICAgICAgdGVzdENsaWNrKDMwMCwgNDksIGZhbHNlKTsKICAgICAgIHRlc3RDbGljaygzMDAsIDE1
MCwgdHJ1ZSk7CiAgICAgICB0ZXN0Q2xpY2soMzAwLCAxNTEsIGZhbHNlKTsKLSAgICAgIHRlc3RD
bGljaygxMDAwLCAxMDAwLCBmYWxzZSk7CiAgICAgfSBlbHNlIHsKICAgICAgIGxvZygiRVJST1I6
IHdpbmRvdy5ldmVudFNlbmRlciBub3QgZm91bmQhICBUaGlzIHRlc3QgbXVzdCBiZSBydW4gdXNp
bmcgRHVtcFJlbmRlclRyZWUuICBNb3VzaW5nIG92ZXIgdGhlIHllbGxvdyBhcmVhIHdpbGwgbG9n
IGhvd2V2ZXIuIik7CiAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9zdHJva2Ut
d2lkdGgtY2xpY2suc3ZnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9jdXN0b20vc3Ry
b2tlLXdpZHRoLWNsaWNrLnN2ZwkocmV2aXNpb24gMTc0MjIpCisrKyBMYXlvdXRUZXN0cy9zdmcv
Y3VzdG9tL3N0cm9rZS13aWR0aC1jbGljay5zdmcJKHdvcmtpbmcgY29weSkKQEAgLTcyLDcgKzcy
LDYgQEAKICAgICAgIHRlc3RDbGljaygzMDAsIDQ5LCBmYWxzZSk7CiAgICAgICB0ZXN0Q2xpY2so
MzAwLCAxNTAsIHRydWUpOwogICAgICAgdGVzdENsaWNrKDMwMCwgMTUxLCBmYWxzZSk7Ci0gICAg
ICB0ZXN0Q2xpY2soMTAwMCwgMTAwMCwgZmFsc2UpOwogICAgIH0gZWxzZSB7CiAgICAgICBsb2co
IkVSUk9SOiB3aW5kb3cuZXZlbnRTZW5kZXIgbm90IGZvdW5kISAgVGhpcyB0ZXN0IG11c3QgYmUg
cnVuIHVzaW5nIER1bXBSZW5kZXJUcmVlLiAgTW91c2luZyBvdmVyIHRoZSB5ZWxsb3cgYXJlYSB3
aWxsIGxvZyBob3dldmVyLiIpOwogICAgIH0KSW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNzQzNCkKKysrIFdlYkNvcmUv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzUgQEAKKzIwMDYtMTAtMzAgIEFs
ZXhleSBQcm9za3VyeWFrb3YgIDxhcEBueXBvcC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzMyMworICAgICAgICBSRUdSRVNTSU9OICgxMC40LjQpOiBvbmRyYWcqIGV2ZW50
cyBkb24ndCBmaXJlIG9uIHBhZ2UgaW4gYSBmcmFtZQorCisgICAgICAgICogYnJpZGdlL21hYy9G
cmFtZU1hYy5oOiBNb3ZlZCBkcmFnIHNvdXJjZSBpbmZvcm1hdGlvbiB0byBhIHN0YXRpYyB2YXJp
YWJsZQorICAgICAgICBpbiBGcmFtZU1hYy5tbS4gVGhlcmUgY2FuIGJlIG9ubHkgb25lIGRyYWcg
YWN0aXZlIGF0IGFueSBtb21lbnQsIGFuZCBoYXZpbmcgCisgICAgICAgIHRoaXMgaW5mb3JtYXRp
b24gaGVyZSB3YXMgbWFraW5nIHNoYXJpbmcgdGhpcyBpbmZvcm1hdGlvbiBiZXR3ZWVuIAorICAg
ICAgICBzdWJmcmFtZXMgaGFyZC4KKworICAgICAgICAqIGJyaWRnZS9tYWMvRnJhbWVNYWMubW06
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZU1hYzo6RnJhbWVNYWMpOiBJbml0aWFsaXplIHNoYXJl
ZERyYWdJbmZvLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVNYWM6OmZyZWVDbGlwYm9hcmQpOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVNYWM6OmRyYWdIeXN0ZXJlc2lzRXhjZWVkZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVNYWM6OmhhbmRsZU1vdXNlTW92ZUV2ZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lTWFjOjpoYW5kbGVNb3VzZVJlbGVhc2VFdmVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZU1hYzo6bW91c2VEb3duKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTWFj
OjpkcmFnU291cmNlTW92ZWRUbyk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZU1hYzo6ZHJhZ1Nv
dXJjZUVuZGVkQXQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVNYWM6OmRpc3BhdGNoRHJhZ1Ny
Y0V2ZW50KToKKyAgICAgICAgQWNjZXNzIGRyYWcgc291cmNlIGluZm8gdmlhIHNoYXJlZERyYWdJ
bmZvIC0gdGhpcyBmaXhlcyBkcmFnIHNvdXJjZSBldmVuIGRpc3BhdGNoaW5nLgorICAgICAgICBB
bHNvIHJlbW92ZWQgc29tZSBvbGQgY29kZSB0aGF0IHdhcyBmb3J3YXJkaW5nIG1vdXNlIGV2ZW50
cyB0byBzdWJ2aWV3cyB0byBtYWtlIAorICAgICAgICBIVE1MIGVkaXRpbmcgd29yayBpbiBzdWJm
cmFtZXMuCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZVZpZXc6OnVwZGF0ZURyYWdBbmREcm9wKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
Vmlldzo6Y2FuY2VsRHJhZ0FuZERyb3ApOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojpw
ZXJmb3JtRHJhZ0FuZERyb3ApOgorICAgICAgICBGb3J3YXJkIGV2ZW50cyB0byBzdWJmcmFtZXMg
Zm9yIGRpc3BhdGNoaW5nIC0gdGhpcyBmaXhlcyBkcmFnIHRhcmdldCBldmVudHMuCisKIDIwMDYt
MTAtMjkgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIC0gZml4IGJ1
aWxkCkluZGV4OiBXZWJDb3JlL2JyaWRnZS9tYWMvRnJhbWVNYWMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2JyaWRnZS9tYWMvRnJhbWVNYWMuaAkocmV2aXNpb24gMTc0MjIpCisrKyBXZWJDb3Jl
L2JyaWRnZS9tYWMvRnJhbWVNYWMuaAkod29ya2luZyBjb3B5KQpAQCAtMzcyLDE1ICszNzIsNyBA
QCBwcml2YXRlOgogICAgIFZlY3RvcjxLSlM6OkJpbmRpbmdzOjpSb290T2JqZWN0Kj4gbV9yb290
T2JqZWN0czsKICAgICBXZWJTY3JpcHRPYmplY3QqIF93aW5kb3dTY3JpcHRPYmplY3Q7CiAgICAg
TlBPYmplY3QqIF93aW5kb3dTY3JpcHROUE9iamVjdDsKLSAgICAKLSAgICBSZWZQdHI8Tm9kZT4g
X2RyYWdTcmM7ICAgICAvLyBlbGVtZW50IHRoYXQgbWF5IGJlIGEgZHJhZyBzb3VyY2UsIGZvciB0
aGUgY3VycmVudCBtb3VzZSBnZXN0dXJlCi0gICAgYm9vbCBfZHJhZ1NyY0lzTGluazsKLSAgICBi
b29sIF9kcmFnU3JjSXNJbWFnZTsKLSAgICBib29sIF9kcmFnU3JjSW5TZWxlY3Rpb247Ci0gICAg
Ym9vbCBfZHJhZ1NyY01heUJlREhUTUwsIF9kcmFnU3JjTWF5QmVVQTsgICAvLyBBcmUgREhUTUwg
YW5kL29yIHRoZSBVc2VyQWdlbnQgYWxsb3dlZCB0byBkcmFnIG91dD8KLSAgICBib29sIF9kcmFn
U3JjSXNESFRNTDsKLSAgICBSZWZQdHI8Q2xpcGJvYXJkTWFjPiBfZHJhZ0NsaXBib2FyZDsgICAv
LyB1c2VkIG9uIG9ubHkgdGhlIHNvdXJjZSBzaWRlIG9mIGRyYWdnaW5nCi0gICAgCisKICAgICBS
ZWZQdHI8UmFuZ2U+IG1fbWFya2VkVGV4dFJhbmdlOwogfTsKIApJbmRleDogV2ViQ29yZS9icmlk
Z2UvbWFjL0ZyYW1lTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYnJpZGdlL21hYy9GcmFt
ZU1hYy5tbQkocmV2aXNpb24gMTc0MjIpCisrKyBXZWJDb3JlL2JyaWRnZS9tYWMvRnJhbWVNYWMu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAy
MDA0LCAyMDA1LCAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDA2IEFsZXhleSBQcm9za3VyeWFrb3YgKGFwQG55cG9wLmNv
bSkKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTA4LDYgKzEwOSwxOCBAQCB1
c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiBOU0V2ZW50KiBGcmFtZU1hYzo6X2N1cnJlbnRF
dmVudCA9IG5pbDsKIAorc3RydWN0IEZyYW1lTWFjRHJhZ0luZm8geworICAgIFJlZlB0cjxOb2Rl
PiBtX2RyYWdTcmM7ICAgICAvLyBlbGVtZW50IHRoYXQgbWF5IGJlIGEgZHJhZyBzb3VyY2UsIGZv
ciB0aGUgY3VycmVudCBtb3VzZSBnZXN0dXJlCisgICAgYm9vbCBtX2RyYWdTcmNJc0xpbms7Cisg
ICAgYm9vbCBtX2RyYWdTcmNJc0ltYWdlOworICAgIGJvb2wgbV9kcmFnU3JjSW5TZWxlY3Rpb247
CisgICAgYm9vbCBtX2RyYWdTcmNNYXlCZURIVE1MLCBtX2RyYWdTcmNNYXlCZVVBOyAgIC8vIEFy
ZSBESFRNTCBhbmQvb3IgdGhlIFVzZXJBZ2VudCBhbGxvd2VkIHRvIGRyYWcgb3V0PworICAgIGJv
b2wgbV9kcmFnU3JjSXNESFRNTDsKKyAgICBSZWZQdHI8Q2xpcGJvYXJkTWFjPiBtX2RyYWdDbGlw
Ym9hcmQ7ICAgLy8gdXNlZCBvbiBvbmx5IHRoZSBzb3VyY2Ugc2lkZSBvZiBkcmFnZ2luZworfTsK
Kworc3RhdGljIEZyYW1lTWFjRHJhZ0luZm8qIHNoYXJlZERyYWdJbmZvOworCiBzdGF0aWMgY29u
c3QgdW5zaWduZWQgaW50IGVzY0NoYXIgPSAyNzsKIHN0YXRpYyBTRUwgc2VsZWN0b3JGb3JLZXlF
dmVudChjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQqIGV2ZW50KQogewpAQCAtMTUwLDYgKzE2
Myw4IEBAIEZyYW1lTWFjOjpGcmFtZU1hYyhQYWdlKiBwYWdlLCBFbGVtZW50KiAKICAgICAsIF93
aW5kb3dTY3JpcHRPYmplY3QoMCkKICAgICAsIF93aW5kb3dTY3JpcHROUE9iamVjdCgwKQogewor
ICAgIGlmICghc2hhcmVkRHJhZ0luZm8pCisgICAgICAgIHNoYXJlZERyYWdJbmZvID0gbmV3IEZy
YW1lTWFjRHJhZ0luZm87CiAgICAgZC0+bV9leHRlbnNpb24gPSBuZXcgQnJvd3NlckV4dGVuc2lv
bk1hYyh0aGlzKTsKICAgICBkLT5tX2ZyYW1lTG9hZGVyID0gbmV3IEZyYW1lTG9hZGVyKHRoaXMp
OwogfQpAQCAtMjQ4LDggKzI2Myw4IEBAIEZyYW1lKiBGcmFtZU1hYzo6Y3JlYXRlRnJhbWUoY29u
c3QgS1VSTCYKIAogdm9pZCBGcmFtZU1hYzo6ZnJlZUNsaXBib2FyZCgpCiB7Ci0gICAgaWYgKF9k
cmFnQ2xpcGJvYXJkKQotICAgICAgICBfZHJhZ0NsaXBib2FyZC0+c2V0QWNjZXNzUG9saWN5KENs
aXBib2FyZE51bWIpOworICAgIGlmIChzaGFyZWREcmFnSW5mby0+bV9kcmFnQ2xpcGJvYXJkKQor
ICAgICAgICBzaGFyZWREcmFnSW5mby0+bV9kcmFnQ2xpcGJvYXJkLT5zZXRBY2Nlc3NQb2xpY3ko
Q2xpcGJvYXJkTnVtYik7CiB9CiAKIC8vIEVpdGhlciBnZXQgY2FjaGVkIHJlZ2V4cCBvciBidWls
ZCBvbmUgdGhhdCBtYXRjaGVzIGFueSBvZiB0aGUgbGFiZWxzLgpAQCAtMTQ0MSwxMSArMTQ1Niwx
MSBAQCBib29sIEZyYW1lTWFjOjpkcmFnSHlzdGVyZXNpc0V4Y2VlZGVkKGZsCiAgICAgSW50U2l6
ZSBkZWx0YSA9IGRyYWdMb2NhdGlvbiAtIG1fbW91c2VEb3duUG9zOwogICAgIAogICAgIGZsb2F0
IHRocmVzaG9sZCA9IEdlbmVyYWxEcmFnSHlzdGVyZXNpczsKLSAgICBpZiAoX2RyYWdTcmNJc0lt
YWdlKQorICAgIGlmIChzaGFyZWREcmFnSW5mby0+bV9kcmFnU3JjSXNJbWFnZSkKICAgICAgICAg
dGhyZXNob2xkID0gSW1hZ2VEcmFnSHlzdGVyZXNpczsKLSAgICBlbHNlIGlmIChfZHJhZ1NyY0lz
TGluaykKKyAgICBlbHNlIGlmIChzaGFyZWREcmFnSW5mby0+bV9kcmFnU3JjSXNMaW5rKQogICAg
ICAgICB0aHJlc2hvbGQgPSBMaW5rRHJhZ0h5c3RlcmVzaXM7Ci0gICAgZWxzZSBpZiAoX2RyYWdT
cmNJblNlbGVjdGlvbikKKyAgICBlbHNlIGlmIChzaGFyZWREcmFnSW5mby0+bV9kcmFnU3JjSW5T
ZWxlY3Rpb24pCiAgICAgICAgIHRocmVzaG9sZCA9IFRleHREcmFnSHlzdGVyZXNpczsKIAogICAg
IHJldHVybiBmYWJzZihkZWx0YS53aWR0aCgpKSA+PSB0aHJlc2hvbGQgfHwgZmFic2YoZGVsdGEu
aGVpZ2h0KCkpID49IHRocmVzaG9sZDsKQEAgLTE0NTYsNTAgKzE0NzEsNDQgQEAgdm9pZCBGcmFt
ZU1hYzo6aGFuZGxlTW91c2VNb3ZlRXZlbnQoY29ucwogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhD
RVBUSU9OUzsKIAogICAgIGlmIChbX2N1cnJlbnRFdmVudCB0eXBlXSA9PSBOU0xlZnRNb3VzZURy
YWdnZWQpIHsKLSAgICAgICAgTlNWaWV3ICp2aWV3ID0gbW91c2VEb3duVmlld0lmU3RpbGxHb29k
KCk7Ci0KLSAgICAgICAgaWYgKHZpZXcpIHsKLSAgICAgICAgICAgIF9zZW5kaW5nRXZlbnRUb1N1
YnZpZXcgPSB0cnVlOwotICAgICAgICAgICAgW3ZpZXcgbW91c2VEcmFnZ2VkOl9jdXJyZW50RXZl
bnRdOwotICAgICAgICAgICAgX3NlbmRpbmdFdmVudFRvU3VidmlldyA9IGZhbHNlOwotICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICB9CisgICAgICAgIGlmIChtb3VzZURvd25WaWV3SWZTdGls
bEdvb2QoKSkKKyAgICAgICAgICAgIHJldHVybjsgLy8gVGhlIGV2ZW50IGhhcyBiZWVuIGFscmVh
ZHkgZGlzcGF0Y2hlZCB0byBhIHN1YmZyYW1lCiAKICAgICAgICAgLy8gQ2FyZWZ1bCB0aGF0IHRo
ZSBkcmFnIHN0YXJ0aW5nIGxvZ2ljIHN0YXlzIGluIHN5bmMgd2l0aCBldmVudE1heVN0YXJ0RHJh
ZygpCiAgICAgCi0gICAgICAgIGlmIChtb3VzZURvd25NYXlTdGFydERyYWcoKSAmJiAhX2RyYWdT
cmMpIHsKKyAgICAgICAgaWYgKG1vdXNlRG93bk1heVN0YXJ0RHJhZygpICYmICFzaGFyZWREcmFn
SW5mby0+bV9kcmFnU3JjKSB7CiAgICAgICAgICAgICBCT09MIHRlbXBGbGFnMSwgdGVtcEZsYWcy
OwogICAgICAgICAgICAgW19icmlkZ2UgYWxsb3dESFRNTERyYWc6JnRlbXBGbGFnMSBVQURyYWc6
JnRlbXBGbGFnMl07Ci0gICAgICAgICAgICBfZHJhZ1NyY01heUJlREhUTUwgPSB0ZW1wRmxhZzE7
Ci0gICAgICAgICAgICBfZHJhZ1NyY01heUJlVUEgPSB0ZW1wRmxhZzI7Ci0gICAgICAgICAgICBp
ZiAoIV9kcmFnU3JjTWF5QmVESFRNTCAmJiAhX2RyYWdTcmNNYXlCZVVBKSB7CisgICAgICAgICAg
ICBzaGFyZWREcmFnSW5mby0+bV9kcmFnU3JjTWF5QmVESFRNTCA9IHRlbXBGbGFnMTsKKyAgICAg
ICAgICAgIHNoYXJlZERyYWdJbmZvLT5tX2RyYWdTcmNNYXlCZVVBID0gdGVtcEZsYWcyOworICAg
ICAgICAgICAgaWYgKCFzaGFyZWREcmFnSW5mby0+bV9kcmFnU3JjTWF5QmVESFRNTCAmJiAhc2hh
cmVkRHJhZ0luZm8tPm1fZHJhZ1NyY01heUJlVUEpIHsKICAgICAgICAgICAgICAgICBzZXRNb3Vz
ZURvd25NYXlTdGFydERyYWcoZmFsc2UpOyAgICAgLy8gbm8gZWxlbWVudCBpcyBkcmFnZ2FibGUK
ICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgaWYgKG1vdXNlRG93
bk1heVN0YXJ0RHJhZygpICYmICFfZHJhZ1NyYykgeworICAgICAgICBpZiAobW91c2VEb3duTWF5
U3RhcnREcmFnKCkgJiYgIXNoYXJlZERyYWdJbmZvLT5tX2RyYWdTcmMpIHsKICAgICAgICAgICAg
IC8vIHRyeSB0byBmaW5kIGFuIGVsZW1lbnQgdGhhdCB3YW50cyB0byBiZSBkcmFnZ2VkCiAgICAg
ICAgICAgICBIaXRUZXN0UmVzdWx0IHJlc3VsdChtX21vdXNlRG93blBvcywgdHJ1ZSwgZmFsc2Up
OwogICAgICAgICAgICAgcmVuZGVyZXIoKS0+bGF5ZXIoKS0+aGl0VGVzdChyZXN1bHQpOwogICAg
ICAgICAgICAgTm9kZSAqbm9kZSA9IHJlc3VsdC5pbm5lck5vZGUoKTsKLSAgICAgICAgICAgIF9k
cmFnU3JjID0gKG5vZGUgJiYgbm9kZS0+cmVuZGVyZXIoKSkgPyBub2RlLT5yZW5kZXJlcigpLT5k
cmFnZ2FibGVOb2RlKF9kcmFnU3JjTWF5QmVESFRNTCwgX2RyYWdTcmNNYXlCZVVBLCBtX21vdXNl
RG93blBvcy54KCksIG1fbW91c2VEb3duUG9zLnkoKSwgX2RyYWdTcmNJc0RIVE1MKSA6IDA7Ci0g
ICAgICAgICAgICBpZiAoIV9kcmFnU3JjKSB7CisgICAgICAgICAgICBzaGFyZWREcmFnSW5mby0+
bV9kcmFnU3JjID0gKG5vZGUgJiYgbm9kZS0+cmVuZGVyZXIoKSkgPyBub2RlLT5yZW5kZXJlcigp
LT5kcmFnZ2FibGVOb2RlKHNoYXJlZERyYWdJbmZvLT5tX2RyYWdTcmNNYXlCZURIVE1MLCBzaGFy
ZWREcmFnSW5mby0+bV9kcmFnU3JjTWF5QmVVQSwgbV9tb3VzZURvd25Qb3MueCgpLCBtX21vdXNl
RG93blBvcy55KCksIHNoYXJlZERyYWdJbmZvLT5tX2RyYWdTcmNJc0RIVE1MKSA6IDA7CisgICAg
ICAgICAgICBpZiAoIXNoYXJlZERyYWdJbmZvLT5tX2RyYWdTcmMpIHsKICAgICAgICAgICAgICAg
ICBzZXRNb3VzZURvd25NYXlTdGFydERyYWcoZmFsc2UpOyAgICAgLy8gbm8gZWxlbWVudCBpcyBk
cmFnZ2FibGUKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgLy8gcmVtZW1i
ZXIgc29tZSBmYWN0cyBhYm91dCB0aGlzIHNvdXJjZSwgd2hpbGUgd2UgaGF2ZSBhIEhpdFRlc3RS
ZXN1bHQgaGFuZHkKICAgICAgICAgICAgICAgICBub2RlID0gcmVzdWx0LlVSTEVsZW1lbnQoKTsK
LSAgICAgICAgICAgICAgICBfZHJhZ1NyY0lzTGluayA9IG5vZGUgJiYgbm9kZS0+aXNMaW5rKCk7
CisgICAgICAgICAgICAgICAgc2hhcmVkRHJhZ0luZm8tPm1fZHJhZ1NyY0lzTGluayA9IG5vZGUg
JiYgbm9kZS0+aXNMaW5rKCk7CiAKICAgICAgICAgICAgICAgICBub2RlID0gcmVzdWx0LmlubmVy
Tm9uU2hhcmVkTm9kZSgpOwotICAgICAgICAgICAgICAgIF9kcmFnU3JjSXNJbWFnZSA9IG5vZGUg
JiYgbm9kZS0+cmVuZGVyZXIoKSAmJiBub2RlLT5yZW5kZXJlcigpLT5pc0ltYWdlKCk7CisgICAg
ICAgICAgICAgICAgc2hhcmVkRHJhZ0luZm8tPm1fZHJhZ1NyY0lzSW1hZ2UgPSBub2RlICYmIG5v
ZGUtPnJlbmRlcmVyKCkgJiYgbm9kZS0+cmVuZGVyZXIoKS0+aXNJbWFnZSgpOwogICAgICAgICAg
ICAgICAgIAotICAgICAgICAgICAgICAgIF9kcmFnU3JjSW5TZWxlY3Rpb24gPSBpc1BvaW50SW5z
aWRlU2VsZWN0aW9uKG1fbW91c2VEb3duUG9zKTsKLSAgICAgICAgICAgIH0gICAgICAgICAgICAg
ICAgCisgICAgICAgICAgICAgICAgc2hhcmVkRHJhZ0luZm8tPm1fZHJhZ1NyY0luU2VsZWN0aW9u
ID0gaXNQb2ludEluc2lkZVNlbGVjdGlvbihtX21vdXNlRG93blBvcyk7CisgICAgICAgICAgICB9
CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIC8vIEZvciBkcmFncyBzdGFydGluZyBpbiB0
aGUgc2VsZWN0aW9uLCB0aGUgdXNlciBtdXN0IHdhaXQgYmV0d2VlbiB0aGUgbW91c2Vkb3duIGFu
ZCBtb3VzZWRyYWcsCiAgICAgICAgIC8vIG9yIGVsc2Ugd2UgYmFpbCBvbiB0aGUgZHJhZ2dpbmcg
c3R1ZmYgYW5kIGFsbG93IHNlbGVjdGlvbiB0byBvY2N1cgotICAgICAgICBpZiAobW91c2VEb3du
TWF5U3RhcnREcmFnKCkgJiYgX2RyYWdTcmNJblNlbGVjdGlvbiAmJiBbX2N1cnJlbnRFdmVudCB0
aW1lc3RhbXBdIC0gX21vdXNlRG93blRpbWVzdGFtcCA8IFRleHREcmFnRGVsYXkpIHsKKyAgICAg
ICAgaWYgKG1vdXNlRG93bk1heVN0YXJ0RHJhZygpICYmIHNoYXJlZERyYWdJbmZvLT5tX2RyYWdT
cmNJblNlbGVjdGlvbiAmJiBbX2N1cnJlbnRFdmVudCB0aW1lc3RhbXBdIC0gX21vdXNlRG93blRp
bWVzdGFtcCA8IFRleHREcmFnRGVsYXkpIHsKICAgICAgICAgICAgIHNldE1vdXNlRG93bk1heVN0
YXJ0RHJhZyhmYWxzZSk7CiAgICAgICAgICAgICAvLyAuLi5idXQgaWYgdGhpcyB3YXMgdGhlIGZp
cnN0IGNsaWNrIGluIHRoZSB3aW5kb3csIHdlIGRvbid0IGV2ZW4gd2FudCB0byBzdGFydCBzZWxl
Y3Rpb24KICAgICAgICAgICAgIGlmIChfYWN0aXZhdGlvbkV2ZW50TnVtYmVyID09IFtfY3VycmVu
dEV2ZW50IGV2ZW50TnVtYmVyXSkgewpAQCAtMTUyMSw3ICsxNTMwLDcgQEAgdm9pZCBGcmFtZU1h
Yzo6aGFuZGxlTW91c2VNb3ZlRXZlbnQoY29ucwogICAgICAgICAgICAgICAgIE5TUG9pbnQgZHJh
Z0xvYyA9IE5TWmVyb1BvaW50OwogICAgICAgICAgICAgICAgIE5TRHJhZ09wZXJhdGlvbiBzcmNP
cCA9IE5TRHJhZ09wZXJhdGlvbk5vbmU7ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg
IEJPT0wgd2NXcm90ZVBhc3RlYm9hcmQgPSBOTzsKLSAgICAgICAgICAgICAgICBpZiAoX2RyYWdT
cmNNYXlCZURIVE1MKSB7CisgICAgICAgICAgICAgICAgaWYgKHNoYXJlZERyYWdJbmZvLT5tX2Ry
YWdTcmNNYXlCZURIVE1MKSB7CiAgICAgICAgICAgICAgICAgICAgIE5TUGFzdGVib2FyZCAqcGFz
dGVib2FyZCA9IFtOU1Bhc3RlYm9hcmQgcGFzdGVib2FyZFdpdGhOYW1lOk5TRHJhZ1Bib2FyZF07
CiAgICAgICAgICAgICAgICAgICAgIC8vIE11c3QgYmUgZG9uZSBiZWZvcmUgb25kcmFnc3RhcnQg
YWRkcyB0eXBlcyBhbmQgZGF0YSB0byB0aGUgcGJvYXJkLAogICAgICAgICAgICAgICAgICAgICAv
LyBhbHNvIGRvbmUgZm9yIHNlY3VyaXR5LCBhcyBpdCBlcmFzZXMgZGF0YSBmcm9tIHRoZSBsYXN0
IGRyYWcKQEAgLTE1MjksNDMgKzE1MzgsNDMgQEAgdm9pZCBGcmFtZU1hYzo6aGFuZGxlTW91c2VN
b3ZlRXZlbnQoY29ucwogICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg
ZnJlZUNsaXBib2FyZCgpOyAgICAvLyB3b3VsZCBvbmx5IGhhcHBlbiBpZiB3ZSBtaXNzZWQgYSBk
cmFnRW5kLiAgRG8gaXQgYW55d2F5LCBqdXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLy8gdG8gbWFrZSBzdXJlIGl0IGdldHMgbnVtYmlmaWVkCi0gICAgICAgICAg
ICAgICAgICAgIF9kcmFnQ2xpcGJvYXJkID0gbmV3IENsaXBib2FyZE1hYyh0cnVlLCBwYXN0ZWJv
YXJkLCBDbGlwYm9hcmRXcml0YWJsZSwgdGhpcyk7CisgICAgICAgICAgICAgICAgICAgIHNoYXJl
ZERyYWdJbmZvLT5tX2RyYWdDbGlwYm9hcmQgPSBuZXcgQ2xpcGJvYXJkTWFjKHRydWUsIHBhc3Rl
Ym9hcmQsIENsaXBib2FyZFdyaXRhYmxlLCB0aGlzKTsKICAgICAgICAgICAgICAgICAgICAgCiAg
ICAgICAgICAgICAgICAgICAgIC8vIElmIHRoaXMgaXMgZHJhZyBvZiBhbiBlbGVtZW50LCBnZXQg
c2V0IHVwIHRvIGdlbmVyYXRlIGEgZGVmYXVsdCBpbWFnZS4gIE90aGVyd2lzZQogICAgICAgICAg
ICAgICAgICAgICAvLyBXZWJLaXQgd2lsbCBnZW5lcmF0ZSB0aGUgZGVmYXVsdCwgdGhlIGVsZW1l
bnQgZG9lc24ndCBvdmVycmlkZS4KLSAgICAgICAgICAgICAgICAgICAgaWYgKF9kcmFnU3JjSXNE
SFRNTCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoc2hhcmVkRHJhZ0luZm8tPm1fZHJhZ1Ny
Y0lzREhUTUwpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzcmNYLCBzcmNZOwotICAg
ICAgICAgICAgICAgICAgICAgICAgX2RyYWdTcmMtPnJlbmRlcmVyKCktPmFic29sdXRlUG9zaXRp
b24oc3JjWCwgc3JjWSk7CisgICAgICAgICAgICAgICAgICAgICAgICBzaGFyZWREcmFnSW5mby0+
bV9kcmFnU3JjLT5yZW5kZXJlcigpLT5hYnNvbHV0ZVBvc2l0aW9uKHNyY1gsIHNyY1kpOwogICAg
ICAgICAgICAgICAgICAgICAgICAgSW50U2l6ZSBkZWx0YSA9IG1fbW91c2VEb3duUG9zIC0gSW50
UG9pbnQoc3JjWCwgc3JjWSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBfZHJhZ0NsaXBib2Fy
ZC0+c2V0RHJhZ0ltYWdlRWxlbWVudChfZHJhZ1NyYy5nZXQoKSwgSW50UG9pbnQoKSArIGRlbHRh
KTsKLSAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgICAgIHNoYXJl
ZERyYWdJbmZvLT5tX2RyYWdDbGlwYm9hcmQtPnNldERyYWdJbWFnZUVsZW1lbnQoc2hhcmVkRHJh
Z0luZm8tPm1fZHJhZ1NyYy5nZXQoKSwgSW50UG9pbnQoKSArIGRlbHRhKTsKKyAgICAgICAgICAg
ICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAgICAgIHNldE1vdXNlRG93bk1heVN0YXJ0RHJh
ZyhkaXNwYXRjaERyYWdTcmNFdmVudChkcmFnc3RhcnRFdmVudCwgbV9tb3VzZURvd24pICYmIG1h
eUNvcHkoKSk7CiAgICAgICAgICAgICAgICAgICAgIC8vIEludmFsaWRhdGUgY2xpcGJvYXJkIGhl
cmUgYWdhaW5zdCBhbnltb3JlIHBhc3RlYm9hcmQgd3JpdGluZyBmb3Igc2VjdXJpdHkuICBUaGUg
ZHJhZwogICAgICAgICAgICAgICAgICAgICAvLyBpbWFnZSBjYW4gc3RpbGwgYmUgY2hhbmdlZCBh
cyB3ZSBkcmFnLCBidXQgbm90IHRoZSBwYXN0ZWJvYXJkIGRhdGEuCi0gICAgICAgICAgICAgICAg
ICAgIF9kcmFnQ2xpcGJvYXJkLT5zZXRBY2Nlc3NQb2xpY3koQ2xpcGJvYXJkSW1hZ2VXcml0YWJs
ZSk7CisgICAgICAgICAgICAgICAgICAgIHNoYXJlZERyYWdJbmZvLT5tX2RyYWdDbGlwYm9hcmQt
PnNldEFjY2Vzc1BvbGljeShDbGlwYm9hcmRJbWFnZVdyaXRhYmxlKTsKICAgICAgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICAgICAgICAgIGlmIChtb3VzZURvd25NYXlTdGFydERyYWcoKSkg
ewogICAgICAgICAgICAgICAgICAgICAgICAgLy8gZ2F0aGVyIHZhbHVlcyBmcm9tIERIVE1MIGVs
ZW1lbnQsIGlmIGl0IHNldCBhbnkKLSAgICAgICAgICAgICAgICAgICAgICAgIF9kcmFnQ2xpcGJv
YXJkLT5zb3VyY2VPcGVyYXRpb24oc3JjT3ApOworICAgICAgICAgICAgICAgICAgICAgICAgc2hh
cmVkRHJhZ0luZm8tPm1fZHJhZ0NsaXBib2FyZC0+c291cmNlT3BlcmF0aW9uKHNyY09wKTsKIAog
ICAgICAgICAgICAgICAgICAgICAgICAgTlNBcnJheSAqdHlwZXMgPSBbcGFzdGVib2FyZCB0eXBl
c107CiAgICAgICAgICAgICAgICAgICAgICAgICB3Y1dyb3RlUGFzdGVib2FyZCA9IHR5cGVzICYm
IFt0eXBlcyBjb3VudF0gPiAwOwogCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoX2RyYWdT
cmNNYXlCZURIVE1MKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyYWdJbWFnZSA9IF9k
cmFnQ2xpcGJvYXJkLT5kcmFnTlNJbWFnZShkcmFnTG9jKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGlmIChzaGFyZWREcmFnSW5mby0+bV9kcmFnU3JjTWF5QmVESFRNTCkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBkcmFnSW1hZ2UgPSBzaGFyZWREcmFnSW5mby0+bV9kcmFnQ2xpcGJv
YXJkLT5kcmFnTlNJbWFnZShkcmFnTG9jKTsKICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gWXVjaywgZHJhZ1NvdXJjZU1vdmVkVG8oKSBjYW4gYmUg
Y2FsbGVkIGFzIGEgcmVzdWx0IG9mIGtpY2tpbmcgb2ZmIHRoZSBkcmFnIHdpdGgKICAgICAgICAg
ICAgICAgICAgICAgICAgIC8vIGRyYWdJbWFnZSEgIEJlY2F1c2Ugb2YgdGhhdCBkdW1iIHJlZW50
cmFuY3ksIHdlIG1heSB0aGluayB3ZSd2ZSBub3Qgc3RhcnRlZCB0aGUKICAgICAgICAgICAgICAg
ICAgICAgICAgIC8vIGRyYWcgd2hlbiB0aGF0IGhhcHBlbnMuICBTbyB3ZSBoYXZlIHRvIGFzc3Vt
ZSBpdCdzIHN0YXJ0ZWQgYmVmb3JlIHdlIGtpY2sgaXQgb2ZmLgotICAgICAgICAgICAgICAgICAg
ICAgICAgX2RyYWdDbGlwYm9hcmQtPnNldERyYWdIYXNTdGFydGVkKCk7CisgICAgICAgICAgICAg
ICAgICAgICAgICBzaGFyZWREcmFnSW5mby0+bV9kcmFnQ2xpcGJvYXJkLT5zZXREcmFnSGFzU3Rh
cnRlZCgpOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgIGlmIChtb3VzZURvd25NYXlTdGFydERyYWcoKSkg
ewotICAgICAgICAgICAgICAgICAgICBCT09MIHN0YXJ0ZWREcmFnID0gW19icmlkZ2Ugc3RhcnRE
cmFnZ2luZ0ltYWdlOmRyYWdJbWFnZSBhdDpkcmFnTG9jIG9wZXJhdGlvbjpzcmNPcCBldmVudDpf
Y3VycmVudEV2ZW50IHNvdXJjZUlzREhUTUw6X2RyYWdTcmNJc0RIVE1MIERIVE1MV3JvdGVEYXRh
OndjV3JvdGVQYXN0ZWJvYXJkXTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCFzdGFydGVkRHJh
ZyAmJiBfZHJhZ1NyY01heUJlREhUTUwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdl
YktpdCBjYW5uZWQgdGhlIGRyYWcgYXQgdGhlIGxhc3QgbWludXRlIC0gd2Ugb3dlIF9kcmFnU3Jj
IGEgRFJBR0VORCBldmVudAorICAgICAgICAgICAgICAgICAgICBCT09MIHN0YXJ0ZWREcmFnID0g
W19icmlkZ2Ugc3RhcnREcmFnZ2luZ0ltYWdlOmRyYWdJbWFnZSBhdDpkcmFnTG9jIG9wZXJhdGlv
bjpzcmNPcCBldmVudDpfY3VycmVudEV2ZW50IHNvdXJjZUlzREhUTUw6c2hhcmVkRHJhZ0luZm8t
Pm1fZHJhZ1NyY0lzREhUTUwgREhUTUxXcm90ZURhdGE6d2NXcm90ZVBhc3RlYm9hcmRdOworICAg
ICAgICAgICAgICAgICAgICBpZiAoIXN0YXJ0ZWREcmFnICYmIHNoYXJlZERyYWdJbmZvLT5tX2Ry
YWdTcmNNYXlCZURIVE1MKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZWJLaXQgY2Fu
bmVkIHRoZSBkcmFnIGF0IHRoZSBsYXN0IG1pbnV0ZSAtIHdlIG93ZSBtX2RyYWdTcmMgYSBEUkFH
RU5EIGV2ZW50CiAgICAgICAgICAgICAgICAgICAgICAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgZXZl
bnQoUGxhdGZvcm1Nb3VzZUV2ZW50OjpjdXJyZW50RXZlbnQpOwogICAgICAgICAgICAgICAgICAg
ICAgICAgZGlzcGF0Y2hEcmFnU3JjRXZlbnQoZHJhZ2VuZEV2ZW50LCBldmVudCk7CiAgICAgICAg
ICAgICAgICAgICAgICAgICBzZXRNb3VzZURvd25NYXlTdGFydERyYWcoZmFsc2UpOwpAQCAtMTU3
NSw3ICsxNTg0LDcgQEAgdm9pZCBGcmFtZU1hYzo6aGFuZGxlTW91c2VNb3ZlRXZlbnQoY29ucwog
ICAgICAgICAgICAgICAgIGlmICghbW91c2VEb3duTWF5U3RhcnREcmFnKCkpIHsKICAgICAgICAg
ICAgICAgICAgICAgLy8gc29tZXRoaW5nIGZhaWxlZCB0byBzdGFydCB0aGUgZHJhZywgY2xlYW51
cAogICAgICAgICAgICAgICAgICAgICBmcmVlQ2xpcGJvYXJkKCk7Ci0gICAgICAgICAgICAgICAg
ICAgIF9kcmFnU3JjID0gMDsKKyAgICAgICAgICAgICAgICAgICAgc2hhcmVkRHJhZ0luZm8tPm1f
ZHJhZ1NyYyA9IDA7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogCkBAIC0xNjg2
LDEyICsxNjk1LDYgQEAgdm9pZCBGcmFtZU1hYzo6aGFuZGxlTW91c2VSZWxlYXNlRXZlbnQoYwog
ICAgICAgICByZXR1cm47CiAgICAgfQogICAgIHN0b3BBdXRvc2Nyb2xsVGltZXIoKTsKLSAgICAK
LSAgICBfc2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0gdHJ1ZTsKLSAgICBCRUdJTl9CTE9DS19PQkpD
X0VYQ0VQVElPTlM7Ci0gICAgW3ZpZXcgbW91c2VVcDpfY3VycmVudEV2ZW50XTsKLSAgICBFTkRf
QkxPQ0tfT0JKQ19FWENFUFRJT05TOwotICAgIF9zZW5kaW5nRXZlbnRUb1N1YnZpZXcgPSBmYWxz
ZTsKIH0KIAogYm9vbCBGcmFtZU1hYzo6cGFzc1N1YmZyYW1lRXZlbnRUb1N1YmZyYW1lKE1vdXNl
RXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmIGV2ZW50LCBGcmFtZSogc3ViZnJhbWUpCkBAIC0xNzg0
LDcgKzE3ODcsNyBAQCB2b2lkIEZyYW1lTWFjOjptb3VzZURvd24oTlNFdmVudCAqZXZlbnQpCiAg
ICAgcHJlcGFyZUZvclVzZXJBY3Rpb24oKTsKIAogICAgIF9tb3VzZURvd25WaWV3ID0gbmlsOwot
ICAgIF9kcmFnU3JjID0gMDsKKyAgICBzaGFyZWREcmFnSW5mby0+bV9kcmFnU3JjID0gMDsKICAg
ICAKICAgICBOU0V2ZW50ICpvbGRDdXJyZW50RXZlbnQgPSBfY3VycmVudEV2ZW50OwogICAgIF9j
dXJyZW50RXZlbnQgPSBIYXJkUmV0YWluKGV2ZW50KTsKQEAgLTMzMjIsMjYgKzMzMjUsMjYgQEAg
Ym9vbCBGcmFtZU1hYzo6c2hvdWxkQ2xvc2UoKQogCiB2b2lkIEZyYW1lTWFjOjpkcmFnU291cmNl
TW92ZWRUbyhjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50KQogewotICAgIGlmIChfZHJh
Z1NyYyAmJiBfZHJhZ1NyY01heUJlREhUTUwpCisgICAgaWYgKHNoYXJlZERyYWdJbmZvLT5tX2Ry
YWdTcmMgJiYgc2hhcmVkRHJhZ0luZm8tPm1fZHJhZ1NyY01heUJlREhUTUwpCiAgICAgICAgIC8v
IGZvciBub3cgd2UgZG9uJ3QgY2FyZSBpZiBldmVudCBoYW5kbGVyIGNhbmNlbHMgZGVmYXVsdCBi
ZWhhdmlvciwgc2luY2UgdGhlcmUgaXMgbm9uZQogICAgICAgICBkaXNwYXRjaERyYWdTcmNFdmVu
dChkcmFnRXZlbnQsIGV2ZW50KTsKIH0KIAogdm9pZCBGcmFtZU1hYzo6ZHJhZ1NvdXJjZUVuZGVk
QXQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCwgTlNEcmFnT3BlcmF0aW9uIG9wZXJh
dGlvbikKIHsKLSAgICBpZiAoX2RyYWdTcmMgJiYgX2RyYWdTcmNNYXlCZURIVE1MKSB7Ci0gICAg
ICAgIF9kcmFnQ2xpcGJvYXJkLT5zZXREZXN0aW5hdGlvbk9wZXJhdGlvbihvcGVyYXRpb24pOwor
ICAgIGlmIChzaGFyZWREcmFnSW5mby0+bV9kcmFnU3JjICYmIHNoYXJlZERyYWdJbmZvLT5tX2Ry
YWdTcmNNYXlCZURIVE1MKSB7CisgICAgICAgIHNoYXJlZERyYWdJbmZvLT5tX2RyYWdDbGlwYm9h
cmQtPnNldERlc3RpbmF0aW9uT3BlcmF0aW9uKG9wZXJhdGlvbik7CiAgICAgICAgIC8vIGZvciBu
b3cgd2UgZG9uJ3QgY2FyZSBpZiBldmVudCBoYW5kbGVyIGNhbmNlbHMgZGVmYXVsdCBiZWhhdmlv
ciwgc2luY2UgdGhlcmUgaXMgbm9uZQogICAgICAgICBkaXNwYXRjaERyYWdTcmNFdmVudChkcmFn
ZW5kRXZlbnQsIGV2ZW50KTsKICAgICB9CiAgICAgZnJlZUNsaXBib2FyZCgpOwotICAgIF9kcmFn
U3JjID0gMDsKKyAgICBzaGFyZWREcmFnSW5mby0+bV9kcmFnU3JjID0gMDsKIH0KIAogLy8gcmV0
dXJucyBpZiB3ZSBzaG91bGQgY29udGludWUgImRlZmF1bHQgcHJvY2Vzc2luZyIsIGkuZS4sIHdo
ZXRoZXIgZXZlbnRoYW5kbGVyIGNhbmNlbGVkCi1ib29sIEZyYW1lTWFjOjpkaXNwYXRjaERyYWdT
cmNFdmVudChjb25zdCBBdG9taWNTdHJpbmcgJmV2ZW50VHlwZSwgY29uc3QgUGxhdGZvcm1Nb3Vz
ZUV2ZW50JiBldmVudCkgY29uc3QKK2Jvb2wgRnJhbWVNYWM6OmRpc3BhdGNoRHJhZ1NyY0V2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQm
IGV2ZW50KSBjb25zdAogewotICAgIGJvb2wgbm9EZWZhdWx0UHJvYyA9IGQtPm1fdmlldy0+ZGlz
cGF0Y2hEcmFnRXZlbnQoZXZlbnRUeXBlLCBfZHJhZ1NyYy5nZXQoKSwgZXZlbnQsIF9kcmFnQ2xp
cGJvYXJkLmdldCgpKTsKKyAgICBib29sIG5vRGVmYXVsdFByb2MgPSBkLT5tX3ZpZXctPmRpc3Bh
dGNoRHJhZ0V2ZW50KGV2ZW50VHlwZSwgc2hhcmVkRHJhZ0luZm8tPm1fZHJhZ1NyYy5nZXQoKSwg
ZXZlbnQsIHNoYXJlZERyYWdJbmZvLT5tX2RyYWdDbGlwYm9hcmQuZ2V0KCkpOwogICAgIHJldHVy
biAhbm9EZWZhdWx0UHJvYzsKIH0KIApJbmRleDogV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAJKHJldmlzaW9uIDE3NDIy
KQorKysgV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYsNiAr
Niw3IEBACiAgKiAgICAgICAgICAgICAgICAgICAgIDIwMDAgRGlyayBNdWVsbGVyIDxtdWVsbGVy
QGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYgQXBwbGUgQ29tcHV0
ZXIsIEluYy4KICAqICAgICAgICAgICAoQykgMjAwNiBHcmFoYW0gRGVubmlzIChncmFoYW0uZGVu
bmlzQGdtYWlsLmNvbSkKKyAqICAgICAgICAgICAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292
IChhcEBueXBvcC5jb20pCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTM0LDYgKzM1LDcgQEAKICNp
bmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgogI2luY2x1ZGUgIkhUTUxE
b2N1bWVudC5oIgorI2luY2x1ZGUgIkhUTUxGcmFtZUVsZW1lbnRCYXNlLmgiCiAjaW5jbHVkZSAi
SFRNTEZyYW1lU2V0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNp
bmNsdWRlICJIVE1MTmFtZXMuaCIKQEAgLTkzOCwxNCArOTQwLDI2IEBAIGJvb2wgRnJhbWVWaWV3
Ojp1cGRhdGVEcmFnQW5kRHJvcChjb25zdCAKICAgICAgICAgbmV3VGFyZ2V0ID0gbmV3VGFyZ2V0
LT5zaGFkb3dBbmNlc3Rvck5vZGUoKTsKIAogICAgIGlmIChkLT5kcmFnVGFyZ2V0ICE9IG5ld1Rh
cmdldCkgewotICAgICAgICAvLyBub3RlIHRoaXMgb3JkZXJpbmcgaXMgZXhwbGljaXRseSBjaG9z
ZW4gdG8gbWF0Y2ggV2luSUUKKyAgICAgICAgLy8gRklYTUU6IHRoaXMgb3JkZXJpbmcgd2FzIGV4
cGxpY2l0bHkgY2hvc2VuIHRvIG1hdGNoIFdpbklFLiBIb3dldmVyLAorICAgICAgICAvLyBpdCBp
cyBzb21ldGltZXMgaW5jb3JyZWN0IHdoZW4gZHJhZ2dpbmcgd2l0aGluIHN1YmZyYW1lcywgYXMg
c2VlbiB3aXRoCisgICAgICAgIC8vIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2RyYWctaW4tZnJh
bWVzLmh0bWwuCiAgICAgICAgIGlmIChuZXdUYXJnZXQpCi0gICAgICAgICAgICBhY2NlcHQgPSBk
aXNwYXRjaERyYWdFdmVudChkcmFnZW50ZXJFdmVudCwgbmV3VGFyZ2V0LCBldmVudCwgY2xpcGJv
YXJkKTsKKyAgICAgICAgICAgIGlmIChuZXdUYXJnZXQtPmhhc1RhZ05hbWUoZnJhbWVUYWcpIHx8
IG5ld1RhcmdldC0+aGFzVGFnTmFtZShpZnJhbWVUYWcpKQorICAgICAgICAgICAgICAgIGFjY2Vw
dCA9IHN0YXRpY19jYXN0PEhUTUxGcmFtZUVsZW1lbnRCYXNlKj4obmV3VGFyZ2V0KS0+Y29udGVu
dEZyYW1lKCktPnZpZXcoKS0+dXBkYXRlRHJhZ0FuZERyb3AoZXZlbnQsIGNsaXBib2FyZCk7Cisg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgYWNjZXB0ID0gZGlzcGF0Y2hEcmFnRXZl
bnQoZHJhZ2VudGVyRXZlbnQsIG5ld1RhcmdldCwgZXZlbnQsIGNsaXBib2FyZCk7CisgICAgICAg
IAogICAgICAgICBpZiAoZC0+ZHJhZ1RhcmdldCkKLSAgICAgICAgICAgIGRpc3BhdGNoRHJhZ0V2
ZW50KGRyYWdsZWF2ZUV2ZW50LCBkLT5kcmFnVGFyZ2V0LmdldCgpLCBldmVudCwgY2xpcGJvYXJk
KTsKKyAgICAgICAgICAgIGlmIChkLT5kcmFnVGFyZ2V0LT5oYXNUYWdOYW1lKGZyYW1lVGFnKSB8
fCBkLT5kcmFnVGFyZ2V0LT5oYXNUYWdOYW1lKGlmcmFtZVRhZykpCisgICAgICAgICAgICAgICAg
YWNjZXB0ID0gc3RhdGljX2Nhc3Q8SFRNTEZyYW1lRWxlbWVudEJhc2UqPihkLT5kcmFnVGFyZ2V0
LmdldCgpKS0+Y29udGVudEZyYW1lKCktPnZpZXcoKS0+dXBkYXRlRHJhZ0FuZERyb3AoZXZlbnQs
IGNsaXBib2FyZCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZGlzcGF0Y2hE
cmFnRXZlbnQoZHJhZ2xlYXZlRXZlbnQsIGQtPmRyYWdUYXJnZXQuZ2V0KCksIGV2ZW50LCBjbGlw
Ym9hcmQpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGlmIChuZXdUYXJnZXQpCi0gICAgICAgICAg
ICBhY2NlcHQgPSBkaXNwYXRjaERyYWdFdmVudChkcmFnb3ZlckV2ZW50LCBuZXdUYXJnZXQsIGV2
ZW50LCBjbGlwYm9hcmQpOworICAgICAgICAgICAgaWYgKG5ld1RhcmdldC0+aGFzVGFnTmFtZShm
cmFtZVRhZykgfHwgbmV3VGFyZ2V0LT5oYXNUYWdOYW1lKGlmcmFtZVRhZykpCisgICAgICAgICAg
ICAgICAgYWNjZXB0ID0gc3RhdGljX2Nhc3Q8SFRNTEZyYW1lRWxlbWVudEJhc2UqPihuZXdUYXJn
ZXQpLT5jb250ZW50RnJhbWUoKS0+dmlldygpLT51cGRhdGVEcmFnQW5kRHJvcChldmVudCwgY2xp
cGJvYXJkKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBhY2NlcHQgPSBkaXNw
YXRjaERyYWdFdmVudChkcmFnb3ZlckV2ZW50LCBuZXdUYXJnZXQsIGV2ZW50LCBjbGlwYm9hcmQp
OwogICAgIH0KICAgICBkLT5kcmFnVGFyZ2V0ID0gbmV3VGFyZ2V0OwogCkBAIC05NTUsNyArOTY5
LDEwIEBAIGJvb2wgRnJhbWVWaWV3Ojp1cGRhdGVEcmFnQW5kRHJvcChjb25zdCAKIHZvaWQgRnJh
bWVWaWV3OjpjYW5jZWxEcmFnQW5kRHJvcChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50
LCBDbGlwYm9hcmQqIGNsaXBib2FyZCkKIHsKICAgICBpZiAoZC0+ZHJhZ1RhcmdldCkKLSAgICAg
ICAgZGlzcGF0Y2hEcmFnRXZlbnQoZHJhZ2xlYXZlRXZlbnQsIGQtPmRyYWdUYXJnZXQuZ2V0KCks
IGV2ZW50LCBjbGlwYm9hcmQpOworICAgICAgICBpZiAoZC0+ZHJhZ1RhcmdldC0+aGFzVGFnTmFt
ZShmcmFtZVRhZykgfHwgZC0+ZHJhZ1RhcmdldC0+aGFzVGFnTmFtZShpZnJhbWVUYWcpKQorICAg
ICAgICAgICAgc3RhdGljX2Nhc3Q8SFRNTEZyYW1lRWxlbWVudEJhc2UqPihkLT5kcmFnVGFyZ2V0
LmdldCgpKS0+Y29udGVudEZyYW1lKCktPnZpZXcoKS0+Y2FuY2VsRHJhZ0FuZERyb3AoZXZlbnQs
IGNsaXBib2FyZCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGRpc3BhdGNoRHJhZ0V2ZW50
KGRyYWdsZWF2ZUV2ZW50LCBkLT5kcmFnVGFyZ2V0LmdldCgpLCBldmVudCwgY2xpcGJvYXJkKTsK
ICAgICBkLT5kcmFnVGFyZ2V0ID0gMDsKIH0KIApAQCAtOTYzLDcgKzk4MCwxMCBAQCBib29sIEZy
YW1lVmlldzo6cGVyZm9ybURyYWdBbmREcm9wKGNvbnN0CiB7CiAgICAgYm9vbCBhY2NlcHQgPSBm
YWxzZTsKICAgICBpZiAoZC0+ZHJhZ1RhcmdldCkKLSAgICAgICAgYWNjZXB0ID0gZGlzcGF0Y2hE
cmFnRXZlbnQoZHJvcEV2ZW50LCBkLT5kcmFnVGFyZ2V0LmdldCgpLCBldmVudCwgY2xpcGJvYXJk
KTsKKyAgICAgICAgaWYgKGQtPmRyYWdUYXJnZXQtPmhhc1RhZ05hbWUoZnJhbWVUYWcpIHx8IGQt
PmRyYWdUYXJnZXQtPmhhc1RhZ05hbWUoaWZyYW1lVGFnKSkKKyAgICAgICAgICAgIGFjY2VwdCA9
IHN0YXRpY19jYXN0PEhUTUxGcmFtZUVsZW1lbnRCYXNlKj4oZC0+ZHJhZ1RhcmdldC5nZXQoKSkt
PmNvbnRlbnRGcmFtZSgpLT52aWV3KCktPnBlcmZvcm1EcmFnQW5kRHJvcChldmVudCwgY2xpcGJv
YXJkKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgYWNjZXB0ID0gZGlzcGF0Y2hEcmFnRXZl
bnQoZHJvcEV2ZW50LCBkLT5kcmFnVGFyZ2V0LmdldCgpLCBldmVudCwgY2xpcGJvYXJkKTsKICAg
ICBkLT5kcmFnVGFyZ2V0ID0gMDsKICAgICByZXR1cm4gYWNjZXB0OwogfQpJbmRleDogV2ViS2l0
VG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0NoYW5nZUxvZwkocmV2
aXNpb24gMTc0MzQpCisrKyBXZWJLaXRUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwyNyBAQAorMjAwNi0xMC0zMCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQG55cG9w
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBo
dHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzIzCisgICAgICAgIFJFR1JF
U1NJT04gKDEwLjQuNCk6IG9uZHJhZyogZXZlbnRzIGRvbid0IGZpcmUgb24gcGFnZSBpbiBhIGZy
YW1lCisKKyAgICAgICAgV2hlbiBkcmFnZ2luZywgZG8gbm90IHNlbmQgRXZlbnRTZW5kaW5nQ29u
dHJvbGxlcidzIGV2ZW50cyBpbW1lZGlhdGVseS4gRHJhZ2dpbmcgCisgICAgICAgIGlzIHN1cHBv
c2VkIHRvIGJlIG1vZGFsLCBzbyB3ZSBuZWVkIHRvIHBlcmZvcm0gaXQgZnJvbSB3aXRoaW4gdGhl
IGRlbGVnYXRlLCB3aXRob3V0CisgICAgICAgIHJldHVybmluZyB0byBKUyB0byBtYWtlIHRoZSBu
ZXh0IG1vdXNlIG1vdmVtZW50LgorCisgICAgICAgIFdoZW4gdGhlIG1vdXNlIGlzIGRvd24sIG1v
dXNlIGV2ZW50cyBhcmUgbm93IHJlY29yZGVkLCBhbmQgZXhlY3V0ZWQgd2hlbiBtb3VzZVVwIGlz
IHNlbnQuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5tOgorICAg
ICAgICAoLVtXYWl0VW50aWxEb25lRGVsZWdhdGUgd2ViVmlldzpkcmFnSW1hZ2U6YXQ6b2Zmc2V0
OmV2ZW50OnBhc3RlYm9hcmQ6c291cmNlOnNsaWRlQmFjazpmb3JWaWV3Ol0pOgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9FdmVudFNlbmRpbmdDb250cm9sbGVyLm06CisgICAgICAgICgtW0V2ZW50U2Vu
ZGluZ0NvbnRyb2xsZXIgZGVhbGxvY10pOgorICAgICAgICAoLVtFdmVudFNlbmRpbmdDb250cm9s
bGVyIGxlYXBGb3J3YXJkOl0pOgorICAgICAgICAoLVtFdmVudFNlbmRpbmdDb250cm9sbGVyIG1v
dXNlRG93bl0pOgorICAgICAgICAoLVtFdmVudFNlbmRpbmdDb250cm9sbGVyIG1vdXNlVXBdKToK
KyAgICAgICAgKC1bRXZlbnRTZW5kaW5nQ29udHJvbGxlciBtb3VzZU1vdmVUb1g6WTpdKToKKyAg
ICAgICAgKCtbRXZlbnRTZW5kaW5nQ29udHJvbGxlciByZXBsYXlTYXZlZEV2ZW50c10pOgorCiAy
MDA2LTEwLTI5ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICAqIFNj
cmlwdHMvZG8tZmlsZS1yZW5hbWU6IFJlbmFtZXMgZG9uZSwgcmVhZHkgZm9yIHRoZSBuZXh0IHJv
dW5kLgpJbmRleDogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUubQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5t
CShyZXZpc2lvbiAxNzQyMikKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5k
ZXJUcmVlLm0JKHdvcmtpbmcgY29weSkKQEAgLTcwMSwxMiArNzAxLDkgQEAgc3RhdGljIHZvaWQg
ZHVtcCh2b2lkKQogCiAtICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKilzZW5kZXIgZHJhZ0ltYWdl
OihOU0ltYWdlICopYW5JbWFnZSBhdDooTlNQb2ludCl2aWV3TG9jYXRpb24gb2Zmc2V0OihOU1Np
emUpaW5pdGlhbE9mZnNldCBldmVudDooTlNFdmVudCAqKWV2ZW50IHBhc3RlYm9hcmQ6KE5TUGFz
dGVib2FyZCAqKXBib2FyZCBzb3VyY2U6KGlkKXNvdXJjZU9iaiBzbGlkZUJhY2s6KEJPT0wpc2xp
ZGVGbGFnIGZvclZpZXc6KE5TVmlldyAqKXZpZXcKIHsKLSAgICAvLyBBIG5ldyBkcmFnIHdhcyBz
dGFydGVkIGJlZm9yZSB0aGUgb2xkIG9uZSBlbmRlZC4gIFByb2JhYmx5IHNob3VsZG4ndCBoYXBw
ZW4uCi0gICAgaWYgKGRyYWdnaW5nSW5mbykgewotICAgICAgICBbW2RyYWdnaW5nSW5mbyBkcmFn
Z2luZ1NvdXJjZV0gZHJhZ2dlZEltYWdlOltkcmFnZ2luZ0luZm8gZHJhZ2dlZEltYWdlXSBlbmRl
ZEF0Omxhc3RNb3VzZVBvc2l0aW9uIG9wZXJhdGlvbjpOU0RyYWdPcGVyYXRpb25Ob25lXTsKLSAg
ICAgICAgW2RyYWdnaW5nSW5mbyByZWxlYXNlXTsKLSAgICB9CisgICAgYXNzZXJ0KCFkcmFnZ2lu
Z0luZm8pOwogICAgIGRyYWdnaW5nSW5mbyA9IFtbRHVtcFJlbmRlclRyZWVEcmFnZ2luZ0luZm8g
YWxsb2NdIGluaXRXaXRoSW1hZ2U6YW5JbWFnZSBvZmZzZXQ6aW5pdGlhbE9mZnNldCBwYXN0ZWJv
YXJkOnBib2FyZCBzb3VyY2U6c291cmNlT2JqXTsKKyAgICBbRXZlbnRTZW5kaW5nQ29udHJvbGxl
ciByZXBsYXlTYXZlZEV2ZW50c107CiB9CiAKIC0gKHZvaWQpd2ViVmlld0ZvY3VzOihXZWJWaWV3
ICopd2ViVmlldwpJbmRleDogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvRXZlbnRTZW5kaW5n
Q29udHJvbGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0V2
ZW50U2VuZGluZ0NvbnRyb2xsZXIuaAkocmV2aXNpb24gMTc0MjIpCisrKyBXZWJLaXRUb29scy9E
dW1wUmVuZGVyVHJlZS9FdmVudFNlbmRpbmdDb250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAg
LTM4LDYgKzM4LDggQEAKICAgICBkb3VibGUgdGltZU9mZnNldDsKIH0KIAorKyAodm9pZClyZXBs
YXlTYXZlZEV2ZW50czsKKwogLSAodm9pZCllbmFibGVET01VSUV2ZW50TG9nZ2luZzooV2ViU2Ny
aXB0T2JqZWN0ICopbm9kZTsKIAogLSAodm9pZCloYW5kbGVFdmVudDooRE9NRXZlbnQgKilldmVu
dDsKSW5kZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0V2ZW50U2VuZGluZ0NvbnRyb2xs
ZXIubQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9FdmVudFNlbmRp
bmdDb250cm9sbGVyLm0JKHJldmlzaW9uIDE3NDIyKQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5tCSh3b3JraW5nIGNvcHkpCkBAIC0yLDYgKzIs
NyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA2IEpvbmFzIFdpdHQgPGpv
bmFzLndpdHRAZ21haWwuY29tPgogICogQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcg
PHNhbS53ZWluaWdAZ21haWwuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA2IEFsZXhleSBQcm9z
a3VyeWFrb3YgPGFwQG55cG9wLmNvbT4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtNDEsNiArNDIsOCBAQCBleHRlcm4gdm9pZCBfTlNOZXdLaWxsUmluZ1NlcXVlbmNlKCk7CiAK
IE5TUG9pbnQgbGFzdE1vdXNlUG9zaXRpb247CiBOU0FycmF5ICp3ZWJraXREb21FdmVudE5hbWVz
OworTlNNdXRhYmxlQXJyYXkgKnNhdmVkTW91c2VFdmVudHM7IC8vIG1vdXNlIGV2ZW50cyBzZW50
IGJldHdlZW4gbW91c2VEb3duIGFuZCBtb3VzZVVwIGFyZSBzdG9yZWQgaGVyZSwgYW5kIHRoZW4g
ZXhlY3V0ZWQgYXQgb25jZS4KK0JPT0wgcmVwbGF5aW5nU2F2ZWRFdmVudHM7CiAKIEBpbXBsZW1l
bnRhdGlvbiBFdmVudFNlbmRpbmdDb250cm9sbGVyCiAKQEAgLTEyNiw2ICsxMjksMTUgQEAgTlNB
cnJheSAqd2Via2l0RG9tRXZlbnROYW1lczsKICAgICByZXR1cm4gbmlsOwogfQogCistICh2b2lk
KWRlYWxsb2MKK3sKKyAgICBhc3NlcnQoIWRvd24pOworICAgIGFzc2VydChbc2F2ZWRNb3VzZUV2
ZW50cyBjb3VudF0gPT0gMCk7CisgICAgW3NhdmVkTW91c2VFdmVudHMgcmVsZWFzZV07CisgICAg
c2F2ZWRNb3VzZUV2ZW50cyA9IG5pbDsKKyAgICBbc3VwZXIgZGVhbGxvY107Cit9CisKIC0gKGRv
dWJsZSljdXJyZW50RXZlbnRUaW1lCiB7CiAgICAgcmV0dXJuIEdldEN1cnJlbnRFdmVudFRpbWUo
KSArIHRpbWVPZmZzZXQ7CkBAIC0xMzMsNiArMTQ1LDE5IEBAIE5TQXJyYXkgKndlYmtpdERvbUV2
ZW50TmFtZXM7CiAKIC0gKHZvaWQpbGVhcEZvcndhcmQ6KGludCltaWxsaXNlY29uZHMKIHsKKyAg
ICBpZiAoZG93biAmJiAhcmVwbGF5aW5nU2F2ZWRFdmVudHMpIHsKKyAgICAgICAgTlNJbnZvY2F0
aW9uICppbnZvY2F0aW9uID0gW05TSW52b2NhdGlvbiBpbnZvY2F0aW9uV2l0aE1ldGhvZFNpZ25h
dHVyZTpbRXZlbnRTZW5kaW5nQ29udHJvbGxlciBpbnN0YW5jZU1ldGhvZFNpZ25hdHVyZUZvclNl
bGVjdG9yOkBzZWxlY3RvcihsZWFwRm9yd2FyZDopXV07CisgICAgICAgIFtpbnZvY2F0aW9uIHNl
dFRhcmdldDpzZWxmXTsKKyAgICAgICAgW2ludm9jYXRpb24gc2V0U2VsZWN0b3I6QHNlbGVjdG9y
KGxlYXBGb3J3YXJkOildOworICAgICAgICBbaW52b2NhdGlvbiBzZXRBcmd1bWVudDombWlsbGlz
ZWNvbmRzIGF0SW5kZXg6Ml07CisgICAgICAgIAorICAgICAgICBpZiAoIXNhdmVkTW91c2VFdmVu
dHMpCisgICAgICAgICAgICBzYXZlZE1vdXNlRXZlbnRzID0gW1tOU011dGFibGVBcnJheSBhbGxv
Y10gaW5pdF07CisgICAgICAgIFtzYXZlZE1vdXNlRXZlbnRzIGFkZE9iamVjdDppbnZvY2F0aW9u
XTsKKyAgICAgICAgCisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICB0aW1lT2Zmc2V0ICs9
IG1pbGxpc2Vjb25kcyAvIDEwMDAuMDsKIH0KIApAQCAtMTQzLDYgKzE2OCw5IEBAIE5TQXJyYXkg
KndlYmtpdERvbUV2ZW50TmFtZXM7CiAKIC0gKHZvaWQpbW91c2VEb3duCiB7CisgICAgYXNzZXJ0
KCFkb3duKTsKKyAgICBhc3NlcnQoIXJlcGxheWluZ1NhdmVkRXZlbnRzKTsKKwogICAgIFtbW2Zy
YW1lIGZyYW1lVmlld10gZG9jdW1lbnRWaWV3XSBsYXlvdXRdOwogICAgIGlmIChbc2VsZiBjdXJy
ZW50RXZlbnRUaW1lXSAtIGxhc3RDbGljayA+PSAxKQogICAgICAgICBjbGlja0NvdW50ID0gMTsK
QEAgLTE2Nyw2ICsxOTUsMjIgQEAgTlNBcnJheSAqd2Via2l0RG9tRXZlbnROYW1lczsKIAogLSAo
dm9pZCltb3VzZVVwCiB7CisgICAgYXNzZXJ0KGRvd24pOworCisgICAgaWYgKCFyZXBsYXlpbmdT
YXZlZEV2ZW50cykgeworICAgICAgICBOU0ludm9jYXRpb24gKmludm9jYXRpb24gPSBbTlNJbnZv
Y2F0aW9uIGludm9jYXRpb25XaXRoTWV0aG9kU2lnbmF0dXJlOltFdmVudFNlbmRpbmdDb250cm9s
bGVyIGluc3RhbmNlTWV0aG9kU2lnbmF0dXJlRm9yU2VsZWN0b3I6QHNlbGVjdG9yKG1vdXNlVXAp
XV07CisgICAgICAgIFtpbnZvY2F0aW9uIHNldFRhcmdldDpzZWxmXTsKKyAgICAgICAgW2ludm9j
YXRpb24gc2V0U2VsZWN0b3I6QHNlbGVjdG9yKG1vdXNlVXApXTsKKyAgICAgICAgCisgICAgICAg
IGlmICghc2F2ZWRNb3VzZUV2ZW50cykKKyAgICAgICAgICAgIHNhdmVkTW91c2VFdmVudHMgPSBb
W05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XTsKKyAgICAgICAgW3NhdmVkTW91c2VFdmVudHMg
YWRkT2JqZWN0Omludm9jYXRpb25dOworICAgICAgICAKKyAgICAgICAgW0V2ZW50U2VuZGluZ0Nv
bnRyb2xsZXIgcmVwbGF5U2F2ZWRFdmVudHNdOworICAgICAgICByZXR1cm47CisgICAgfQorCisK
ICAgICBbW1tmcmFtZSBmcmFtZVZpZXddIGRvY3VtZW50Vmlld10gbGF5b3V0XTsKICAgICBOU0V2
ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0xlZnRNb3VzZVVwIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOmxhc3RNb3Vz
ZVBvc2l0aW9uIApAQCAtMjAxLDYgKzI0NSwyMCBAQCBOU0FycmF5ICp3ZWJraXREb21FdmVudE5h
bWVzOwogCiAtICh2b2lkKW1vdXNlTW92ZVRvWDooaW50KXggWTooaW50KXkKIHsKKyAgICBpZiAo
ZG93biAmJiAhcmVwbGF5aW5nU2F2ZWRFdmVudHMpIHsKKyAgICAgICAgTlNJbnZvY2F0aW9uICpp
bnZvY2F0aW9uID0gW05TSW52b2NhdGlvbiBpbnZvY2F0aW9uV2l0aE1ldGhvZFNpZ25hdHVyZTpb
RXZlbnRTZW5kaW5nQ29udHJvbGxlciBpbnN0YW5jZU1ldGhvZFNpZ25hdHVyZUZvclNlbGVjdG9y
OkBzZWxlY3Rvcihtb3VzZU1vdmVUb1g6WTopXV07CisgICAgICAgIFtpbnZvY2F0aW9uIHNldFRh
cmdldDpzZWxmXTsKKyAgICAgICAgW2ludm9jYXRpb24gc2V0U2VsZWN0b3I6QHNlbGVjdG9yKG1v
dXNlTW92ZVRvWDpZOildOworICAgICAgICBbaW52b2NhdGlvbiBzZXRBcmd1bWVudDomeCBhdElu
ZGV4OjJdOworICAgICAgICBbaW52b2NhdGlvbiBzZXRBcmd1bWVudDomeSBhdEluZGV4OjNdOwor
ICAgICAgICAKKyAgICAgICAgaWYgKCFzYXZlZE1vdXNlRXZlbnRzKQorICAgICAgICAgICAgc2F2
ZWRNb3VzZUV2ZW50cyA9IFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdOworICAgICAgICBb
c2F2ZWRNb3VzZUV2ZW50cyBhZGRPYmplY3Q6aW52b2NhdGlvbl07CisgICAgICAgIAorICAgICAg
ICByZXR1cm47CisgICAgfQorCiAgICAgTlNWaWV3ICp2aWV3ID0gW2ZyYW1lIHdlYlZpZXddOwog
ICAgIGxhc3RNb3VzZVBvc2l0aW9uID0gW3ZpZXcgY29udmVydFBvaW50Ok5TTWFrZVBvaW50KHgs
IFt2aWV3IGZyYW1lXS5zaXplLmhlaWdodCAtIHkpIHRvVmlldzpuaWxdOwogICAgIE5TRXZlbnQg
KmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOihkb3duID8gTlNMZWZ0TW91c2VE
cmFnZ2VkIDogTlNNb3VzZU1vdmVkKSAKQEAgLTI2MSw2ICszMTksMTggQEAgTlNBcnJheSAqd2Vi
a2l0RG9tRXZlbnROYW1lczsKICAgICB9CiB9CiAKKysgKHZvaWQpcmVwbGF5U2F2ZWRFdmVudHMK
K3sKKyAgICByZXBsYXlpbmdTYXZlZEV2ZW50cyA9IFlFUzsKKyAgICB3aGlsZSAoW3NhdmVkTW91
c2VFdmVudHMgY291bnRdKSB7CisgICAgICAgIC8vIGlmIGEgZHJhZyBpcyBpbml0aWF0ZWQsIHRo
ZSByZW1haW5pbmcgc2F2ZWQgZXZlbnRzIHdpbGwgYmUgZGlzcGF0Y2hlZCBmcm9tIG91ciBkcmFn
Z2luZyBkZWxlZ2F0ZQorICAgICAgICBOU0ludm9jYXRpb24gKmludm9jYXRpb24gPSBbW1tzYXZl
ZE1vdXNlRXZlbnRzIG9iamVjdEF0SW5kZXg6MF0gcmV0YWluXSBhdXRvcmVsZWFzZV07CisgICAg
ICAgIFtzYXZlZE1vdXNlRXZlbnRzIHJlbW92ZU9iamVjdEF0SW5kZXg6MF07CisgICAgICAgIFtp
bnZvY2F0aW9uIGludm9rZV07CisgICAgfQorICAgIHJlcGxheWluZ1NhdmVkRXZlbnRzID0gTk87
Cit9CisKIC0gKHZvaWQpa2V5RG93bjooTlNTdHJpbmcgKiljaGFyYWN0ZXIgd2l0aE1vZGlmaWVy
czooV2ViU2NyaXB0T2JqZWN0ICopbW9kaWZpZXJzCiB7CiAgICAgTlNTdHJpbmcgKm1vZGlmaWVy
ID0gbmlsOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>11343</attachid>
            <date>2006-11-01 22:24:49 -0800</date>
            <delta_ts>2006-11-03 00:18:03 -0800</delta_ts>
            <desc>proposed fix</desc>
            <filename>7323r3_patch.txt</filename>
            <type>text/plain</type>
            <size>47697</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE3NTM0KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMzMgQEAKKzIwMDYtMTEtMDEgIEFsZXhleSBQcm9za3VyeWFr
b3YgIDxhcEBueXBvcC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGVzdCBmb3IgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzMyMworICAgICAgICBSRUdSRVNTSU9OICgxMC40LjQpOiBvbmRyYWcqIGV2ZW50cyBkb24n
dCBmaXJlIG9uIHBhZ2UgaW4gYSBmcmFtZQorCisgICAgICAgICogZmFzdC9ldmVudHMvZHJhZy1p
bi1mcmFtZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9kcmFn
LWluLWZyYW1lcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9yZXNvdXJjZXMv
ZHJhZy1pbi1mcmFtZXMtY29uc29sZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50
cy9yZXNvdXJjZXMvZHJhZy1pbi1mcmFtZXMtbGVmdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2V2ZW50cy9yZXNvdXJjZXMvZHJhZy1pbi1mcmFtZXMtcmlnaHQuaHRtbDogQWRkZWQuCisK
KyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9leHBhbmRpbmctc2VsZWN0aW9ucy5odG1sOgor
ICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2V4cGFuZGluZy1zZWxlY3Rpb25zMi5odG1sOgor
ICAgICAgICAqIGZhc3QvZHluYW1pYy9sYXllci1oaXQtdGVzdC1jcmFzaC5odG1sOgorICAgICAg
ICAqIGZhc3QvZXZlbnRzL2V2ZW50LXZpZXctdG9TdHJpbmcuaHRtbDoKKyAgICAgICAgKiBmYXN0
L2V2ZW50cy9yZXNvdXJjZXMvZHJhZy1vdXRzaWRlLXdpbmRvdy1mcmFtZS5odG1sOgorICAgICAg
ICAqIHN2Zy9jdXN0b20vaG92ZXItZGVmYXVsdC1maWxsLnN2ZzoKKyAgICAgICAgQWRkZWQgbWlz
c2luZyBjYWxscyB0byBtb3VzZVVwKCkuCisKKyAgICAgICAgKiBzdmcvY3VzdG9tL3N0cm9rZS13
aWR0aC1jbGljay1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3ZnL2N1c3RvbS9zdHJva2Utd2lk
dGgtY2xpY2suc3ZnOgorICAgICAgICBEb24ndCBhdHRlbXB0IHRvIGNsaWNrIG91dHNpZGUgdGhl
IHBhZ2UsIHRoaXMgd2FzIGNvbmZ1c2luZyBEUlQuCisKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVj
dGlvbi9zZWxlY3QtZnJvbS10ZXh0ZmllbGQtb3V0d2FyZHMtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGVkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdC1mcm9tLXRleHRmaWVsZC1vdXR3YXJkcy5odG1s
OgorICAgICAgICBSZW1vdmVkIGFsZXJ0cyBiZXR3ZWVuIGRyYWdnaW5nIHN0ZXBzIC0gdGhleSBh
cmUgbm93IHVzZWxlc3MsCisgICAgICAgIGFzIHRoZSBkcmFnZ2luZyBldmVudHMgYXJlIHN0b3Jl
ZCBhbmQgZXhlY3V0ZWQgYXQgb25jZS4KKwogMjAwNi0xMS0wMSAgSnVzdGluIEdhcmNpYSAgPGp1
c3Rpbi5nYXJjaWFAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IGRhcmluCkluZGV4
OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9leHBhbmRpbmctc2VsZWN0aW9uczIuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9leHBhbmRpbmct
c2VsZWN0aW9uczIuaHRtbAkocmV2aXNpb24gMTc1MzQpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5n
L3NlbGVjdGlvbi9leHBhbmRpbmctc2VsZWN0aW9uczIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MTIsNiArMTIsNyBAQCBmdW5jdGlvbiBlZGl0aW5nVGVzdCgpIHsKICAgICBldmVudFNlbmRlci5t
b3VzZURvd24oKTsKICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CiAgICAgZXZlbnRTZW5kZXIu
bW91c2VEb3duKCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwogfQogCiA8L3NjcmlwdD4K
SW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2V4cGFuZGluZy1zZWxlY3Rpb25z
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZXhwYW5k
aW5nLXNlbGVjdGlvbnMuaHRtbAkocmV2aXNpb24gMTc1MzQpCisrKyBMYXlvdXRUZXN0cy9lZGl0
aW5nL3NlbGVjdGlvbi9leHBhbmRpbmctc2VsZWN0aW9ucy5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0xMiw2ICsxMiw3IEBAIGZ1bmN0aW9uIGVkaXRpbmdUZXN0KCkgewogICAgIGV2ZW50U2VuZGVy
Lm1vdXNlRG93bigpOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKICAgICBldmVudFNlbmRl
ci5tb3VzZURvd24oKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CiB9CiAKIDwvc2NyaXB0
PgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0LWZyb20tdGV4dGZp
ZWxkLW91dHdhcmRzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0
aW5nL3NlbGVjdGlvbi9zZWxlY3QtZnJvbS10ZXh0ZmllbGQtb3V0d2FyZHMtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAxNzUzNCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NlbGVj
dC1mcm9tLXRleHRmaWVsZC1vdXR3YXJkcy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTEsMjMgKzEsMTYgQEAKLUFMRVJUOiBtaWRkbGUKIEVESVRJTkcgREVMRUdBVEU6IHNob3VsZENo
YW5nZVNlbGVjdGVkRE9NUmFuZ2U6KG51bGwpIHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAxMSBvZiAj
dGV4dCA+IERJViB0byAxMSBvZiAjdGV4dCA+IERJViBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmlu
aXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQogRURJVElORyBERUxFR0FURTogd2Vi
Vmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0
aW9uCiBFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdl
IGZyb20gMTEgb2YgI3RleHQgPiBESVYgdG8gMTEgb2YgI3RleHQgPiBESVYgdG9ET01SYW5nZTpy
YW5nZSBmcm9tIDExIG9mICN0ZXh0ID4gRElWIHRvIDEyIG9mICN0ZXh0ID4gRElWIGFmZmluaXR5
Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCiBFRElU
SU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VT
ZWxlY3Rpb25Ob3RpZmljYXRpb24KLUFMRVJUOiBsZWZ0CiBFRElUSU5HIERFTEVHQVRFOiBzaG91
bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gMTEgb2YgI3RleHQgPiBESVYgdG8g
MTIgb2YgI3RleHQgPiBESVYgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDAgb2YgI3RleHQgPiBESVYg
dG8gMTIgb2YgI3RleHQgPiBESVYgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJl
YW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFu
Z2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgotQUxFUlQ6
IHJpZ2h0CiBFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJh
bmdlIGZyb20gMCBvZiAjdGV4dCA+IERJViB0byAxMiBvZiAjdGV4dCA+IERJViB0b0RPTVJhbmdl
OnJhbmdlIGZyb20gMTEgb2YgI3RleHQgPiBESVYgdG8gMTcgb2YgI3RleHQgPiBESVYgYWZmaW5p
dHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKIEVE
SVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5n
ZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgotQUxFUlQ6IHdheSB1cAogRURJVElORyBERUxFR0FURTog
c2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9tIDExIG9mICN0ZXh0ID4gRElW
IHRvIDE3IG9mICN0ZXh0ID4gRElWIHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAwIG9mICN0ZXh0ID4g
RElWIHRvIDEyIG9mICN0ZXh0ID4gRElWIGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3du
c3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlk
Q2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KLUFM
RVJUOiB1cAogRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZTpy
YW5nZSBmcm9tIDAgb2YgI3RleHQgPiBESVYgdG8gMTIgb2YgI3RleHQgPiBESVYgdG9ET01SYW5n
ZTpyYW5nZSBmcm9tIDAgb2YgI3RleHQgPiBESVYgdG8gMTIgb2YgI3RleHQgPiBESVYgYWZmaW5p
dHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKLUFM
RVJUOiBkb3duCiBFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdl
OnJhbmdlIGZyb20gMCBvZiAjdGV4dCA+IERJViB0byAxMiBvZiAjdGV4dCA+IERJViB0b0RPTVJh
bmdlOnJhbmdlIGZyb20gMTEgb2YgI3RleHQgPiBESVYgdG8gMTcgb2YgI3RleHQgPiBESVYgYWZm
aW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UK
IEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENo
YW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgotQUxFUlQ6IHdheSBkb3duCiBFRElUSU5HIERFTEVH
QVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gMTEgb2YgI3RleHQg
PiBESVYgdG8gMTcgb2YgI3RleHQgPiBESVYgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDExIG9mICN0
ZXh0ID4gRElWIHRvIDE3IG9mICN0ZXh0ID4gRElWIGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5p
dHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCiBsYXllciBhdCAoMCwwKSBzaXplIDgw
MHg2MDAKICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKSW5kZXg6IExheW91dFRl
c3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdC1mcm9tLXRleHRmaWVsZC1vdXR3YXJkcy5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdC1mcm9t
LXRleHRmaWVsZC1vdXR3YXJkcy5odG1sCShyZXZpc2lvbiAxNzUzNCkKKysrIExheW91dFRlc3Rz
L2VkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdC1mcm9tLXRleHRmaWVsZC1vdXR3YXJkcy5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0xMCwyNCArMTAsMjUgQEAgZnVuY3Rpb24gZWRpdGluZ1Rlc3QoKSB7
CiAgICAgdmFyIG1pZGRsZVggPSBmaWVsZC5vZmZzZXRMZWZ0ICsgZmllbGQub2Zmc2V0V2lkdGgg
LyAyOwogICAgIHZhciBtaWRkbGVZID0gZmllbGQub2Zmc2V0VG9wICsgZmllbGQub2Zmc2V0SGVp
Z2h0IC8gMjsKICAgICAKLSAgICBhbGVydCgibWlkZGxlIik7CisgICAgLy8gYWxlcnQoIm1pZGRs
ZSIpOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKG1pZGRsZVgsIG1pZGRsZVkpOwogICAg
IGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOwogICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3YXJkKDEw
MDApOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKICAgICBldmVudFNlbmRlci5tb3VzZURv
d24oKTsKLSAgICBhbGVydCgibGVmdCIpOworICAgIC8vIGFsZXJ0KCJsZWZ0Iik7CiAgICAgZXZl
bnRTZW5kZXIubW91c2VNb3ZlVG8oMCwgbWlkZGxlWSk7Ci0gICAgYWxlcnQoInJpZ2h0Iik7Cisg
ICAgLy8gYWxlcnQoInJpZ2h0Iik7CiAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oZG9jdW1l
bnQuYm9keS5vZmZzZXRXaWR0aCwgbWlkZGxlWSk7Ci0gICAgYWxlcnQoIndheSB1cCIpOworICAg
IC8vIGFsZXJ0KCJ3YXkgdXAiKTsKICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhtaWRkbGVY
LCBtaWRkbGVZIC0gMiAqIGZpZWxkLm9mZnNldEhlaWdodCk7Ci0gICAgYWxlcnQoInVwIik7Cisg
ICAgLy8gYWxlcnQoInVwIik7CiAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8obWlkZGxlWCwg
bWlkZGxlWSAtIGZpZWxkLm9mZnNldEhlaWdodCk7Ci0gICAgYWxlcnQoImRvd24iKTsKKyAgICAv
LyBhbGVydCgiZG93biIpOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKG1pZGRsZVgsIG1p
ZGRsZVkgKyBmaWVsZC5vZmZzZXRIZWlnaHQpOwotICAgIGFsZXJ0KCJ3YXkgZG93biIpOworICAg
IC8vIGFsZXJ0KCJ3YXkgZG93biIpOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKG1pZGRs
ZVgsIG1pZGRsZVkgKyAyICogZmllbGQub2Zmc2V0SGVpZ2h0KTsKKyAgICBldmVudFNlbmRlci5t
b3VzZVVwKCk7CiB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
ZHluYW1pYy9sYXllci1oaXQtdGVzdC1jcmFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvZHluYW1pYy9sYXllci1oaXQtdGVzdC1jcmFzaC5odG1sCShyZXZpc2lvbiAxNzUz
NCkKKysrIExheW91dFRlc3RzL2Zhc3QvZHluYW1pYy9sYXllci1oaXQtdGVzdC1jcmFzaC5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw4IEBAIGZ1bmN0aW9uIG1vdmVNb3VzZSgpCiAK
IGZ1bmN0aW9uIGZpbmlzaCgpCiB7CisgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikKKyAgICAg
ICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwogICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCiAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKIH0KSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2RyYWctaW4tZnJhbWVzLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9kcmFnLWluLWZyYW1lcy1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9kcmFnLWlu
LWZyYW1lcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTggQEAKK0V2ZW50
IGxvZworCitvbmRyYWdzdGFydCBzcmMKK29uZHJhZyBzcmMKK29uZHJhZ2VudGVyIGxlZnQgdGFy
Z2V0CitvbmRyYWcgc3JjCitvbmRyYWdvdmVyIGxlZnQgdGFyZ2V0CitvbmRyYWcgc3JjCitvbmRy
YWdlbnRlciByaWdodCB0YXJnZXQKK29uZHJhZ2xlYXZlIGxlZnQgdGFyZ2V0CitvbmRyYWcgc3Jj
CitvbmRyYWdvdmVyIHJpZ2h0IHRhcmdldAorb25kcmFnb3ZlciByaWdodCB0YXJnZXQKK29uZHJv
cCByaWdodCB0YXJnZXQKK29uZHJhZ2VuZCBzcmMKK1RoZXNlIHJlc3VsdHMgYXJlIGp1c3QgInNl
bnNpYmxlIiBhdCB0aGUgbW9tZW50LCBtZWFuaW5nIHRoYXQgYWxsIHRoZSBldmVudHMgZmlyZSBv
biB0aGUgcmlnaHQgZWxlbWVudHMsIG5vdGhpbmcgbW9yZS4gVGhlIG9yZGVyIGluIHBhcnRpY3Vs
YXIgY2FuIHJpZ2h0ZnVsbHkgY2hhbmdlLgorCisKClByb3BlcnR5IGNoYW5nZXMgb246IExheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL2RyYWctaW4tZnJhbWVzLWV4cGVjdGVkLnR4dApfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
Ck5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyB0ZXh0L3BsYWluCk5hbWU6IHN2bjplb2wtc3R5bGUK
ICAgKyBuYXRpdmUKCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9kcmFnLWluLWZyYW1l
cy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2RyYWctaW4tZnJh
bWVzLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9kcmFnLWlu
LWZyYW1lcy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDcxIEBACis8aGVhZD4KKzxzY3Jp
cHQ+CitmdW5jdGlvbiBsb2cobWVzc2FnZSkgeworICAgIGNvbnNvbGVfZG9jID0gZnJhbWVzWzJd
LmRvY3VtZW50OworICAgIHZhciBpdGVtID0gY29uc29sZV9kb2MuY3JlYXRlRWxlbWVudCgibGki
KTsKKyAgICBpdGVtLmFwcGVuZENoaWxkKGNvbnNvbGVfZG9jLmNyZWF0ZVRleHROb2RlKG1lc3Nh
Z2UpKTsKKyAgICBjb25zb2xlX2RvYy5nZXRFbGVtZW50QnlJZCgnY29uc29sZV9tZXNzYWdlcycp
LmFwcGVuZENoaWxkKGl0ZW0pOworfQorCitmdW5jdGlvbiB0ZXN0KCkgeworICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25l
KCk7CisKKyAgICAgICAgLy8gRmluZCB0aGUgZWxlbWVudCB0byBkcmFnCisgICAgICAgIGVsZW1l
bnRUb0RyYWcgPSBmcmFtZXNbMF0uZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVsZW1lbnRUb0Ry
YWciKTsKKyAgICAgICAgeDEgPSBlbGVtZW50VG9EcmFnLm9mZnNldExlZnQgKyBlbGVtZW50VG9E
cmFnLm9mZnNldFdpZHRoIC8gMjsKKyAgICAgICAgeTEgPSBlbGVtZW50VG9EcmFnLm9mZnNldFRv
cCArIGVsZW1lbnRUb0RyYWcub2Zmc2V0SGVpZ2h0IC8gMjsKKworICAgICAgICAvLyBEcmFnIHRv
IHRoZSBtaWRkbGUgb2YgdGhlIGRlc3RpbmF0aW9uIGVsZW1lbnQgaW4gdGhlIHNhbWUgZnJhbWUK
KyAgICAgICAgZHJhZ1RhcmdldCA9IGZyYW1lc1swXS5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
ZHJhZ1RhcmdldCIpOworICAgICAgICB4MiA9IGRyYWdUYXJnZXQub2Zmc2V0TGVmdCArIGRyYWdU
YXJnZXQub2Zmc2V0V2lkdGggLyAyOworICAgICAgICB5MiA9IGRyYWdUYXJnZXQub2Zmc2V0VG9w
ICsgZHJhZ1RhcmdldC5vZmZzZXRIZWlnaHQgLyAyOworCisgICAgICAgIGV2ZW50U2VuZGVyLm1v
dXNlTW92ZVRvKHgxLHkxKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAg
ICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgyLCB5Mik7CisgICAgICAgIGV2ZW50U2VuZGVy
Lm1vdXNlTW92ZVRvKHgyLCB5MisxKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8o
eDIsIHkyKzIpOworCisgICAgICAgIC8vIERyYWcgdG8gdGhlIG1pZGRsZSBvZiB0aGUgZGVzdGlu
YXRpb24gZWxlbWVudCBpbiBhbm90aGVyIGZyYW1lCisgICAgICAgIGRyYWdUYXJnZXQyID0gZnJh
bWVzWzFdLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkcmFnVGFyZ2V0MiIpOworICAgICAgICB4
MyA9IDE1MCArIGRyYWdUYXJnZXQyLm9mZnNldExlZnQgKyBkcmFnVGFyZ2V0Mi5vZmZzZXRXaWR0
aCAvIDI7CisgICAgICAgIHkzID0gZHJhZ1RhcmdldDIub2Zmc2V0VG9wICsgZHJhZ1RhcmdldDIu
b2Zmc2V0SGVpZ2h0IC8gMjsKKworICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4Mywg
eTMpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4MywgeTMrMSk7CisgICAgICAg
IGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKworICAgICAgICBkb2N1bWVudC53cml0ZSgiPGJvZHk+
IiArIAorICAgICAgICAgICAgZnJhbWVzWzJdLmRvY3VtZW50LmJvZHkuaW5uZXJIVE1MICsgCisg
ICAgICAgICAgICAiPHA+VGhlc2UgcmVzdWx0cyBhcmUganVzdCBcInNlbnNpYmxlXCIgYXQgdGhl
IG1vbWVudCwgbWVhbmluZyB0aGF0ICIgKworICAgICAgICAgICAgImFsbCB0aGUgZXZlbnRzIGZp
cmUgb24gdGhlIHJpZ2h0IGVsZW1lbnRzLCBub3RoaW5nIG1vcmUuIFRoZSBvcmRlciBpbiBwYXJ0
aWN1bGFyICIrCisgICAgICAgICAgICAiY2FuIHJpZ2h0ZnVsbHkgY2hhbmdlLjwvcD4iICsKKyAg
ICAgICAgICAgICI8c2NyIiArICJpcHQ+bGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgp
Ozwvc2NyIiArICJpcHQ+IiArIAorICAgICAgICAgICAgIjwvYm9keT4iKTsKKyAgICB9Cit9Cis8
L3NjcmlwdD4KKzwvaGVhZD4KKzwhLS0gZnJhbWVzIC0tPgorPGZyYW1lc2V0ICBjb2xzPSIxNTAs
MTUwLCoiIGJvcmRlcj0iMCIgb25sb2FkPSJ0ZXN0KCk7Ij4KKworICAgIDxmcmFtZSBuYW1lPSJs
ZWZ0IiBzcmM9InJlc291cmNlcy9kcmFnLWluLWZyYW1lcy1sZWZ0Lmh0bWwiIG1hcmdpbndpZHRo
PSIxMCIgbWFyZ2luaGVpZ2h0PSIxMCIgc2Nyb2xsaW5nPSJhdXRvIiBmcmFtZWJvcmRlcj0iMCIK
KyAgICAgICAgICAgICAgICAgb25kcmFnPSJhbGVydCgnb25kcmFnIGxlZnQgZnJhbWUnKSIKKyAg
ICAgICAgICAgICAgICAgb25kcm9wPSJhbGVydCgnb25kcm9wIGxlZnQgZnJhbWUnKSIKKyAgICAg
ICAgICAgICAgICAgb25kcmFnc3RhcnQ9ImFsZXJ0KCdvbmRyYWdzdGFydCBsZWZ0IGZyYW1lJyki
CisgICAgICAgICAgICAgICAgIG9uZHJhZ2VuZD0iYWxlcnQoJ29uZHJhZ2VuZCBsZWZ0IGZyYW1l
JykiCisgICAgICAgICAgICAgICAgIG9uZHJhZ2VudGVyPSJsb2coJ29uZHJhZ2VudGVyIGxlZnQg
ZnJhbWUnKSIKKyAgICAgICAgICAgICAgICAgb25kcmFnb3Zlcj0ibG9nKCdvbmRyYWdvdmVyIGxl
ZnQgZnJhbWUnKSIKKyAgICAgICAgICAgICAgICAgb25kcmFnbGVhdmU9ImxvZygnb25kcmFnbGVh
dmUgbGVmdCBmcmFtZScpIj4KKyAgICA8ZnJhbWUgbmFtZT0icmlnaHQiIHNyYz0icmVzb3VyY2Vz
L2RyYWctaW4tZnJhbWVzLXJpZ2h0Lmh0bWwiIG1hcmdpbndpZHRoPSIxMCIgbWFyZ2luaGVpZ2h0
PSIxMCIgc2Nyb2xsaW5nPSJhdXRvIiBmcmFtZWJvcmRlcj0iMCIKKyAgICAgICAgICAgICAgICAg
b25kcmFnPSJhbGVydCgnb25kcmFnIHJpZ2h0IGZyYW1lJykiCisgICAgICAgICAgICAgICAgIG9u
ZHJvcD0iYWxlcnQoJ29uZHJvcCByaWdodCBmcmFtZScpIgorICAgICAgICAgICAgICAgICBvbmRy
YWdzdGFydD0iYWxlcnQoJ29uZHJhZ3N0YXJ0IHJpZ2h0IGZyYW1lJykiCisgICAgICAgICAgICAg
ICAgIG9uZHJhZ2VuZD0iYWxlcnQoJ29uZHJhZ2VuZCByaWdodCBmcmFtZScpIgorICAgICAgICAg
ICAgICAgICBvbmRyYWdlbnRlcj0ibG9nKCdvbmRyYWdlbnRlciByaWdodCBmcmFtZScpIgorICAg
ICAgICAgICAgICAgICBvbmRyYWdvdmVyPSJsb2coJ29uZHJhZ292ZXIgcmlnaHQgZnJhbWUnKSIK
KyAgICAgICAgICAgICAgICAgb25kcmFnbGVhdmU9ImxvZygnb25kcmFnbGVhdmUgcmlnaHQgZnJh
bWUnKSI+CisgICAgPGZyYW1lIG5hbWU9ImNvbnNvbGUiIHNyYz0icmVzb3VyY2VzL2RyYWctaW4t
ZnJhbWVzLWNvbnNvbGUuaHRtbCIgIG1hcmdpbndpZHRoPSIxMCIgbWFyZ2luaGVpZ2h0PSIxMCIg
c2Nyb2xsaW5nPSJhdXRvIiBmcmFtZWJvcmRlcj0iMCI+Cis8L2ZyYW1lc2V0PgoKUHJvcGVydHkg
Y2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZHJhZy1pbi1mcmFtZXMuaHRtbApf
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyB0ZXh0L2h0bWwKCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9ldmVudC12aWV3LXRvU3RyaW5nLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZXZlbnQtdmlldy10b1N0cmluZy5odG1sCShyZXZp
c2lvbiAxNzUzNCkKKysrIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2V2ZW50LXZpZXctdG9TdHJp
bmcuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogCQlpZiAod2luZG93LmV2
ZW50U2VuZGVyKSB7CiAJCQlldmVudFNlbmRlci5tb3VzZU1vdmVUbyg1MCwgNTApOwogCQkJZXZl
bnRTZW5kZXIubW91c2VEb3duKCk7CisJCQlldmVudFNlbmRlci5tb3VzZVVwKCk7CiAJCX0gZWxz
ZSB7CiAJCQlyZXN1bHRzRGl2LmlubmVySFRNTCArPSAiTWFudWFsIHRlc3QgbW9kZS48YnIvPiI7
CiAJCX0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Jlc291cmNlcy9kcmFnLWluLWZy
YW1lcy1jb25zb2xlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
cmVzb3VyY2VzL2RyYWctaW4tZnJhbWVzLWNvbnNvbGUuaHRtbAkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Jlc291cmNlcy9kcmFnLWluLWZyYW1lcy1jb25zb2xlLmh0
bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNCBAQAorPGJvZHk+Cis8aDQ+RXZlbnQgbG9nPC9o
ND4KKzx1bCBpZD0nY29uc29sZV9tZXNzYWdlcycgc3R5bGU9J2ZvbnQtc2l6ZTo4cHgnPjwvdWw+
Cis8L2JvZHk+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9y
ZXNvdXJjZXMvZHJhZy1pbi1mcmFtZXMtY29uc29sZS5odG1sCl9fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3Zu
Om1pbWUtdHlwZQogICArIHRleHQvaHRtbAoKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3Jlc291cmNlcy9kcmFnLWluLWZyYW1lcy1sZWZ0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvcmVzb3VyY2VzL2RyYWctaW4tZnJhbWVzLWxlZnQuaHRtbAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Jlc291cmNlcy9kcmFnLWluLWZy
YW1lcy1sZWZ0Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDkgQEAKKzxodG1sPgorPGhl
YWQ+CisgICAgPHRpdGxlPkxlZnQ8L3RpdGxlPgorPC9oZWFkPgorCis8Ym9keSBzdHlsZT0ibWFy
Z2luOjA7IHBhZGRpbmc6MCI+CisKKzxzY3JpcHQ+CitmdW5jdGlvbiBsb2cobWVzc2FnZSkgewor
ICAgIGNvbnNvbGVfZG9jID0gcGFyZW50LmZyYW1lc1syXS5kb2N1bWVudDsKKyAgICB2YXIgaXRl
bSA9IGNvbnNvbGVfZG9jLmNyZWF0ZUVsZW1lbnQoImxpIik7CisgICAgaXRlbS5hcHBlbmRDaGls
ZChjb25zb2xlX2RvYy5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlKSk7CisgICAgY29uc29sZV9kb2Mu
Z2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGVfbWVzc2FnZXMnKS5hcHBlbmRDaGlsZChpdGVtKTsKK30K
Kzwvc2NyaXB0PgorCis8ZGl2IHN0eWxlPSJ3aWR0aDoxNTA7IGhlaWdodDo3NTsgdGV4dC1hbGln
bjpjZW50ZXI7Ij4KKyAgPGEgaWQ9ImVsZW1lbnRUb0RyYWciCisgICAgIGhyZWY9IiMiCisgICAg
IHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmU7IHRvcDogNTAiCisgICAgIG9uZHJhZz0ibG9nKCdv
bmRyYWcgc3JjJykiCisgICAgIG9uZHJhZ3N0YXJ0PSJsb2coJ29uZHJhZ3N0YXJ0IHNyYycpIgor
ICAgICBvbmRyYWdlbmQ9ImxvZygnb25kcmFnZW5kIHNyYycpIgorICAgICBvbmRyYWdlbnRlcj0i
bG9nKCdvbmRyYWdlbnRlciBzcmMnKSIKKyAgICAgb25kcmFnb3Zlcj0ibG9nKCdvbmRyYWdvdmVy
IHNyYycpIgorICAgICBvbmRyYWdsZWF2ZT0ibG9nKCdvbmRyYWdsZWF2ZSBzcmMnKSIKKyAgICAg
b25kcm9wPSJsb2coJ29uZHJvcCBzcmMnKSI+CisgIERyYWcgbWUKKyAgPC9hPgorPC9kaXY+CisK
KzxkaXYgaWQ9ImRyYWdUYXJnZXQiCisgICAgIHN0eWxlPSJ3aWR0aDoxNTA7IGhlaWdodDoxNTA7
IGJhY2tncm91bmQtY29sb3I6bGlnaHRncmVlbjsgdGV4dC1hbGlnbjpjZW50ZXI7IgorICAgICBv
bmRyYWc9ImFsZXJ0KCdvbmRyYWcgbGVmdCB0YXJnZXQnKSIKKyAgICAgb25kcmFnc3RhcnQ9ImFs
ZXJ0KCdvbmRyYWdzdGFydCBsZWZ0IHRhcmdldCcpIgorICAgICBvbmRyYWdlbmQ9ImFsZXJ0KCdv
bmRyYWdlbmQgbGVmdCB0YXJnZXQnKSIKKyAgICAgb25kcmFnZW50ZXI9ImxvZygnb25kcmFnZW50
ZXIgbGVmdCB0YXJnZXQnKTsgcmV0dXJuIGZhbHNlOyIKKyAgICAgb25kcmFnb3Zlcj0ibG9nKCdv
bmRyYWdvdmVyIGxlZnQgdGFyZ2V0Jyk7IHJldHVybiBmYWxzZTsiCisgICAgIG9uZHJhZ2xlYXZl
PSJsb2coJ29uZHJhZ2xlYXZlIGxlZnQgdGFyZ2V0JykiCisgICAgIG9uZHJvcD0ibG9nKCdvbmRy
b3AgbGVmdCB0YXJnZXQnKSI+CisgIDxzcGFuIHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmU7IHRv
cDogNTAiPkhlcmU8L3NwYW4+Cis8L2Rpdj4KKworPHA+PGEgaHJlZj0iaHR0cDovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMyMyIgdGFyZ2V0PSJfdG9wIj5CdWcgNzMyMzwvYT46
IAorUkVHUkVTU0lPTiAoMTAuNC40KTogb25kcmFnKiBldmVudHMgZG9uJ3QgZmlyZSBvbiBwYWdl
IGluIGEgZnJhbWU8L3A+Cis8cD5UaGlzIHRlc3Qgd29ya3Mgb25seSBpbiBhdXRvbWF0aWMgbW9k
ZSwgYnV0IHlvdSBjYW4gYWxzbyB0cnkgZHJhZ2dpbmcgbWFudWFsbHkgdG8gY29tcGFyZSB0aGUg
cmVzdWx0cyB3aXRoIG90aGVyIGJyb3dzZXJzLjwvcD4KKworPC9ib2R5PgorPC9odG1sPgoKUHJv
cGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVzb3VyY2VzL2RyYWct
aW4tZnJhbWVzLWxlZnQuaHRtbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyB0
ZXh0L2h0bWwKCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZXNvdXJjZXMvZHJhZy1p
bi1mcmFtZXMtcmlnaHQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9yZXNvdXJjZXMvZHJhZy1pbi1mcmFtZXMtcmlnaHQuaHRtbAkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Jlc291cmNlcy9kcmFnLWluLWZyYW1lcy1yaWdodC5odG1s
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMxIEBACis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRs
ZT5SaWdodDwvdGl0bGU+Cis8L2hlYWQ+CisKKzxib2R5IHN0eWxlPSJtYXJnaW46MDsgcGFkZGlu
ZzowIj4KKworPHNjcmlwdD4KK2Z1bmN0aW9uIGxvZyhtZXNzYWdlKSB7CisgICAgY29uc29sZV9k
b2MgPSBwYXJlbnQuZnJhbWVzWzJdLmRvY3VtZW50OworICAgIHZhciBpdGVtID0gY29uc29sZV9k
b2MuY3JlYXRlRWxlbWVudCgibGkiKTsKKyAgICBpdGVtLmFwcGVuZENoaWxkKGNvbnNvbGVfZG9j
LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UpKTsKKyAgICBjb25zb2xlX2RvYy5nZXRFbGVtZW50QnlJ
ZCgnY29uc29sZV9tZXNzYWdlcycpLmFwcGVuZENoaWxkKGl0ZW0pOworfQorPC9zY3JpcHQ+CisK
KzxkaXYgc3R5bGU9ImhlaWdodDo3NXB4Ij48L2Rpdj4KKworPGRpdiBpZD0iZHJhZ1RhcmdldDIi
CisgICAgIHN0eWxlPSJ3aWR0aDoxNTA7IGhlaWdodDoxNTA7IGJhY2tncm91bmQtY29sb3I6bGln
aHRibHVlOyB0ZXh0LWFsaWduOmNlbnRlcjsiCisgICAgIG9uZHJhZz0iYWxlcnQoJ29uZHJhZyBy
aWdodCB0YXJnZXQnKSIKKyAgICAgb25kcmFnc3RhcnQ9ImFsZXJ0KCdvbmRyYWdzdGFydCByaWdo
dCB0YXJnZXQnKSIKKyAgICAgb25kcmFnZW5kPSJhbGVydCgnb25kcmFnZW5kIHJpZ2h0IHRhcmdl
dCcpIgorICAgICBvbmRyYWdlbnRlcj0ibG9nKCdvbmRyYWdlbnRlciByaWdodCB0YXJnZXQnKTsg
cmV0dXJuIGZhbHNlOyIKKyAgICAgb25kcmFnb3Zlcj0ibG9nKCdvbmRyYWdvdmVyIHJpZ2h0IHRh
cmdldCcpOyByZXR1cm4gZmFsc2U7IgorICAgICBvbmRyYWdsZWF2ZT0ibG9nKCdvbmRyYWdsZWF2
ZSByaWdodCB0YXJnZXQnKSIKKyAgICAgb25kcm9wPSJsb2coJ29uZHJvcCByaWdodCB0YXJnZXQn
KSI+CisgIDxzcGFuIHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmU7IHRvcDogNTAiPkFuZCBoZXJl
PC9zcGFuPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBM
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZXNvdXJjZXMvZHJhZy1pbi1mcmFtZXMtcmlnaHQuaHRt
bApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyB0ZXh0L2h0bWwKCkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZXNvdXJjZXMvZHJhZy1vdXRzaWRlLXdpbmRvdy1mcmFt
ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Jlc291cmNlcy9k
cmFnLW91dHNpZGUtd2luZG93LWZyYW1lLmh0bWwJKHJldmlzaW9uIDE3NTM0KQorKysgTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvcmVzb3VyY2VzL2RyYWctb3V0c2lkZS13aW5kb3ctZnJhbWUuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMTgsNiArMTgsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICBl
dmVudFNlbmRlci5tb3VzZU1vdmVUbygxNTAsIDEwMCk7CiAgICAgZXZlbnRTZW5kZXIubW91c2VE
b3duKCk7CiAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oNTAsIDEwMCk7CisgICAgZXZlbnRT
ZW5kZXIubW91c2VVcCgpOwogICAgIGFsZXJ0KCJUZXN0IHJlc3VsdDogIiArIHJlc3VsdCk7CiB9
CiA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9jdXN0b20vaG92ZXItZGVmYXVsdC1m
aWxsLnN2Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2hvdmVyLWRlZmF1
bHQtZmlsbC5zdmcJKHJldmlzaW9uIDE3NTM0KQorKysgTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9o
b3Zlci1kZWZhdWx0LWZpbGwuc3ZnCSh3b3JraW5nIGNvcHkpCkBAIC04LDYgKzgsNyBAQAogICBp
ZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CiAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oNTAs
IDUwKTsKICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICBldmVudFNlbmRlci5tb3Vz
ZVVwKCk7CiAgIH0KIF1dPgogPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvY3VzdG9t
L3N0cm9rZS13aWR0aC1jbGljay1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvc3ZnL2N1c3RvbS9zdHJva2Utd2lkdGgtY2xpY2stZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAx
NzUzNCkKKysrIExheW91dFRlc3RzL3N2Zy9jdXN0b20vc3Ryb2tlLXdpZHRoLWNsaWNrLWV4cGVj
dGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNzIsNyArNzIsNyBAQCBFRElUSU5HIERFTEVHQVRF
OiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0CiAgIAogICAgIAogICAgICAgCi0gICAgICBTVUNDRVNT
OiBjbGljayBhdCAxMCwgMTAgd2FzIGNvcnJlY3RseSBpZ25vcmVkU1VDQ0VTUzogY2xpY2sgcmVj
ZWl2ZWQgYXQ6IDMwLCAxMDBTVUNDRVNTOiBjbGljayBhdCAyOSwgMTAwIHdhcyBjb3JyZWN0bHkg
aWdub3JlZFNVQ0NFU1M6IGNsaWNrIHJlY2VpdmVkIGF0OiAzMCwgNTBTVUNDRVNTOiBjbGljayBh
dCAzMCwgNDkgd2FzIGNvcnJlY3RseSBpZ25vcmVkU1VDQ0VTUzogY2xpY2sgcmVjZWl2ZWQgYXQ6
IDMwLCAxNTBTVUNDRVNTOiBjbGljayBhdCAzMCwgMTUxIHdhcyBjb3JyZWN0bHkgaWdub3JlZFNV
Q0NFU1M6IGNsaWNrIHJlY2VpdmVkIGF0OiAzMDAsIDEwMFNVQ0NFU1M6IGNsaWNrIGF0IDMwMSwg
MTAwIHdhcyBjb3JyZWN0bHkgaWdub3JlZFNVQ0NFU1M6IGNsaWNrIHJlY2VpdmVkIGF0OiAzMDAs
IDUwU1VDQ0VTUzogY2xpY2sgYXQgMzAwLCA0OSB3YXMgY29ycmVjdGx5IGlnbm9yZWRTVUNDRVNT
OiBjbGljayByZWNlaXZlZCBhdDogMzAwLCAxNTBTVUNDRVNTOiBjbGljayBhdCAzMDAsIDE1MSB3
YXMgY29ycmVjdGx5IGlnbm9yZWRTVUNDRVNTOiBjbGljayBhdCAxMDAwLCAxMDAwIHdhcyBjb3Jy
ZWN0bHkgaWdub3JlZAorICAgICAgU1VDQ0VTUzogY2xpY2sgYXQgMTAsIDEwIHdhcyBjb3JyZWN0
bHkgaWdub3JlZFNVQ0NFU1M6IGNsaWNrIHJlY2VpdmVkIGF0OiAzMCwgMTAwU1VDQ0VTUzogY2xp
Y2sgYXQgMjksIDEwMCB3YXMgY29ycmVjdGx5IGlnbm9yZWRTVUNDRVNTOiBjbGljayByZWNlaXZl
ZCBhdDogMzAsIDUwU1VDQ0VTUzogY2xpY2sgYXQgMzAsIDQ5IHdhcyBjb3JyZWN0bHkgaWdub3Jl
ZFNVQ0NFU1M6IGNsaWNrIHJlY2VpdmVkIGF0OiAzMCwgMTUwU1VDQ0VTUzogY2xpY2sgYXQgMzAs
IDE1MSB3YXMgY29ycmVjdGx5IGlnbm9yZWRTVUNDRVNTOiBjbGljayByZWNlaXZlZCBhdDogMzAw
LCAxMDBTVUNDRVNTOiBjbGljayBhdCAzMDEsIDEwMCB3YXMgY29ycmVjdGx5IGlnbm9yZWRTVUND
RVNTOiBjbGljayByZWNlaXZlZCBhdDogMzAwLCA1MFNVQ0NFU1M6IGNsaWNrIGF0IDMwMCwgNDkg
d2FzIGNvcnJlY3RseSBpZ25vcmVkU1VDQ0VTUzogY2xpY2sgcmVjZWl2ZWQgYXQ6IDMwMCwgMTUw
U1VDQ0VTUzogY2xpY2sgYXQgMzAwLCAxNTEgd2FzIGNvcnJlY3RseSBpZ25vcmVkCiAgICAgCiAg
IAogICAKQEAgLTk3LDcgKzk3LDYgQEAgRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5n
ZVNlbGVjdAogICAgICAgdGVzdENsaWNrKDMwMCwgNDksIGZhbHNlKTsKICAgICAgIHRlc3RDbGlj
aygzMDAsIDE1MCwgdHJ1ZSk7CiAgICAgICB0ZXN0Q2xpY2soMzAwLCAxNTEsIGZhbHNlKTsKLSAg
ICAgIHRlc3RDbGljaygxMDAwLCAxMDAwLCBmYWxzZSk7CiAgICAgfSBlbHNlIHsKICAgICAgIGxv
ZygiRVJST1I6IHdpbmRvdy5ldmVudFNlbmRlciBub3QgZm91bmQhICBUaGlzIHRlc3QgbXVzdCBi
ZSBydW4gdXNpbmcgRHVtcFJlbmRlclRyZWUuICBNb3VzaW5nIG92ZXIgdGhlIHllbGxvdyBhcmVh
IHdpbGwgbG9nIGhvd2V2ZXIuIik7CiAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2N1c3Rv
bS9zdHJva2Utd2lkdGgtY2xpY2suc3ZnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9j
dXN0b20vc3Ryb2tlLXdpZHRoLWNsaWNrLnN2ZwkocmV2aXNpb24gMTc1MzQpCisrKyBMYXlvdXRU
ZXN0cy9zdmcvY3VzdG9tL3N0cm9rZS13aWR0aC1jbGljay5zdmcJKHdvcmtpbmcgY29weSkKQEAg
LTcyLDcgKzcyLDYgQEAKICAgICAgIHRlc3RDbGljaygzMDAsIDQ5LCBmYWxzZSk7CiAgICAgICB0
ZXN0Q2xpY2soMzAwLCAxNTAsIHRydWUpOwogICAgICAgdGVzdENsaWNrKDMwMCwgMTUxLCBmYWxz
ZSk7Ci0gICAgICB0ZXN0Q2xpY2soMTAwMCwgMTAwMCwgZmFsc2UpOwogICAgIH0gZWxzZSB7CiAg
ICAgICBsb2coIkVSUk9SOiB3aW5kb3cuZXZlbnRTZW5kZXIgbm90IGZvdW5kISAgVGhpcyB0ZXN0
IG11c3QgYmUgcnVuIHVzaW5nIER1bXBSZW5kZXJUcmVlLiAgTW91c2luZyBvdmVyIHRoZSB5ZWxs
b3cgYXJlYSB3aWxsIGxvZyBob3dldmVyLiIpOwogICAgIH0KSW5kZXg6IFdlYkNvcmUvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNzUzNCkKKysr
IFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzUgQEAKKzIwMDYt
MTEtMDEgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBueXBvcC5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NzMyMworICAgICAgICBSRUdSRVNTSU9OICgxMC40LjQpOiBvbmRy
YWcqIGV2ZW50cyBkb24ndCBmaXJlIG9uIHBhZ2UgaW4gYSBmcmFtZQorCisgICAgICAgICogYnJp
ZGdlL21hYy9GcmFtZU1hYy5oOiBNb3ZlZCBkcmFnIHNvdXJjZSBpbmZvcm1hdGlvbiB0byBhIHN0
YXRpYyB2YXJpYWJsZQorICAgICAgICBpbiBGcmFtZU1hYy5tbS4gVGhlcmUgY2FuIGJlIG9ubHkg
b25lIGRyYWcgYWN0aXZlIGF0IGFueSBtb21lbnQsIGFuZCBoYXZpbmcgCisgICAgICAgIHRoaXMg
aW5mb3JtYXRpb24gaGVyZSB3YXMgbWFraW5nIHNoYXJpbmcgdGhpcyBpbmZvcm1hdGlvbiBiZXR3
ZWVuIAorICAgICAgICBzdWJmcmFtZXMgaGFyZC4KKworICAgICAgICAqIGJyaWRnZS9tYWMvRnJh
bWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpGcmFtZU1hYzo6RnJhbWVNYWMpOiBJbml0aWFs
aXplIHNoYXJlZERyYWdJbmZvLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVNYWM6OmZyZWVDbGlw
Ym9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVNYWM6OmRyYWdIeXN0ZXJlc2lzRXhjZWVk
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVNYWM6OmhhbmRsZU1vdXNlTW92ZUV2ZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTWFjOjpoYW5kbGVNb3VzZVJlbGVhc2VFdmVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZU1hYzo6bW91c2VEb3duKToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lTWFjOjpkcmFnU291cmNlTW92ZWRUbyk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZU1h
Yzo6ZHJhZ1NvdXJjZUVuZGVkQXQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVNYWM6OmRpc3Bh
dGNoRHJhZ1NyY0V2ZW50KToKKyAgICAgICAgQWNjZXNzIGRyYWcgc291cmNlIGluZm8gdmlhIHNo
YXJlZERyYWdJbmZvIC0gdGhpcyBmaXhlcyBkcmFnIHNvdXJjZSBldmVuIGRpc3BhdGNoaW5nLgor
ICAgICAgICBBbHNvIHJlbW92ZWQgc29tZSBvbGQgY29kZSB0aGF0IHdhcyBmb3J3YXJkaW5nIG1v
dXNlIGV2ZW50cyB0byBzdWJ2aWV3cyB0byBtYWtlIAorICAgICAgICBIVE1MIGVkaXRpbmcgd29y
ayBpbiBzdWJmcmFtZXMuCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZVZpZXc6OnVwZGF0ZURyYWdBbmREcm9wKToKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lVmlldzo6Y2FuY2VsRHJhZ0FuZERyb3ApOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVWaWV3OjpwZXJmb3JtRHJhZ0FuZERyb3ApOgorICAgICAgICBGb3J3YXJkIGV2ZW50cyB0byBz
dWJmcmFtZXMgZm9yIGRpc3BhdGNoaW5nIC0gdGhpcyBmaXhlcyBkcmFnIHRhcmdldCBldmVudHMu
CisKIDIwMDYtMTEtMDEgIEp1c3RpbiBHYXJjaWEgIDxqdXN0aW4uZ2FyY2lhQGFwcGxlLmNvbT4K
IAogICAgICAgICBSZXZpZXdlZCBieSBkYXJpbgpJbmRleDogV2ViQ29yZS9icmlkZ2UvbWFjL0Zy
YW1lTWFjLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9icmlkZ2UvbWFjL0ZyYW1lTWFjLmgJKHJl
dmlzaW9uIDE3NTM0KQorKysgV2ViQ29yZS9icmlkZ2UvbWFjL0ZyYW1lTWFjLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTM0OSwxNSArMzQ5LDcgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8S0pTOjpCaW5k
aW5nczo6Um9vdE9iamVjdCo+IG1fcm9vdE9iamVjdHM7CiAgICAgV2ViU2NyaXB0T2JqZWN0KiBf
d2luZG93U2NyaXB0T2JqZWN0OwogICAgIE5QT2JqZWN0KiBfd2luZG93U2NyaXB0TlBPYmplY3Q7
Ci0gICAgCi0gICAgUmVmUHRyPE5vZGU+IF9kcmFnU3JjOyAgICAgLy8gZWxlbWVudCB0aGF0IG1h
eSBiZSBhIGRyYWcgc291cmNlLCBmb3IgdGhlIGN1cnJlbnQgbW91c2UgZ2VzdHVyZQotICAgIGJv
b2wgX2RyYWdTcmNJc0xpbms7Ci0gICAgYm9vbCBfZHJhZ1NyY0lzSW1hZ2U7Ci0gICAgYm9vbCBf
ZHJhZ1NyY0luU2VsZWN0aW9uOwotICAgIGJvb2wgX2RyYWdTcmNNYXlCZURIVE1MLCBfZHJhZ1Ny
Y01heUJlVUE7ICAgLy8gQXJlIERIVE1MIGFuZC9vciB0aGUgVXNlckFnZW50IGFsbG93ZWQgdG8g
ZHJhZyBvdXQ/Ci0gICAgYm9vbCBfZHJhZ1NyY0lzREhUTUw7Ci0gICAgUmVmUHRyPENsaXBib2Fy
ZE1hYz4gX2RyYWdDbGlwYm9hcmQ7ICAgLy8gdXNlZCBvbiBvbmx5IHRoZSBzb3VyY2Ugc2lkZSBv
ZiBkcmFnZ2luZwotICAgIAorCiAgICAgUmVmUHRyPFJhbmdlPiBtX21hcmtlZFRleHRSYW5nZTsK
IH07CiAKSW5kZXg6IFdlYkNvcmUvYnJpZGdlL21hYy9GcmFtZU1hYy5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2JyaWRnZS9tYWMvRnJhbWVNYWMubW0JKHJldmlzaW9uIDE3NTM0KQorKysgV2Vi
Q29yZS9icmlkZ2UvbWFjL0ZyYW1lTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBA
QAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiBBcHBsZSBDb21wdXRlciwg
SW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNiBBbGV4ZXkg
UHJvc2t1cnlha292IChhcEBueXBvcC5jb20pCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTExNCw2ICsxMTUsMTggQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogTlNF
dmVudCogRnJhbWVNYWM6Ol9jdXJyZW50RXZlbnQgPSBuaWw7CiAKK3N0cnVjdCBGcmFtZU1hY0Ry
YWdJbmZvIHsKKyAgICBSZWZQdHI8Tm9kZT4gbV9kcmFnU3JjOyAgICAgLy8gZWxlbWVudCB0aGF0
IG1heSBiZSBhIGRyYWcgc291cmNlLCBmb3IgdGhlIGN1cnJlbnQgbW91c2UgZ2VzdHVyZQorICAg
IGJvb2wgbV9kcmFnU3JjSXNMaW5rOworICAgIGJvb2wgbV9kcmFnU3JjSXNJbWFnZTsKKyAgICBi
b29sIG1fZHJhZ1NyY0luU2VsZWN0aW9uOworICAgIGJvb2wgbV9kcmFnU3JjTWF5QmVESFRNTCwg
bV9kcmFnU3JjTWF5QmVVQTsgICAvLyBBcmUgREhUTUwgYW5kL29yIHRoZSBVc2VyQWdlbnQgYWxs
b3dlZCB0byBkcmFnIG91dD8KKyAgICBib29sIG1fZHJhZ1NyY0lzREhUTUw7CisgICAgUmVmUHRy
PENsaXBib2FyZE1hYz4gbV9kcmFnQ2xpcGJvYXJkOyAgIC8vIHVzZWQgb24gb25seSB0aGUgc291
cmNlIHNpZGUgb2YgZHJhZ2dpbmcKK307CisKK3N0YXRpYyBGcmFtZU1hY0RyYWdJbmZvKiBzaGFy
ZWREcmFnSW5mbzsKKwogc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBlc2NDaGFyID0gMjc7CiBz
dGF0aWMgU0VMIHNlbGVjdG9yRm9yS2V5RXZlbnQoY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50
KiBldmVudCkKIHsKQEAgLTE1Niw2ICsxNjksOCBAQCBGcmFtZU1hYzo6RnJhbWVNYWMoUGFnZSog
cGFnZSwgRWxlbWVudCogCiAgICAgLCBfd2luZG93U2NyaXB0T2JqZWN0KDApCiAgICAgLCBfd2lu
ZG93U2NyaXB0TlBPYmplY3QoMCkKIHsKKyAgICAgaWYgKCFzaGFyZWREcmFnSW5mbykKKyAgICAg
ICAgIHNoYXJlZERyYWdJbmZvID0gbmV3IEZyYW1lTWFjRHJhZ0luZm87CiB9CiAKIEZyYW1lTWFj
Ojp+RnJhbWVNYWMoKQpAQCAtMjUwLDggKzI2NSw4IEBAIEZyYW1lKiBGcmFtZU1hYzo6Y3JlYXRl
RnJhbWUoY29uc3QgS1VSTCYKIAogdm9pZCBGcmFtZU1hYzo6ZnJlZUNsaXBib2FyZCgpCiB7Ci0g
ICAgaWYgKF9kcmFnQ2xpcGJvYXJkKQotICAgICAgICBfZHJhZ0NsaXBib2FyZC0+c2V0QWNjZXNz
UG9saWN5KENsaXBib2FyZE51bWIpOworICAgIGlmIChzaGFyZWREcmFnSW5mby0+bV9kcmFnQ2xp
cGJvYXJkKQorICAgICAgICBzaGFyZWREcmFnSW5mby0+bV9kcmFnQ2xpcGJvYXJkLT5zZXRBY2Nl
c3NQb2xpY3koQ2xpcGJvYXJkTnVtYik7CiB9CiAKIC8vIEVpdGhlciBnZXQgY2FjaGVkIHJlZ2V4
cCBvciBidWlsZCBvbmUgdGhhdCBtYXRjaGVzIGFueSBvZiB0aGUgbGFiZWxzLgpAQCAtMTUwNSwx
MSArMTUyMCwxMSBAQCBib29sIEZyYW1lTWFjOjpkcmFnSHlzdGVyZXNpc0V4Y2VlZGVkKGZsCiAg
ICAgSW50U2l6ZSBkZWx0YSA9IGRyYWdMb2NhdGlvbiAtIG1fbW91c2VEb3duUG9zOwogICAgIAog
ICAgIGZsb2F0IHRocmVzaG9sZCA9IEdlbmVyYWxEcmFnSHlzdGVyZXNpczsKLSAgICBpZiAoX2Ry
YWdTcmNJc0ltYWdlKQorICAgIGlmIChzaGFyZWREcmFnSW5mby0+bV9kcmFnU3JjSXNJbWFnZSkK
ICAgICAgICAgdGhyZXNob2xkID0gSW1hZ2VEcmFnSHlzdGVyZXNpczsKLSAgICBlbHNlIGlmIChf
ZHJhZ1NyY0lzTGluaykKKyAgICBlbHNlIGlmIChzaGFyZWREcmFnSW5mby0+bV9kcmFnU3JjSXNM
aW5rKQogICAgICAgICB0aHJlc2hvbGQgPSBMaW5rRHJhZ0h5c3RlcmVzaXM7Ci0gICAgZWxzZSBp
ZiAoX2RyYWdTcmNJblNlbGVjdGlvbikKKyAgICBlbHNlIGlmIChzaGFyZWREcmFnSW5mby0+bV9k
cmFnU3JjSW5TZWxlY3Rpb24pCiAgICAgICAgIHRocmVzaG9sZCA9IFRleHREcmFnSHlzdGVyZXNp
czsKIAogICAgIHJldHVybiBmYWJzZihkZWx0YS53aWR0aCgpKSA+PSB0aHJlc2hvbGQgfHwgZmFi
c2YoZGVsdGEuaGVpZ2h0KCkpID49IHRocmVzaG9sZDsKQEAgLTE1MjAsNTEgKzE1MzUsNDQgQEAg
dm9pZCBGcmFtZU1hYzo6aGFuZGxlTW91c2VNb3ZlRXZlbnQoY29ucwogICAgIEJFR0lOX0JMT0NL
X09CSkNfRVhDRVBUSU9OUzsKIAogICAgIGlmIChbX2N1cnJlbnRFdmVudCB0eXBlXSA9PSBOU0xl
ZnRNb3VzZURyYWdnZWQpIHsKLSAgICAgICAgTlNWaWV3ICp2aWV3ID0gbW91c2VEb3duVmlld0lm
U3RpbGxHb29kKCk7Ci0KLSAgICAgICAgaWYgKHZpZXcpIHsKLSAgICAgICAgICAgIF9zZW5kaW5n
RXZlbnRUb1N1YnZpZXcgPSB0cnVlOwotICAgICAgICAgICAgW3ZpZXcgbW91c2VEcmFnZ2VkOl9j
dXJyZW50RXZlbnRdOwotICAgICAgICAgICAgX3NlbmRpbmdFdmVudFRvU3VidmlldyA9IGZhbHNl
OwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9CisgICAgICAgIGlmIChtb3VzZURvd25W
aWV3SWZTdGlsbEdvb2QoKSkKKyAgICAgICAgICAgIHJldHVybjsgLy8gVGhlIGV2ZW50IGhhcyBi
ZWVuIGFscmVhZHkgZGlzcGF0Y2hlZCB0byBhIHN1YmZyYW1lCiAKICAgICAgICAgLy8gQ2FyZWZ1
bCB0aGF0IHRoZSBkcmFnIHN0YXJ0aW5nIGxvZ2ljIHN0YXlzIGluIHN5bmMgd2l0aCBldmVudE1h
eVN0YXJ0RHJhZygpCiAgICAgCi0gICAgICAgIGlmIChtb3VzZURvd25NYXlTdGFydERyYWcoKSAm
JiAhX2RyYWdTcmMpIHsKKyAgICAgICAgaWYgKG1vdXNlRG93bk1heVN0YXJ0RHJhZygpICYmICFz
aGFyZWREcmFnSW5mby0+bV9kcmFnU3JjKSB7CiAgICAgICAgICAgICBCT09MIHRlbXBGbGFnMSwg
dGVtcEZsYWcyOwogICAgICAgICAgICAgW19icmlkZ2UgYWxsb3dESFRNTERyYWc6JnRlbXBGbGFn
MSBVQURyYWc6JnRlbXBGbGFnMl07Ci0gICAgICAgICAgICBfZHJhZ1NyY01heUJlREhUTUwgPSB0
ZW1wRmxhZzE7Ci0gICAgICAgICAgICBfZHJhZ1NyY01heUJlVUEgPSB0ZW1wRmxhZzI7Ci0gICAg
ICAgICAgICBpZiAoIV9kcmFnU3JjTWF5QmVESFRNTCAmJiAhX2RyYWdTcmNNYXlCZVVBKSB7Cisg
ICAgICAgICAgICBzaGFyZWREcmFnSW5mby0+bV9kcmFnU3JjTWF5QmVESFRNTCA9IHRlbXBGbGFn
MTsKKyAgICAgICAgICAgIHNoYXJlZERyYWdJbmZvLT5tX2RyYWdTcmNNYXlCZVVBID0gdGVtcEZs
YWcyOworICAgICAgICAgICAgaWYgKCFzaGFyZWREcmFnSW5mby0+bV9kcmFnU3JjTWF5QmVESFRN
TCAmJiAhc2hhcmVkRHJhZ0luZm8tPm1fZHJhZ1NyY01heUJlVUEpCiAgICAgICAgICAgICAgICAg
c2V0TW91c2VEb3duTWF5U3RhcnREcmFnKGZhbHNlKTsgICAgIC8vIG5vIGVsZW1lbnQgaXMgZHJh
Z2dhYmxlCi0gICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIGlmICht
b3VzZURvd25NYXlTdGFydERyYWcoKSAmJiAhX2RyYWdTcmMpIHsKKyAgICAgICAgaWYgKG1vdXNl
RG93bk1heVN0YXJ0RHJhZygpICYmICFzaGFyZWREcmFnSW5mby0+bV9kcmFnU3JjKSB7CiAgICAg
ICAgICAgICAvLyB0cnkgdG8gZmluZCBhbiBlbGVtZW50IHRoYXQgd2FudHMgdG8gYmUgZHJhZ2dl
ZAogICAgICAgICAgICAgSGl0VGVzdFJlcXVlc3QgcmVxdWVzdCh0cnVlLCBmYWxzZSk7CiAgICAg
ICAgICAgICBIaXRUZXN0UmVzdWx0IHJlc3VsdChtX21vdXNlRG93blBvcyk7CiAgICAgICAgICAg
ICByZW5kZXJlcigpLT5sYXllcigpLT5oaXRUZXN0KHJlcXVlc3QsIHJlc3VsdCk7CiAgICAgICAg
ICAgICBOb2RlICpub2RlID0gcmVzdWx0LmlubmVyTm9kZSgpOwotICAgICAgICAgICAgX2RyYWdT
cmMgPSAobm9kZSAmJiBub2RlLT5yZW5kZXJlcigpKSA/IG5vZGUtPnJlbmRlcmVyKCktPmRyYWdn
YWJsZU5vZGUoX2RyYWdTcmNNYXlCZURIVE1MLCBfZHJhZ1NyY01heUJlVUEsIG1fbW91c2VEb3du
UG9zLngoKSwgbV9tb3VzZURvd25Qb3MueSgpLCBfZHJhZ1NyY0lzREhUTUwpIDogMDsKLSAgICAg
ICAgICAgIGlmICghX2RyYWdTcmMpIHsKKyAgICAgICAgICAgIHNoYXJlZERyYWdJbmZvLT5tX2Ry
YWdTcmMgPSAobm9kZSAmJiBub2RlLT5yZW5kZXJlcigpKSA/IG5vZGUtPnJlbmRlcmVyKCktPmRy
YWdnYWJsZU5vZGUoc2hhcmVkRHJhZ0luZm8tPm1fZHJhZ1NyY01heUJlREhUTUwsIHNoYXJlZERy
YWdJbmZvLT5tX2RyYWdTcmNNYXlCZVVBLCBtX21vdXNlRG93blBvcy54KCksIG1fbW91c2VEb3du
UG9zLnkoKSwgc2hhcmVkRHJhZ0luZm8tPm1fZHJhZ1NyY0lzREhUTUwpIDogMDsKKyAgICAgICAg
ICAgIGlmICghc2hhcmVkRHJhZ0luZm8tPm1fZHJhZ1NyYykgewogICAgICAgICAgICAgICAgIHNl
dE1vdXNlRG93bk1heVN0YXJ0RHJhZyhmYWxzZSk7ICAgICAvLyBubyBlbGVtZW50IGlzIGRyYWdn
YWJsZQogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAvLyByZW1lbWJlciBz
b21lIGZhY3RzIGFib3V0IHRoaXMgc291cmNlLCB3aGlsZSB3ZSBoYXZlIGEgSGl0VGVzdFJlc3Vs
dCBoYW5keQogICAgICAgICAgICAgICAgIG5vZGUgPSByZXN1bHQuVVJMRWxlbWVudCgpOwotICAg
ICAgICAgICAgICAgIF9kcmFnU3JjSXNMaW5rID0gbm9kZSAmJiBub2RlLT5pc0xpbmsoKTsKKyAg
ICAgICAgICAgICAgICBzaGFyZWREcmFnSW5mby0+bV9kcmFnU3JjSXNMaW5rID0gbm9kZSAmJiBu
b2RlLT5pc0xpbmsoKTsKIAogICAgICAgICAgICAgICAgIG5vZGUgPSByZXN1bHQuaW5uZXJOb25T
aGFyZWROb2RlKCk7Ci0gICAgICAgICAgICAgICAgX2RyYWdTcmNJc0ltYWdlID0gbm9kZSAmJiBu
b2RlLT5yZW5kZXJlcigpICYmIG5vZGUtPnJlbmRlcmVyKCktPmlzSW1hZ2UoKTsKKyAgICAgICAg
ICAgICAgICBzaGFyZWREcmFnSW5mby0+bV9kcmFnU3JjSXNJbWFnZSA9IG5vZGUgJiYgbm9kZS0+
cmVuZGVyZXIoKSAmJiBub2RlLT5yZW5kZXJlcigpLT5pc0ltYWdlKCk7CiAgICAgICAgICAgICAg
ICAgCi0gICAgICAgICAgICAgICAgX2RyYWdTcmNJblNlbGVjdGlvbiA9IHNlbGVjdGlvbkNvbnRy
b2xsZXIoKS0+Y29udGFpbnMobV9tb3VzZURvd25Qb3MpOworICAgICAgICAgICAgICAgIHNoYXJl
ZERyYWdJbmZvLT5tX2RyYWdTcmNJblNlbGVjdGlvbiA9IHNlbGVjdGlvbkNvbnRyb2xsZXIoKS0+
Y29udGFpbnMobV9tb3VzZURvd25Qb3MpOwogICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAK
ICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgLy8gRm9yIGRyYWdzIHN0YXJ0aW5nIGluIHRo
ZSBzZWxlY3Rpb24sIHRoZSB1c2VyIG11c3Qgd2FpdCBiZXR3ZWVuIHRoZSBtb3VzZWRvd24gYW5k
IG1vdXNlZHJhZywKICAgICAgICAgLy8gb3IgZWxzZSB3ZSBiYWlsIG9uIHRoZSBkcmFnZ2luZyBz
dHVmZiBhbmQgYWxsb3cgc2VsZWN0aW9uIHRvIG9jY3VyCi0gICAgICAgIGlmIChtb3VzZURvd25N
YXlTdGFydERyYWcoKSAmJiBfZHJhZ1NyY0luU2VsZWN0aW9uICYmIFtfY3VycmVudEV2ZW50IHRp
bWVzdGFtcF0gLSBfbW91c2VEb3duVGltZXN0YW1wIDwgVGV4dERyYWdEZWxheSkgeworICAgICAg
ICBpZiAobW91c2VEb3duTWF5U3RhcnREcmFnKCkgJiYgc2hhcmVkRHJhZ0luZm8tPm1fZHJhZ1Ny
Y0luU2VsZWN0aW9uICYmIFtfY3VycmVudEV2ZW50IHRpbWVzdGFtcF0gLSBfbW91c2VEb3duVGlt
ZXN0YW1wIDwgVGV4dERyYWdEZWxheSkgewogICAgICAgICAgICAgc2V0TW91c2VEb3duTWF5U3Rh
cnREcmFnKGZhbHNlKTsKICAgICAgICAgICAgIC8vIC4uLmJ1dCBpZiB0aGlzIHdhcyB0aGUgZmly
c3QgY2xpY2sgaW4gdGhlIHdpbmRvdywgd2UgZG9uJ3QgZXZlbiB3YW50IHRvIHN0YXJ0IHNlbGVj
dGlvbgogICAgICAgICAgICAgaWYgKF9hY3RpdmF0aW9uRXZlbnROdW1iZXIgPT0gW19jdXJyZW50
RXZlbnQgZXZlbnROdW1iZXJdKSB7CkBAIC0xNTg2LDcgKzE1OTQsNyBAQCB2b2lkIEZyYW1lTWFj
OjpoYW5kbGVNb3VzZU1vdmVFdmVudChjb25zCiAgICAgICAgICAgICAgICAgTlNQb2ludCBkcmFn
TG9jID0gTlNaZXJvUG9pbnQ7CiAgICAgICAgICAgICAgICAgTlNEcmFnT3BlcmF0aW9uIHNyY09w
ID0gTlNEcmFnT3BlcmF0aW9uTm9uZTsgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
Qk9PTCB3Y1dyb3RlUGFzdGVib2FyZCA9IE5POwotICAgICAgICAgICAgICAgIGlmIChfZHJhZ1Ny
Y01heUJlREhUTUwpIHsKKyAgICAgICAgICAgICAgICBpZiAoc2hhcmVkRHJhZ0luZm8tPm1fZHJh
Z1NyY01heUJlREhUTUwpIHsKICAgICAgICAgICAgICAgICAgICAgTlNQYXN0ZWJvYXJkICpwYXN0
ZWJvYXJkID0gW05TUGFzdGVib2FyZCBwYXN0ZWJvYXJkV2l0aE5hbWU6TlNEcmFnUGJvYXJkXTsK
ICAgICAgICAgICAgICAgICAgICAgLy8gTXVzdCBiZSBkb25lIGJlZm9yZSBvbmRyYWdzdGFydCBh
ZGRzIHR5cGVzIGFuZCBkYXRhIHRvIHRoZSBwYm9hcmQsCiAgICAgICAgICAgICAgICAgICAgIC8v
IGFsc28gZG9uZSBmb3Igc2VjdXJpdHksIGFzIGl0IGVyYXNlcyBkYXRhIGZyb20gdGhlIGxhc3Qg
ZHJhZwpAQCAtMTU5NCw0MyArMTYwMiw0MyBAQCB2b2lkIEZyYW1lTWFjOjpoYW5kbGVNb3VzZU1v
dmVFdmVudChjb25zCiAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICBm
cmVlQ2xpcGJvYXJkKCk7ICAgIC8vIHdvdWxkIG9ubHkgaGFwcGVuIGlmIHdlIG1pc3NlZCBhIGRy
YWdFbmQuICBEbyBpdCBhbnl3YXksIGp1c3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAvLyB0byBtYWtlIHN1cmUgaXQgZ2V0cyBudW1iaWZpZWQKLSAgICAgICAgICAg
ICAgICAgICAgX2RyYWdDbGlwYm9hcmQgPSBuZXcgQ2xpcGJvYXJkTWFjKHRydWUsIHBhc3RlYm9h
cmQsIENsaXBib2FyZFdyaXRhYmxlLCB0aGlzKTsKKyAgICAgICAgICAgICAgICAgICAgc2hhcmVk
RHJhZ0luZm8tPm1fZHJhZ0NsaXBib2FyZCA9IG5ldyBDbGlwYm9hcmRNYWModHJ1ZSwgcGFzdGVi
b2FyZCwgQ2xpcGJvYXJkV3JpdGFibGUsIHRoaXMpOwogICAgICAgICAgICAgICAgICAgICAKICAg
ICAgICAgICAgICAgICAgICAgLy8gSWYgdGhpcyBpcyBkcmFnIG9mIGFuIGVsZW1lbnQsIGdldCBz
ZXQgdXAgdG8gZ2VuZXJhdGUgYSBkZWZhdWx0IGltYWdlLiAgT3RoZXJ3aXNlCiAgICAgICAgICAg
ICAgICAgICAgIC8vIFdlYktpdCB3aWxsIGdlbmVyYXRlIHRoZSBkZWZhdWx0LCB0aGUgZWxlbWVu
dCBkb2Vzbid0IG92ZXJyaWRlLgotICAgICAgICAgICAgICAgICAgICBpZiAoX2RyYWdTcmNJc0RI
VE1MKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChzaGFyZWREcmFnSW5mby0+bV9kcmFnU3Jj
SXNESFRNTCkgewogICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNyY1gsIHNyY1k7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBfZHJhZ1NyYy0+cmVuZGVyZXIoKS0+YWJzb2x1dGVQb3NpdGlv
bihzcmNYLCBzcmNZKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNoYXJlZERyYWdJbmZvLT5t
X2RyYWdTcmMtPnJlbmRlcmVyKCktPmFic29sdXRlUG9zaXRpb24oc3JjWCwgc3JjWSk7CiAgICAg
ICAgICAgICAgICAgICAgICAgICBJbnRTaXplIGRlbHRhID0gbV9tb3VzZURvd25Qb3MgLSBJbnRQ
b2ludChzcmNYLCBzcmNZKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIF9kcmFnQ2xpcGJvYXJk
LT5zZXREcmFnSW1hZ2VFbGVtZW50KF9kcmFnU3JjLmdldCgpLCBJbnRQb2ludCgpICsgZGVsdGEp
OworICAgICAgICAgICAgICAgICAgICAgICAgc2hhcmVkRHJhZ0luZm8tPm1fZHJhZ0NsaXBib2Fy
ZC0+c2V0RHJhZ0ltYWdlRWxlbWVudChzaGFyZWREcmFnSW5mby0+bV9kcmFnU3JjLmdldCgpLCBJ
bnRQb2ludCgpICsgZGVsdGEpOwogICAgICAgICAgICAgICAgICAgICB9IAogCiAgICAgICAgICAg
ICAgICAgICAgIHNldE1vdXNlRG93bk1heVN0YXJ0RHJhZyhkaXNwYXRjaERyYWdTcmNFdmVudChk
cmFnc3RhcnRFdmVudCwgbV9tb3VzZURvd24pICYmICFzZWxlY3Rpb25Db250cm9sbGVyKCktPmlz
SW5QYXNzd29yZEZpZWxkKCkpOwogICAgICAgICAgICAgICAgICAgICAvLyBJbnZhbGlkYXRlIGNs
aXBib2FyZCBoZXJlIGFnYWluc3QgYW55bW9yZSBwYXN0ZWJvYXJkIHdyaXRpbmcgZm9yIHNlY3Vy
aXR5LiAgVGhlIGRyYWcKICAgICAgICAgICAgICAgICAgICAgLy8gaW1hZ2UgY2FuIHN0aWxsIGJl
IGNoYW5nZWQgYXMgd2UgZHJhZywgYnV0IG5vdCB0aGUgcGFzdGVib2FyZCBkYXRhLgotICAgICAg
ICAgICAgICAgICAgICBfZHJhZ0NsaXBib2FyZC0+c2V0QWNjZXNzUG9saWN5KENsaXBib2FyZElt
YWdlV3JpdGFibGUpOworICAgICAgICAgICAgICAgICAgICBzaGFyZWREcmFnSW5mby0+bV9kcmFn
Q2xpcGJvYXJkLT5zZXRBY2Nlc3NQb2xpY3koQ2xpcGJvYXJkSW1hZ2VXcml0YWJsZSk7CiAgICAg
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICBpZiAobW91c2VEb3duTWF5U3Rh
cnREcmFnKCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGdhdGhlciB2YWx1ZXMgZnJv
bSBESFRNTCBlbGVtZW50LCBpZiBpdCBzZXQgYW55Ci0gICAgICAgICAgICAgICAgICAgICAgICBf
ZHJhZ0NsaXBib2FyZC0+c291cmNlT3BlcmF0aW9uKHNyY09wKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHNoYXJlZERyYWdJbmZvLT5tX2RyYWdDbGlwYm9hcmQtPnNvdXJjZU9wZXJhdGlvbihz
cmNPcCk7CiAKICAgICAgICAgICAgICAgICAgICAgICAgIE5TQXJyYXkgKnR5cGVzID0gW3Bhc3Rl
Ym9hcmQgdHlwZXNdOwogICAgICAgICAgICAgICAgICAgICAgICAgd2NXcm90ZVBhc3RlYm9hcmQg
PSB0eXBlcyAmJiBbdHlwZXMgY291bnRdID4gMDsKIAotICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKF9kcmFnU3JjTWF5QmVESFRNTCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcmFn
SW1hZ2UgPSBfZHJhZ0NsaXBib2FyZC0+ZHJhZ05TSW1hZ2UoZHJhZ0xvYyk7CisgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAoc2hhcmVkRHJhZ0luZm8tPm1fZHJhZ1NyY01heUJlREhUTUwpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJhZ0ltYWdlID0gc2hhcmVkRHJhZ0luZm8tPm1f
ZHJhZ0NsaXBib2FyZC0+ZHJhZ05TSW1hZ2UoZHJhZ0xvYyk7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFl1Y2ssIGRyYWdTb3VyY2VNb3ZlZFRv
KCkgY2FuIGJlIGNhbGxlZCBhcyBhIHJlc3VsdCBvZiBraWNraW5nIG9mZiB0aGUgZHJhZyB3aXRo
CiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBkcmFnSW1hZ2UhICBCZWNhdXNlIG9mIHRoYXQg
ZHVtYiByZWVudHJhbmN5LCB3ZSBtYXkgdGhpbmsgd2UndmUgbm90IHN0YXJ0ZWQgdGhlCiAgICAg
ICAgICAgICAgICAgICAgICAgICAvLyBkcmFnIHdoZW4gdGhhdCBoYXBwZW5zLiAgU28gd2UgaGF2
ZSB0byBhc3N1bWUgaXQncyBzdGFydGVkIGJlZm9yZSB3ZSBraWNrIGl0IG9mZi4KLSAgICAgICAg
ICAgICAgICAgICAgICAgIF9kcmFnQ2xpcGJvYXJkLT5zZXREcmFnSGFzU3RhcnRlZCgpOworICAg
ICAgICAgICAgICAgICAgICAgICAgc2hhcmVkRHJhZ0luZm8tPm1fZHJhZ0NsaXBib2FyZC0+c2V0
RHJhZ0hhc1N0YXJ0ZWQoKTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBpZiAobW91c2VEb3duTWF5U3Rh
cnREcmFnKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgQk9PTCBzdGFydGVkRHJhZyA9IFtfYnJp
ZGdlIHN0YXJ0RHJhZ2dpbmdJbWFnZTpkcmFnSW1hZ2UgYXQ6ZHJhZ0xvYyBvcGVyYXRpb246c3Jj
T3AgZXZlbnQ6X2N1cnJlbnRFdmVudCBzb3VyY2VJc0RIVE1MOl9kcmFnU3JjSXNESFRNTCBESFRN
TFdyb3RlRGF0YTp3Y1dyb3RlUGFzdGVib2FyZF07Ci0gICAgICAgICAgICAgICAgICAgIGlmICgh
c3RhcnRlZERyYWcgJiYgX2RyYWdTcmNNYXlCZURIVE1MKSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAvLyBXZWJLaXQgY2FubmVkIHRoZSBkcmFnIGF0IHRoZSBsYXN0IG1pbnV0ZSAtIHdlIG93
ZSBfZHJhZ1NyYyBhIERSQUdFTkQgZXZlbnQKKyAgICAgICAgICAgICAgICAgICAgQk9PTCBzdGFy
dGVkRHJhZyA9IFtfYnJpZGdlIHN0YXJ0RHJhZ2dpbmdJbWFnZTpkcmFnSW1hZ2UgYXQ6ZHJhZ0xv
YyBvcGVyYXRpb246c3JjT3AgZXZlbnQ6X2N1cnJlbnRFdmVudCBzb3VyY2VJc0RIVE1MOnNoYXJl
ZERyYWdJbmZvLT5tX2RyYWdTcmNJc0RIVE1MIERIVE1MV3JvdGVEYXRhOndjV3JvdGVQYXN0ZWJv
YXJkXTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFzdGFydGVkRHJhZyAmJiBzaGFyZWREcmFn
SW5mby0+bV9kcmFnU3JjTWF5QmVESFRNTCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8g
V2ViS2l0IGNhbm5lZCB0aGUgZHJhZyBhdCB0aGUgbGFzdCBtaW51dGUgLSB3ZSBvd2UgbV9kcmFn
U3JjIGEgRFJBR0VORCBldmVudAogICAgICAgICAgICAgICAgICAgICAgICAgUGxhdGZvcm1Nb3Vz
ZUV2ZW50IGV2ZW50KFBsYXRmb3JtTW91c2VFdmVudDo6Y3VycmVudEV2ZW50KTsKICAgICAgICAg
ICAgICAgICAgICAgICAgIGRpc3BhdGNoRHJhZ1NyY0V2ZW50KGRyYWdlbmRFdmVudCwgZXZlbnQp
OwogICAgICAgICAgICAgICAgICAgICAgICAgc2V0TW91c2VEb3duTWF5U3RhcnREcmFnKGZhbHNl
KTsKQEAgLTE2NDAsNyArMTY0OCw3IEBAIHZvaWQgRnJhbWVNYWM6OmhhbmRsZU1vdXNlTW92ZUV2
ZW50KGNvbnMKICAgICAgICAgICAgICAgICBpZiAoIW1vdXNlRG93bk1heVN0YXJ0RHJhZygpKSB7
CiAgICAgICAgICAgICAgICAgICAgIC8vIHNvbWV0aGluZyBmYWlsZWQgdG8gc3RhcnQgdGhlIGRy
YWcsIGNsZWFudXAKICAgICAgICAgICAgICAgICAgICAgZnJlZUNsaXBib2FyZCgpOwotICAgICAg
ICAgICAgICAgICAgICBfZHJhZ1NyYyA9IDA7CisgICAgICAgICAgICAgICAgICAgIHNoYXJlZERy
YWdJbmZvLT5tX2RyYWdTcmMgPSAwOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0K
IApAQCAtMTc1MSwxMiArMTc1OSw2IEBAIHZvaWQgRnJhbWVNYWM6OmhhbmRsZU1vdXNlUmVsZWFz
ZUV2ZW50KGMKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBzdG9wQXV0b3Njcm9sbFRpbWVy
KCk7Ci0gICAgCi0gICAgX3NlbmRpbmdFdmVudFRvU3VidmlldyA9IHRydWU7Ci0gICAgQkVHSU5f
QkxPQ0tfT0JKQ19FWENFUFRJT05TOwotICAgIFt2aWV3IG1vdXNlVXA6X2N1cnJlbnRFdmVudF07
Ci0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKLSAgICBfc2VuZGluZ0V2ZW50VG9TdWJ2
aWV3ID0gZmFsc2U7CiB9CiAKIGJvb2wgRnJhbWVNYWM6OnBhc3NTdWJmcmFtZUV2ZW50VG9TdWJm
cmFtZShNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiBldmVudCwgRnJhbWUqIHN1YmZyYW1l
KQpAQCAtMTg0OSw3ICsxODUxLDcgQEAgdm9pZCBGcmFtZU1hYzo6bW91c2VEb3duKE5TRXZlbnQg
KmV2ZW50KQogICAgIHByZXBhcmVGb3JVc2VyQWN0aW9uKCk7CiAKICAgICBfbW91c2VEb3duVmll
dyA9IG5pbDsKLSAgICBfZHJhZ1NyYyA9IDA7CisgICAgc2hhcmVkRHJhZ0luZm8tPm1fZHJhZ1Ny
YyA9IDA7CiAgICAgCiAgICAgTlNFdmVudCAqb2xkQ3VycmVudEV2ZW50ID0gX2N1cnJlbnRFdmVu
dDsKICAgICBfY3VycmVudEV2ZW50ID0gSGFyZFJldGFpbihldmVudCk7CkBAIC0yOTU0LDI2ICsy
OTU2LDI2IEBAIGJvb2wgRnJhbWVNYWM6OnNob3VsZENsb3NlKCkKIAogdm9pZCBGcmFtZU1hYzo6
ZHJhZ1NvdXJjZU1vdmVkVG8oY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCkKIHsKLSAg
ICBpZiAoX2RyYWdTcmMgJiYgX2RyYWdTcmNNYXlCZURIVE1MKQorICAgIGlmIChzaGFyZWREcmFn
SW5mby0+bV9kcmFnU3JjICYmIHNoYXJlZERyYWdJbmZvLT5tX2RyYWdTcmNNYXlCZURIVE1MKQog
ICAgICAgICAvLyBmb3Igbm93IHdlIGRvbid0IGNhcmUgaWYgZXZlbnQgaGFuZGxlciBjYW5jZWxz
IGRlZmF1bHQgYmVoYXZpb3IsIHNpbmNlIHRoZXJlIGlzIG5vbmUKICAgICAgICAgZGlzcGF0Y2hE
cmFnU3JjRXZlbnQoZHJhZ0V2ZW50LCBldmVudCk7CiB9CiAKIHZvaWQgRnJhbWVNYWM6OmRyYWdT
b3VyY2VFbmRlZEF0KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQsIE5TRHJhZ09wZXJh
dGlvbiBvcGVyYXRpb24pCiB7Ci0gICAgaWYgKF9kcmFnU3JjICYmIF9kcmFnU3JjTWF5QmVESFRN
TCkgewotICAgICAgICBfZHJhZ0NsaXBib2FyZC0+c2V0RGVzdGluYXRpb25PcGVyYXRpb24ob3Bl
cmF0aW9uKTsKKyAgICBpZiAoc2hhcmVkRHJhZ0luZm8tPm1fZHJhZ1NyYyAmJiBzaGFyZWREcmFn
SW5mby0+bV9kcmFnU3JjTWF5QmVESFRNTCkgeworICAgICAgICBzaGFyZWREcmFnSW5mby0+bV9k
cmFnQ2xpcGJvYXJkLT5zZXREZXN0aW5hdGlvbk9wZXJhdGlvbihvcGVyYXRpb24pOwogICAgICAg
ICAvLyBmb3Igbm93IHdlIGRvbid0IGNhcmUgaWYgZXZlbnQgaGFuZGxlciBjYW5jZWxzIGRlZmF1
bHQgYmVoYXZpb3IsIHNpbmNlIHRoZXJlIGlzIG5vbmUKICAgICAgICAgZGlzcGF0Y2hEcmFnU3Jj
RXZlbnQoZHJhZ2VuZEV2ZW50LCBldmVudCk7CiAgICAgfQogICAgIGZyZWVDbGlwYm9hcmQoKTsK
LSAgICBfZHJhZ1NyYyA9IDA7CisgICAgc2hhcmVkRHJhZ0luZm8tPm1fZHJhZ1NyYyA9IDA7CiB9
CiAKIC8vIHJldHVybnMgaWYgd2Ugc2hvdWxkIGNvbnRpbnVlICJkZWZhdWx0IHByb2Nlc3Npbmci
LCBpLmUuLCB3aGV0aGVyIGV2ZW50aGFuZGxlciBjYW5jZWxlZAotYm9vbCBGcmFtZU1hYzo6ZGlz
cGF0Y2hEcmFnU3JjRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nICZldmVudFR5cGUsIGNvbnN0IFBs
YXRmb3JtTW91c2VFdmVudCYgZXZlbnQpIGNvbnN0Citib29sIEZyYW1lTWFjOjpkaXNwYXRjaERy
YWdTcmNFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgY29uc3QgUGxhdGZvcm1N
b3VzZUV2ZW50JiBldmVudCkgY29uc3QKIHsKLSAgICBib29sIG5vRGVmYXVsdFByb2MgPSBkLT5t
X3ZpZXctPmRpc3BhdGNoRHJhZ0V2ZW50KGV2ZW50VHlwZSwgX2RyYWdTcmMuZ2V0KCksIGV2ZW50
LCBfZHJhZ0NsaXBib2FyZC5nZXQoKSk7CisgICAgYm9vbCBub0RlZmF1bHRQcm9jID0gZC0+bV92
aWV3LT5kaXNwYXRjaERyYWdFdmVudChldmVudFR5cGUsIHNoYXJlZERyYWdJbmZvLT5tX2RyYWdT
cmMuZ2V0KCksIGV2ZW50LCBzaGFyZWREcmFnSW5mby0+bV9kcmFnQ2xpcGJvYXJkLmdldCgpKTsK
ICAgICByZXR1cm4gIW5vRGVmYXVsdFByb2M7CiB9CiAKSW5kZXg6IFdlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCShyZXZp
c2lvbiAxNzUzNCkKKysrIFdlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC02LDYgKzYsNyBAQAogICogICAgICAgICAgICAgICAgICAgICAyMDAwIERpcmsgTXVlbGxl
ciA8bXVlbGxlckBrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2IEFw
cGxlIENvbXB1dGVyLCBJbmMuCiAgKiAgICAgICAgICAgKEMpIDIwMDYgR3JhaGFtIERlbm5pcyAo
Z3JhaGFtLmRlbm5pc0BnbWFpbC5jb20pCisgKiAgICAgICAgICAgKEMpIDIwMDYgQWxleGV5IFBy
b3NrdXJ5YWtvdiAoYXBAbnlwb3AuY29tKQogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0zNCw2ICsz
NSw3IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVRyZWUuaCIKICNpbmNs
dWRlICJIVE1MRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRnJhbWVFbGVtZW50QmFzZS5oIgog
I2luY2x1ZGUgIkhUTUxGcmFtZVNldEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCkBAIC05NDIsMTQgKzk0NCwyNiBAQCBib29s
IEZyYW1lVmlldzo6dXBkYXRlRHJhZ0FuZERyb3AoY29uc3QgCiAgICAgICAgIG5ld1RhcmdldCA9
IG5ld1RhcmdldC0+c2hhZG93QW5jZXN0b3JOb2RlKCk7CiAKICAgICBpZiAoZC0+ZHJhZ1Rhcmdl
dCAhPSBuZXdUYXJnZXQpIHsKLSAgICAgICAgLy8gbm90ZSB0aGlzIG9yZGVyaW5nIGlzIGV4cGxp
Y2l0bHkgY2hvc2VuIHRvIG1hdGNoIFdpbklFCisgICAgICAgIC8vIEZJWE1FOiB0aGlzIG9yZGVy
aW5nIHdhcyBleHBsaWNpdGx5IGNob3NlbiB0byBtYXRjaCBXaW5JRS4gSG93ZXZlciwKKyAgICAg
ICAgLy8gaXQgaXMgc29tZXRpbWVzIGluY29ycmVjdCB3aGVuIGRyYWdnaW5nIHdpdGhpbiBzdWJm
cmFtZXMsIGFzIHNlZW4gd2l0aAorICAgICAgICAvLyBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9k
cmFnLWluLWZyYW1lcy5odG1sLgogICAgICAgICBpZiAobmV3VGFyZ2V0KQotICAgICAgICAgICAg
YWNjZXB0ID0gZGlzcGF0Y2hEcmFnRXZlbnQoZHJhZ2VudGVyRXZlbnQsIG5ld1RhcmdldCwgZXZl
bnQsIGNsaXBib2FyZCk7CisgICAgICAgICAgICBpZiAobmV3VGFyZ2V0LT5oYXNUYWdOYW1lKGZy
YW1lVGFnKSB8fCBuZXdUYXJnZXQtPmhhc1RhZ05hbWUoaWZyYW1lVGFnKSkKKyAgICAgICAgICAg
ICAgICBhY2NlcHQgPSBzdGF0aWNfY2FzdDxIVE1MRnJhbWVFbGVtZW50QmFzZSo+KG5ld1Rhcmdl
dCktPmNvbnRlbnRGcmFtZSgpLT52aWV3KCktPnVwZGF0ZURyYWdBbmREcm9wKGV2ZW50LCBjbGlw
Ym9hcmQpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGFjY2VwdCA9IGRpc3Bh
dGNoRHJhZ0V2ZW50KGRyYWdlbnRlckV2ZW50LCBuZXdUYXJnZXQsIGV2ZW50LCBjbGlwYm9hcmQp
OworICAgICAgICAKICAgICAgICAgaWYgKGQtPmRyYWdUYXJnZXQpCi0gICAgICAgICAgICBkaXNw
YXRjaERyYWdFdmVudChkcmFnbGVhdmVFdmVudCwgZC0+ZHJhZ1RhcmdldC5nZXQoKSwgZXZlbnQs
IGNsaXBib2FyZCk7CisgICAgICAgICAgICBpZiAoZC0+ZHJhZ1RhcmdldC0+aGFzVGFnTmFtZShm
cmFtZVRhZykgfHwgZC0+ZHJhZ1RhcmdldC0+aGFzVGFnTmFtZShpZnJhbWVUYWcpKQorICAgICAg
ICAgICAgICAgIGFjY2VwdCA9IHN0YXRpY19jYXN0PEhUTUxGcmFtZUVsZW1lbnRCYXNlKj4oZC0+
ZHJhZ1RhcmdldC5nZXQoKSktPmNvbnRlbnRGcmFtZSgpLT52aWV3KCktPnVwZGF0ZURyYWdBbmRE
cm9wKGV2ZW50LCBjbGlwYm9hcmQpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
IGRpc3BhdGNoRHJhZ0V2ZW50KGRyYWdsZWF2ZUV2ZW50LCBkLT5kcmFnVGFyZ2V0LmdldCgpLCBl
dmVudCwgY2xpcGJvYXJkKTsKICAgICB9IGVsc2UgewogICAgICAgICBpZiAobmV3VGFyZ2V0KQot
ICAgICAgICAgICAgYWNjZXB0ID0gZGlzcGF0Y2hEcmFnRXZlbnQoZHJhZ292ZXJFdmVudCwgbmV3
VGFyZ2V0LCBldmVudCwgY2xpcGJvYXJkKTsKKyAgICAgICAgICAgIGlmIChuZXdUYXJnZXQtPmhh
c1RhZ05hbWUoZnJhbWVUYWcpIHx8IG5ld1RhcmdldC0+aGFzVGFnTmFtZShpZnJhbWVUYWcpKQor
ICAgICAgICAgICAgICAgIGFjY2VwdCA9IHN0YXRpY19jYXN0PEhUTUxGcmFtZUVsZW1lbnRCYXNl
Kj4obmV3VGFyZ2V0KS0+Y29udGVudEZyYW1lKCktPnZpZXcoKS0+dXBkYXRlRHJhZ0FuZERyb3Ao
ZXZlbnQsIGNsaXBib2FyZCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgYWNj
ZXB0ID0gZGlzcGF0Y2hEcmFnRXZlbnQoZHJhZ292ZXJFdmVudCwgbmV3VGFyZ2V0LCBldmVudCwg
Y2xpcGJvYXJkKTsKICAgICB9CiAgICAgZC0+ZHJhZ1RhcmdldCA9IG5ld1RhcmdldDsKIApAQCAt
OTU5LDcgKzk3MywxMCBAQCBib29sIEZyYW1lVmlldzo6dXBkYXRlRHJhZ0FuZERyb3AoY29uc3Qg
CiB2b2lkIEZyYW1lVmlldzo6Y2FuY2VsRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2
ZW50JiBldmVudCwgQ2xpcGJvYXJkKiBjbGlwYm9hcmQpCiB7CiAgICAgaWYgKGQtPmRyYWdUYXJn
ZXQpCi0gICAgICAgIGRpc3BhdGNoRHJhZ0V2ZW50KGRyYWdsZWF2ZUV2ZW50LCBkLT5kcmFnVGFy
Z2V0LmdldCgpLCBldmVudCwgY2xpcGJvYXJkKTsKKyAgICAgICAgaWYgKGQtPmRyYWdUYXJnZXQt
Pmhhc1RhZ05hbWUoZnJhbWVUYWcpIHx8IGQtPmRyYWdUYXJnZXQtPmhhc1RhZ05hbWUoaWZyYW1l
VGFnKSkKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PEhUTUxGcmFtZUVsZW1lbnRCYXNlKj4oZC0+
ZHJhZ1RhcmdldC5nZXQoKSktPmNvbnRlbnRGcmFtZSgpLT52aWV3KCktPmNhbmNlbERyYWdBbmRE
cm9wKGV2ZW50LCBjbGlwYm9hcmQpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBkaXNwYXRj
aERyYWdFdmVudChkcmFnbGVhdmVFdmVudCwgZC0+ZHJhZ1RhcmdldC5nZXQoKSwgZXZlbnQsIGNs
aXBib2FyZCk7CiAgICAgZC0+ZHJhZ1RhcmdldCA9IDA7CiB9CiAKQEAgLTk2Nyw3ICs5ODQsMTAg
QEAgYm9vbCBGcmFtZVZpZXc6OnBlcmZvcm1EcmFnQW5kRHJvcChjb25zdAogewogICAgIGJvb2wg
YWNjZXB0ID0gZmFsc2U7CiAgICAgaWYgKGQtPmRyYWdUYXJnZXQpCi0gICAgICAgIGFjY2VwdCA9
IGRpc3BhdGNoRHJhZ0V2ZW50KGRyb3BFdmVudCwgZC0+ZHJhZ1RhcmdldC5nZXQoKSwgZXZlbnQs
IGNsaXBib2FyZCk7CisgICAgICAgIGlmIChkLT5kcmFnVGFyZ2V0LT5oYXNUYWdOYW1lKGZyYW1l
VGFnKSB8fCBkLT5kcmFnVGFyZ2V0LT5oYXNUYWdOYW1lKGlmcmFtZVRhZykpCisgICAgICAgICAg
ICBhY2NlcHQgPSBzdGF0aWNfY2FzdDxIVE1MRnJhbWVFbGVtZW50QmFzZSo+KGQtPmRyYWdUYXJn
ZXQuZ2V0KCkpLT5jb250ZW50RnJhbWUoKS0+dmlldygpLT5wZXJmb3JtRHJhZ0FuZERyb3AoZXZl
bnQsIGNsaXBib2FyZCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGFjY2VwdCA9IGRpc3Bh
dGNoRHJhZ0V2ZW50KGRyb3BFdmVudCwgZC0+ZHJhZ1RhcmdldC5nZXQoKSwgZXZlbnQsIGNsaXBi
b2FyZCk7CiAgICAgZC0+ZHJhZ1RhcmdldCA9IDA7CiAgICAgcmV0dXJuIGFjY2VwdDsKIH0KSW5k
ZXg6IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9DaGFu
Z2VMb2cJKHJldmlzaW9uIDE3NTM0KQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMjggQEAKKzIwMDYtMTEtMDEgIEFsZXhleSBQcm9za3VyeWFrb3Yg
IDxhcEBueXBvcC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMyMworICAg
ICAgICBSRUdSRVNTSU9OICgxMC40LjQpOiBvbmRyYWcqIGV2ZW50cyBkb24ndCBmaXJlIG9uIHBh
Z2UgaW4gYSBmcmFtZQorCisgICAgICAgIFdoZW4gZHJhZ2dpbmcsIGRvIG5vdCBzZW5kIEV2ZW50
U2VuZGluZ0NvbnRyb2xsZXIncyBldmVudHMgaW1tZWRpYXRlbHkuIERyYWdnaW5nIAorICAgICAg
ICBpcyBzdXBwb3NlZCB0byBiZSBtb2RhbCwgc28gd2UgbmVlZCB0byBwZXJmb3JtIGl0IGZyb20g
d2l0aGluIHRoZSBkZWxlZ2F0ZSwgd2l0aG91dAorICAgICAgICByZXR1cm5pbmcgdG8gSlMgdG8g
bWFrZSB0aGUgbmV4dCBtb3VzZSBtb3ZlbWVudC4KKworICAgICAgICBXaGVuIHRoZSBtb3VzZSBp
cyBkb3duLCBtb3VzZSBldmVudHMgYXJlIG5vdyByZWNvcmRlZCwgYW5kIGV4ZWN1dGVkIHdoZW4g
bW91c2VVcCBpcyBzZW50LgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvRXZlbnRTZW5kaW5n
Q29udHJvbGxlci5oOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0V2ZW50U2VuZGluZ0NvbnRy
b2xsZXIubToKKyAgICAgICAgKC1bRXZlbnRTZW5kaW5nQ29udHJvbGxlciBkZWFsbG9jXSk6Cisg
ICAgICAgICgtW0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIgbGVhcEZvcndhcmQ6XSk6CisgICAgICAg
ICgtW0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIgbW91c2VEb3duXSk6CisgICAgICAgICgtW0V2ZW50
U2VuZGluZ0NvbnRyb2xsZXIgbW91c2VVcF0pOgorICAgICAgICAoLVtFdmVudFNlbmRpbmdDb250
cm9sbGVyIG1vdXNlTW92ZVRvWDpZOl0pOgorICAgICAgICAoK1tFdmVudFNlbmRpbmdDb250cm9s
bGVyIHNhdmVFdmVudDpdKToKKyAgICAgICAgKCtbRXZlbnRTZW5kaW5nQ29udHJvbGxlciByZXBs
YXlTYXZlZEV2ZW50c10pOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1VJRGVsZWdhdGUubToK
KyAgICAgICAgKC1bVUlEZWxlZ2F0ZSB3ZWJWaWV3OmRyYWdJbWFnZTphdDpvZmZzZXQ6ZXZlbnQ6
cGFzdGVib2FyZDpzb3VyY2U6c2xpZGVCYWNrOmZvclZpZXc6XSk6CisKIDIwMDYtMTEtMDEgIFN0
ZXBoYW5pZSBMZXdpcyAgPHNsZXdpc0BhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
S2V2aW4uCkluZGV4OiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9FdmVudFNlbmRpbmdDb250
cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvRXZlbnRT
ZW5kaW5nQ29udHJvbGxlci5oCShyZXZpc2lvbiAxNzUzNCkKKysrIFdlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzgs
NiArMzgsOSBAQAogICAgIGRvdWJsZSB0aW1lT2Zmc2V0OwogfQogCisrICh2b2lkKXNhdmVFdmVu
dDooTlNJbnZvY2F0aW9uICopZXZlbnQ7CisrICh2b2lkKXJlcGxheVNhdmVkRXZlbnRzOworCiAt
ICh2b2lkKWVuYWJsZURPTVVJRXZlbnRMb2dnaW5nOihXZWJTY3JpcHRPYmplY3QgKilub2RlOwog
CiAtICh2b2lkKWhhbmRsZUV2ZW50OihET01FdmVudCAqKWV2ZW50OwpJbmRleDogV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIubQkocmV2
aXNpb24gMTc1MzQpCisrKyBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9FdmVudFNlbmRpbmdD
b250cm9sbGVyLm0JKHdvcmtpbmcgY29weSkKQEAgLTIsNiArMiw3IEBACiAgKiBDb3B5cmlnaHQg
KEMpIDIwMDUsIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgSm9uYXMgV2l0dCA8am9uYXMud2l0dEBnbWFpbC5jb20+
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVsIFdlaW5pZyA8c2FtLndlaW5pZ0BnbWFpbC5j
b20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQWxleGV5IFByb3NrdXJ5YWtvdiA8YXBAbnlwb3Au
Y29tPgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00MSw2ICs0Miw4IEBAIGV4
dGVybiB2b2lkIF9OU05ld0tpbGxSaW5nU2VxdWVuY2UoKTsKIAogTlNQb2ludCBsYXN0TW91c2VQ
b3NpdGlvbjsKIE5TQXJyYXkgKndlYmtpdERvbUV2ZW50TmFtZXM7CitOU011dGFibGVBcnJheSAq
c2F2ZWRNb3VzZUV2ZW50czsgLy8gbW91c2UgZXZlbnRzIHNlbnQgYmV0d2VlbiBtb3VzZURvd24g
YW5kIG1vdXNlVXAgYXJlIHN0b3JlZCBoZXJlLCBhbmQgdGhlbiBleGVjdXRlZCBhdCBvbmNlLgor
Qk9PTCByZXBsYXlpbmdTYXZlZEV2ZW50czsKIAogQGltcGxlbWVudGF0aW9uIEV2ZW50U2VuZGlu
Z0NvbnRyb2xsZXIKIApAQCAtMTI2LDYgKzEyOSwxNSBAQCBOU0FycmF5ICp3ZWJraXREb21FdmVu
dE5hbWVzOwogICAgIHJldHVybiBuaWw7CiB9CiAKKy0gKHZvaWQpZGVhbGxvYworeworICAgIGFz
c2VydCghZG93bik7CisgICAgYXNzZXJ0KFtzYXZlZE1vdXNlRXZlbnRzIGNvdW50XSA9PSAwKTsK
KyAgICBbc2F2ZWRNb3VzZUV2ZW50cyByZWxlYXNlXTsKKyAgICBzYXZlZE1vdXNlRXZlbnRzID0g
bmlsOworICAgIFtzdXBlciBkZWFsbG9jXTsKK30KKwogLSAoZG91YmxlKWN1cnJlbnRFdmVudFRp
bWUKIHsKICAgICByZXR1cm4gR2V0Q3VycmVudEV2ZW50VGltZSgpICsgdGltZU9mZnNldDsKQEAg
LTEzMyw2ICsxNDUsMTcgQEAgTlNBcnJheSAqd2Via2l0RG9tRXZlbnROYW1lczsKIAogLSAodm9p
ZClsZWFwRm9yd2FyZDooaW50KW1pbGxpc2Vjb25kcwogeworICAgIGlmIChkb3duICYmICFyZXBs
YXlpbmdTYXZlZEV2ZW50cykgeworICAgICAgICBOU0ludm9jYXRpb24gKmludm9jYXRpb24gPSBb
TlNJbnZvY2F0aW9uIGludm9jYXRpb25XaXRoTWV0aG9kU2lnbmF0dXJlOltFdmVudFNlbmRpbmdD
b250cm9sbGVyIGluc3RhbmNlTWV0aG9kU2lnbmF0dXJlRm9yU2VsZWN0b3I6QHNlbGVjdG9yKGxl
YXBGb3J3YXJkOildXTsKKyAgICAgICAgW2ludm9jYXRpb24gc2V0VGFyZ2V0OnNlbGZdOworICAg
ICAgICBbaW52b2NhdGlvbiBzZXRTZWxlY3RvcjpAc2VsZWN0b3IobGVhcEZvcndhcmQ6KV07Cisg
ICAgICAgIFtpbnZvY2F0aW9uIHNldEFyZ3VtZW50OiZtaWxsaXNlY29uZHMgYXRJbmRleDoyXTsK
KyAgICAgICAgCisgICAgICAgIFtFdmVudFNlbmRpbmdDb250cm9sbGVyIHNhdmVFdmVudDppbnZv
Y2F0aW9uXTsKKyAgICAgICAgCisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICB0aW1lT2Zm
c2V0ICs9IG1pbGxpc2Vjb25kcyAvIDEwMDAuMDsKIH0KIApAQCAtMTQzLDYgKzE2Niw5IEBAIE5T
QXJyYXkgKndlYmtpdERvbUV2ZW50TmFtZXM7CiAKIC0gKHZvaWQpbW91c2VEb3duCiB7CisgICAg
YXNzZXJ0KCFkb3duKTsKKyAgICBhc3NlcnQoIXJlcGxheWluZ1NhdmVkRXZlbnRzKTsKKwogICAg
IFtbW2ZyYW1lIGZyYW1lVmlld10gZG9jdW1lbnRWaWV3XSBsYXlvdXRdOwogICAgIGlmIChbc2Vs
ZiBjdXJyZW50RXZlbnRUaW1lXSAtIGxhc3RDbGljayA+PSAxKQogICAgICAgICBjbGlja0NvdW50
ID0gMTsKQEAgLTE2Nyw2ICsxOTMsMjAgQEAgTlNBcnJheSAqd2Via2l0RG9tRXZlbnROYW1lczsK
IAogLSAodm9pZCltb3VzZVVwCiB7CisgICAgYXNzZXJ0KGRvd24pOworCisgICAgaWYgKCFyZXBs
YXlpbmdTYXZlZEV2ZW50cykgeworICAgICAgICBOU0ludm9jYXRpb24gKmludm9jYXRpb24gPSBb
TlNJbnZvY2F0aW9uIGludm9jYXRpb25XaXRoTWV0aG9kU2lnbmF0dXJlOltFdmVudFNlbmRpbmdD
b250cm9sbGVyIGluc3RhbmNlTWV0aG9kU2lnbmF0dXJlRm9yU2VsZWN0b3I6QHNlbGVjdG9yKG1v
dXNlVXApXV07CisgICAgICAgIFtpbnZvY2F0aW9uIHNldFRhcmdldDpzZWxmXTsKKyAgICAgICAg
W2ludm9jYXRpb24gc2V0U2VsZWN0b3I6QHNlbGVjdG9yKG1vdXNlVXApXTsKKyAgICAgICAgCisg
ICAgICAgIFtFdmVudFNlbmRpbmdDb250cm9sbGVyIHNhdmVFdmVudDppbnZvY2F0aW9uXTsKKyAg
ICAgICAgW0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIgcmVwbGF5U2F2ZWRFdmVudHNdOworCisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKwogICAgIFtbW2ZyYW1lIGZyYW1lVmlld10gZG9jdW1lbnRW
aWV3XSBsYXlvdXRdOwogICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdp
dGhUeXBlOk5TTGVmdE1vdXNlVXAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbG9jYXRpb246bGFzdE1vdXNlUG9zaXRpb24gCkBAIC0yMDEsNiArMjQxLDE4IEBAIE5T
QXJyYXkgKndlYmtpdERvbUV2ZW50TmFtZXM7CiAKIC0gKHZvaWQpbW91c2VNb3ZlVG9YOihpbnQp
eCBZOihpbnQpeQogeworICAgIGlmIChkb3duICYmICFyZXBsYXlpbmdTYXZlZEV2ZW50cykgewor
ICAgICAgICBOU0ludm9jYXRpb24gKmludm9jYXRpb24gPSBbTlNJbnZvY2F0aW9uIGludm9jYXRp
b25XaXRoTWV0aG9kU2lnbmF0dXJlOltFdmVudFNlbmRpbmdDb250cm9sbGVyIGluc3RhbmNlTWV0
aG9kU2lnbmF0dXJlRm9yU2VsZWN0b3I6QHNlbGVjdG9yKG1vdXNlTW92ZVRvWDpZOildXTsKKyAg
ICAgICAgW2ludm9jYXRpb24gc2V0VGFyZ2V0OnNlbGZdOworICAgICAgICBbaW52b2NhdGlvbiBz
ZXRTZWxlY3RvcjpAc2VsZWN0b3IobW91c2VNb3ZlVG9YOlk6KV07CisgICAgICAgIFtpbnZvY2F0
aW9uIHNldEFyZ3VtZW50OiZ4IGF0SW5kZXg6Ml07CisgICAgICAgIFtpbnZvY2F0aW9uIHNldEFy
Z3VtZW50OiZ5IGF0SW5kZXg6M107CisgICAgICAgIAorICAgICAgICBbRXZlbnRTZW5kaW5nQ29u
dHJvbGxlciBzYXZlRXZlbnQ6aW52b2NhdGlvbl07CisgICAgICAgIAorICAgICAgICByZXR1cm47
CisgICAgfQorCiAgICAgTlNWaWV3ICp2aWV3ID0gW2ZyYW1lIHdlYlZpZXddOwogICAgIGxhc3RN
b3VzZVBvc2l0aW9uID0gW3ZpZXcgY29udmVydFBvaW50Ok5TTWFrZVBvaW50KHgsIFt2aWV3IGZy
YW1lXS5zaXplLmhlaWdodCAtIHkpIHRvVmlldzpuaWxdOwogICAgIE5TRXZlbnQgKmV2ZW50ID0g
W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOihkb3duID8gTlNMZWZ0TW91c2VEcmFnZ2VkIDog
TlNNb3VzZU1vdmVkKSAKQEAgLTI2MSw2ICszMTMsMjUgQEAgTlNBcnJheSAqd2Via2l0RG9tRXZl
bnROYW1lczsKICAgICB9CiB9CiAKKysgKHZvaWQpc2F2ZUV2ZW50OihOU0ludm9jYXRpb24gKill
dmVudAoreworICAgIGlmICghc2F2ZWRNb3VzZUV2ZW50cykKKyAgICAgICAgc2F2ZWRNb3VzZUV2
ZW50cyA9IFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdOworICAgIFtzYXZlZE1vdXNlRXZl
bnRzIGFkZE9iamVjdDppbnZvY2F0aW9uXTsKK30KKworKyAodm9pZClyZXBsYXlTYXZlZEV2ZW50
cworeworICAgIHJlcGxheWluZ1NhdmVkRXZlbnRzID0gWUVTOworICAgIHdoaWxlIChbc2F2ZWRN
b3VzZUV2ZW50cyBjb3VudF0pIHsKKyAgICAgICAgLy8gaWYgYSBkcmFnIGlzIGluaXRpYXRlZCwg
dGhlIHJlbWFpbmluZyBzYXZlZCBldmVudHMgd2lsbCBiZSBkaXNwYXRjaGVkIGZyb20gb3VyIGRy
YWdnaW5nIGRlbGVnYXRlCisgICAgICAgIE5TSW52b2NhdGlvbiAqaW52b2NhdGlvbiA9IFtbW3Nh
dmVkTW91c2VFdmVudHMgb2JqZWN0QXRJbmRleDowXSByZXRhaW5dIGF1dG9yZWxlYXNlXTsKKyAg
ICAgICAgW3NhdmVkTW91c2VFdmVudHMgcmVtb3ZlT2JqZWN0QXRJbmRleDowXTsKKyAgICAgICAg
W2ludm9jYXRpb24gaW52b2tlXTsKKyAgICB9CisgICAgcmVwbGF5aW5nU2F2ZWRFdmVudHMgPSBO
TzsKK30KKwogLSAodm9pZClrZXlEb3duOihOU1N0cmluZyAqKWNoYXJhY3RlciB3aXRoTW9kaWZp
ZXJzOihXZWJTY3JpcHRPYmplY3QgKiltb2RpZmllcnMKIHsKICAgICBOU1N0cmluZyAqbW9kaWZp
ZXIgPSBuaWw7CkluZGV4OiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9VSURlbGVnYXRlLm0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvVUlEZWxlZ2F0ZS5tCShy
ZXZpc2lvbiAxNzUzNCkKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL1VJRGVsZWdhdGUu
bQkod29ya2luZyBjb3B5KQpAQCAtNDYsMTIgKzQ2LDkgQEAgRHVtcFJlbmRlclRyZWVEcmFnZ2lu
Z0luZm8gKmRyYWdnaW5nSW5mbwogCiAtICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKilzZW5kZXIg
ZHJhZ0ltYWdlOihOU0ltYWdlICopYW5JbWFnZSBhdDooTlNQb2ludCl2aWV3TG9jYXRpb24gb2Zm
c2V0OihOU1NpemUpaW5pdGlhbE9mZnNldCBldmVudDooTlNFdmVudCAqKWV2ZW50IHBhc3RlYm9h
cmQ6KE5TUGFzdGVib2FyZCAqKXBib2FyZCBzb3VyY2U6KGlkKXNvdXJjZU9iaiBzbGlkZUJhY2s6
KEJPT0wpc2xpZGVGbGFnIGZvclZpZXc6KE5TVmlldyAqKXZpZXcKIHsKLSAgICAvLyBBIG5ldyBk
cmFnIHdhcyBzdGFydGVkIGJlZm9yZSB0aGUgb2xkIG9uZSBlbmRlZC4gIFByb2JhYmx5IHNob3Vs
ZG4ndCBoYXBwZW4uCi0gICAgaWYgKGRyYWdnaW5nSW5mbykgewotICAgICAgICBbW2RyYWdnaW5n
SW5mbyBkcmFnZ2luZ1NvdXJjZV0gZHJhZ2dlZEltYWdlOltkcmFnZ2luZ0luZm8gZHJhZ2dlZElt
YWdlXSBlbmRlZEF0Omxhc3RNb3VzZVBvc2l0aW9uIG9wZXJhdGlvbjpOU0RyYWdPcGVyYXRpb25O
b25lXTsKLSAgICAgICAgW2RyYWdnaW5nSW5mbyByZWxlYXNlXTsKLSAgICB9Ci0gICAgZHJhZ2dp
bmdJbmZvID0gW1tEdW1wUmVuZGVyVHJlZURyYWdnaW5nSW5mbyBhbGxvY10gaW5pdFdpdGhJbWFn
ZTphbkltYWdlIG9mZnNldDppbml0aWFsT2Zmc2V0IHBhc3RlYm9hcmQ6cGJvYXJkIHNvdXJjZTpz
b3VyY2VPYmpdOworICAgICBhc3NlcnQoIWRyYWdnaW5nSW5mbyk7CisgICAgIGRyYWdnaW5nSW5m
byA9IFtbRHVtcFJlbmRlclRyZWVEcmFnZ2luZ0luZm8gYWxsb2NdIGluaXRXaXRoSW1hZ2U6YW5J
bWFnZSBvZmZzZXQ6aW5pdGlhbE9mZnNldCBwYXN0ZWJvYXJkOnBib2FyZCBzb3VyY2U6c291cmNl
T2JqXTsKKyAgICAgW0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIgcmVwbGF5U2F2ZWRFdmVudHNdOwog
fQogCiAtICh2b2lkKXdlYlZpZXdGb2N1czooV2ViVmlldyAqKXdlYlZpZXcK
</data>
<flag name="review"
          id="3943"
          type_id="1"
          status="+"
          setter="adele"
    />
          </attachment>
      

    </bug>

</bugzilla>