<?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>78860</bug_id>
          
          <creation_ts>2012-02-16 17:08:22 -0800</creation_ts>
          <short_desc>Frame and Navigator shouldn&apos;t need to worry about Geolocation</short_desc>
          <delta_ts>2012-02-23 20:58:55 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>79327</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>eric</cc>
    
    <cc>gustavo</cc>
    
    <cc>haraken</cc>
    
    <cc>jonlee</cc>
    
    <cc>morrita</cc>
    
    <cc>mrobinson</cc>
    
    <cc>pilgrim</cc>
    
    <cc>pnormand</cc>
    
    <cc>steveblock</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>558711</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-16 17:08:22 -0800</bug_when>
    <thetext>Frame and Navigator shouldn&apos;t need to worry about Geolocation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558713</commentid>
    <comment_count>1</comment_count>
      <attachid>127475</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-16 17:08:40 -0800</bug_when>
    <thetext>Created attachment 127475
work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558729</commentid>
    <comment_count>2</comment_count>
      <attachid>127475</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-02-16 17:17:27 -0800</bug_when>
    <thetext>Comment on attachment 127475
work in progress

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

&gt; Source/WebCore/page/Frame.cpp:-724
&gt; -        // FIXME: We should ideally allow existing Geolocation activities to continue
&gt; -        // when the Geolocation&apos;s iframe is reparented.
&gt; -        // See https://bugs.webkit.org/show_bug.cgi?id=55577
&gt; -        // and https://bugs.webkit.org/show_bug.cgi?id=52877

Do you need to move these fixmes?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559319</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-17 10:43:59 -0800</bug_when>
    <thetext>I&apos;m going to move them into NavigatorGeolocation::pageDestroyed.

I believe the plan is to remove the notion of reparenting iframes.  It doesn&apos;t really work anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559529</commentid>
    <comment_count>4</comment_count>
      <attachid>127657</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-17 14:12:00 -0800</bug_when>
    <thetext>Created attachment 127657
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559540</commentid>
    <comment_count>5</comment_count>
      <attachid>127657</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-02-17 14:22:41 -0800</bug_when>
    <thetext>Comment on attachment 127657
Patch

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

&gt; Source/WebCore/ChangeLog:18
&gt; +        * Modules/geolocation: Added.

It&apos;s not immediately clear to me what &quot;modules&quot; are in WebKit.  What features are modules?  It seems modules have less to do with feature defines, and more to do with separability from the core code?

&gt; Source/WebCore/Modules/geolocation/NavigatorGeolocation.cpp:49
&gt; +    // FIXME: We should ideally allow existing Geolocation activities to continue
&gt; +    // when the Geolocation&apos;s iframe is reparented. (Assuming we continue to
&gt; +    // support reparenting iframes.)
&gt; +    // See https://bugs.webkit.org/show_bug.cgi?id=55577
&gt; +    // and https://bugs.webkit.org/show_bug.cgi?id=52877

Doing so would require a pageChanged or some other notification to know that you have a new page, no?

&gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:7390
&gt; -		1C435CD314E8544F004E10EA /* Inspector.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = Inspector.json; sourceTree = &quot;&lt;group&gt;&quot;; };
&gt; -		1C435CD414E8545B004E10EA /* Inspector-0.1.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = &quot;Inspector-0.1.json&quot;; sourceTree = &quot;&lt;group&gt;&quot;; };
&gt; -		1C435CD514E8545B004E10EA /* Inspector-1.0.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = &quot;Inspector-1.0.json&quot;; sourceTree = &quot;&lt;group&gt;&quot;; };
&gt; +		1C435CD314E8544F004E10EA /* Inspector.json */ = {isa = PBXFileReference; lastKnownFileType = text; path = Inspector.json; sourceTree = &quot;&lt;group&gt;&quot;; };
&gt; +		1C435CD414E8545B004E10EA /* Inspector-0.1.json */ = {isa = PBXFileReference; lastKnownFileType = text; path = &quot;Inspector-0.1.json&quot;; sourceTree = &quot;&lt;group&gt;&quot;; };
&gt; +		1C435CD514E8545B004E10EA /* Inspector-1.0.json */ = {isa = PBXFileReference; lastKnownFileType = text; path = &quot;Inspector-1.0.json&quot;; sourceTree = &quot;&lt;group&gt;&quot;; };

This seems to be an Xcode version war?

&gt; Source/WebCore/page/DOMWindow.cpp:493
&gt; +    HashSet&lt;DOMWindowProperty*&gt;::iterator stop = m_properties.end();

So DOMWindowProperties are always FrameDestructionObservers?

&gt; Source/WebCore/page/Frame.cpp:730
&gt; +            (*it)-&gt;pageDestroyed();

It&apos;s not immediately clear to me why we call pageDestroyed here.  Maybe pageDestroyed is just poorly named?  Will this FrameDestructionObserver ever get a new page?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559550</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-17 14:32:10 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 127657 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=127657&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:18
&gt; &gt; +        * Modules/geolocation: Added.
&gt; 
&gt; It&apos;s not immediately clear to me what &quot;modules&quot; are in WebKit.  What features are modules?  It seems modules have less to do with feature defines, and more to do with separability from the core code?

Correct.  Code outside of a given module doesn&apos;t depend on anything inside the module.  Modules do not depend on each other.

The idea is that they roughly correspond to features / specifications that aren&apos;t core to the rendering engine (like a CSS feature might be).  Usually module will be introduced with a corresponding ENABLE flag.  The dependency rules ensure that nothing outside the module will be burdened with knowledge/complexity of the ENABLE flag.

&gt; &gt; Source/WebCore/Modules/geolocation/NavigatorGeolocation.cpp:49
&gt; &gt; +    // FIXME: We should ideally allow existing Geolocation activities to continue
&gt; &gt; +    // when the Geolocation&apos;s iframe is reparented. (Assuming we continue to
&gt; &gt; +    // support reparenting iframes.)
&gt; &gt; +    // See https://bugs.webkit.org/show_bug.cgi?id=55577
&gt; &gt; +    // and https://bugs.webkit.org/show_bug.cgi?id=52877
&gt; 
&gt; Doing so would require a pageChanged or some other notification to know that you have a new page, no?

Correct.  However, it&apos;s more likely will we simply remove the functionality.

&gt; &gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:7390
&gt; &gt; -		1C435CD314E8544F004E10EA /* Inspector.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = Inspector.json; sourceTree = &quot;&lt;group&gt;&quot;; };
&gt; &gt; -		1C435CD414E8545B004E10EA /* Inspector-0.1.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = &quot;Inspector-0.1.json&quot;; sourceTree = &quot;&lt;group&gt;&quot;; };
&gt; &gt; -		1C435CD514E8545B004E10EA /* Inspector-1.0.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = &quot;Inspector-1.0.json&quot;; sourceTree = &quot;&lt;group&gt;&quot;; };
&gt; &gt; +		1C435CD314E8544F004E10EA /* Inspector.json */ = {isa = PBXFileReference; lastKnownFileType = text; path = Inspector.json; sourceTree = &quot;&lt;group&gt;&quot;; };
&gt; &gt; +		1C435CD414E8545B004E10EA /* Inspector-0.1.json */ = {isa = PBXFileReference; lastKnownFileType = text; path = &quot;Inspector-0.1.json&quot;; sourceTree = &quot;&lt;group&gt;&quot;; };
&gt; &gt; +		1C435CD514E8545B004E10EA /* Inspector-1.0.json */ = {isa = PBXFileReference; lastKnownFileType = text; path = &quot;Inspector-1.0.json&quot;; sourceTree = &quot;&lt;group&gt;&quot;; };
&gt; 
&gt; This seems to be an Xcode version war?

Not sure.  I&apos;ll remove these changes before landing.

&gt; &gt; Source/WebCore/page/DOMWindow.cpp:493
&gt; &gt; +    HashSet&lt;DOMWindowProperty*&gt;::iterator stop = m_properties.end();
&gt; 
&gt; So DOMWindowProperties are always FrameDestructionObservers?

It&apos;s not, although they both can observe pageDestroyed().  It&apos;s likely they&apos;ll merge in the future, but at the moment, DOMWindow forwards the pageDestroyed() call to its properties.

Note: I plan to rename FrameDestructionObserver to FrameObservers if it needs any more callbacks.

&gt; &gt; Source/WebCore/page/Frame.cpp:730
&gt; &gt; +            (*it)-&gt;pageDestroyed();
&gt; 
&gt; It&apos;s not immediately clear to me why we call pageDestroyed here.  Maybe pageDestroyed is just poorly named?  Will this FrameDestructionObserver ever get a new page?

We can call it disconnectPage() or willDisconnectPage() if you&apos;d prefer.  The idea is that the association with the Page is going away, either because the Page is about to be destroyed or because we&apos;re moving to a new Page.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559565</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-17 14:53:12 -0800</bug_when>
    <thetext>&gt; We can call it disconnectPage() or willDisconnectPage() if you&apos;d prefer.  The idea is that the association with the Page is going away, either because the Page is about to be destroyed or because we&apos;re moving to a new Page.

I&apos;ve renamed it to willDetachPage, a name inspired by Frame::detachFromPage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559568</commentid>
    <comment_count>8</comment_count>
      <attachid>127662</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-17 15:04:49 -0800</bug_when>
    <thetext>Created attachment 127662
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559571</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-02-17 15:11:16 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #5)
&gt; Correct.  Code outside of a given module doesn&apos;t depend on anything inside the module.  Modules do not depend on each other.
&gt; 
&gt; The idea is that they roughly correspond to features / specifications that aren&apos;t core to the rendering engine (like a CSS feature might be).  Usually module will be introduced with a corresponding ENABLE flag.  The dependency rules ensure that nothing outside the module will be burdened with knowledge/complexity of the ENABLE flag.

I know WebKit hasn&apos;t done this in the past, but I think we might consider a README in modules to explain this design pattern.  Maybe we have a wiki on this?  In any case, &quot;modules&quot; itself does not convey enough information to make this design point clear. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559578</commentid>
    <comment_count>10</comment_count>
      <attachid>127662</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-02-17 15:14:11 -0800</bug_when>
    <thetext>Comment on attachment 127662
Patch

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

&gt; Source/WebCore/page/Page.cpp:207
&gt; +        frame-&gt;willDetachPage();
&gt; +        frame-&gt;detachFromPage();

Makes one wonder if detachFromPage should call willDetachPage()...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559580</commentid>
    <comment_count>11</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-17 15:14:52 -0800</bug_when>
    <thetext>&gt; I know WebKit hasn&apos;t done this in the past, but I think we might consider a README in modules to explain this design pattern.  Maybe we have a wiki on this?  In any case, &quot;modules&quot; itself does not convey enough information to make this design point clear. :)

Adding a README file is a good idea.  I believe Kentaro is working on a Wiki page that describes [Supplemental] and the other IDL attributes.  We should probably add a section on modules as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559584</commentid>
    <comment_count>12</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-17 15:15:40 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 127662 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=127662&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/Page.cpp:207
&gt; &gt; +        frame-&gt;willDetachPage();
&gt; &gt; +        frame-&gt;detachFromPage();
&gt; 
&gt; Makes one wonder if detachFromPage should call willDetachPage()...

Yeah, that&apos;s a good idea.  I believe it&apos;s an error to call detachFromPage without calling willDetachPage, so we should make that error impossible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559607</commentid>
    <comment_count>13</comment_count>
      <attachid>127662</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-02-17 15:50:30 -0800</bug_when>
    <thetext>Comment on attachment 127662
Patch

Attachment 127662 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11535706</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559610</commentid>
    <comment_count>14</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-17 15:51:37 -0800</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=127662&amp;action=review

&gt; Source/WebCore/Target.pri:37
&gt; +    Modules/Geolocation/NavigatorGeolocation.cpp \

Geolocation =&gt; geolocation

&gt; Source/WebCore/Target.pri:38
&gt; +

Also we need a \ on this line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559611</commentid>
    <comment_count>15</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-17 15:53:33 -0800</bug_when>
    <thetext>From the GTK bot:

DerivedSources/webkit/WebKitDOMNavigator.cpp: In function &apos;WebKitDOMGeolocation* webkit_dom_navigator_get_geolocation(WebKitDOMNavigator*)&apos;:
DerivedSources/webkit/WebKitDOMNavigator.cpp:230:58: error: &apos;NavigatorGeolocation&apos; has not been declared
DerivedSources/webkit/WebKitDOMNavigator.cpp: In function &apos;void webkit_dom_navigator_get_property(GObject*, guint, GValue*, GParamSpec*)&apos;:
DerivedSources/webkit/WebKitDOMNavigator.cpp:384:54: error: &apos;class WebCore::Navigator&apos; has no member named &apos;geolocation&apos;

Looks like we need to teach another code generator about [Supplemental].</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559617</commentid>
    <comment_count>16</comment_count>
      <attachid>127662</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-02-17 15:57:27 -0800</bug_when>
    <thetext>Comment on attachment 127662
Patch

Attachment 127662 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/11543299</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559667</commentid>
    <comment_count>17</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-17 17:12:51 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; I know WebKit hasn&apos;t done this in the past, but I think we might consider a README in modules to explain this design pattern.  Maybe we have a wiki on this?  In any case, &quot;modules&quot; itself does not convey enough information to make this design point clear. :)

Eric: I already have a wiki and a SpreadSheet of modularization plan and am planning to announce it to webkit-dev@. But before that, I need to fix GTK build regression caused by [Supplemental] to prevent people from complaining about [Supplemental]. After that fix, I&apos;ll share it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559668</commentid>
    <comment_count>18</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-17 17:16:24 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; From the GTK bot:
&gt; 
&gt; Looks like we need to teach another code generator about [Supplemental].

Ah... this is _another_ build regression in GTK:-) I&apos;ll take a look on Monday.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560141</commentid>
    <comment_count>19</comment_count>
      <attachid>127662</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2012-02-20 03:08:17 -0800</bug_when>
    <thetext>Comment on attachment 127662
Patch

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

&gt; Source/WebCore/Modules/geolocation/NavigatorGeolocation.cpp:2
&gt; + * Copyright (C) 2011, Google Inc. All rights reserved.

2012, and elsewhere

&gt; Source/WebCore/Modules/geolocation/NavigatorGeolocation.idl:4
&gt; + * This library is free software; you can redistribute it and/or

Is this intended to be LGPL?

&gt; Source/WebCore/page/Frame.cpp:666
&gt;      // This cleanup is needed whenever we remove a frame from page.

Stale comment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560564</commentid>
    <comment_count>20</comment_count>
      <attachid>127662</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-20 19:48:25 -0800</bug_when>
    <thetext>Comment on attachment 127662
Patch

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

&gt;&gt; Source/WebCore/Modules/geolocation/NavigatorGeolocation.idl:4
&gt;&gt; + * This library is free software; you can redistribute it and/or
&gt; 
&gt; Is this intended to be LGPL?

Dunno.  This comes from Navigator.idl, so maybe it needs to be LGPL to match?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560593</commentid>
    <comment_count>21</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-20 20:24:14 -0800</bug_when>
    <thetext>*** Bug 77758 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561080</commentid>
    <comment_count>22</comment_count>
      <attachid>128007</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-21 11:28:56 -0800</bug_when>
    <thetext>Created attachment 128007
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561100</commentid>
    <comment_count>23</comment_count>
      <attachid>128007</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-02-21 11:49:33 -0800</bug_when>
    <thetext>Comment on attachment 128007
Patch

Looks good.  Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561109</commentid>
    <comment_count>24</comment_count>
      <attachid>128007</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-02-21 12:00:44 -0800</bug_when>
    <thetext>Comment on attachment 128007
Patch

Attachment 128007 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11520210</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561131</commentid>
    <comment_count>25</comment_count>
      <attachid>128007</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-02-21 12:24:38 -0800</bug_when>
    <thetext>Comment on attachment 128007
Patch

Attachment 128007 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/11558195</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561161</commentid>
    <comment_count>26</comment_count>
      <attachid>128028</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-21 13:04:56 -0800</bug_when>
    <thetext>Created attachment 128028
should fix qt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561172</commentid>
    <comment_count>27</comment_count>
      <attachid>128033</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-21 13:20:15 -0800</bug_when>
    <thetext>Created attachment 128033
for EWSWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561191</commentid>
    <comment_count>28</comment_count>
      <attachid>128033</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-02-21 13:51:49 -0800</bug_when>
    <thetext>Comment on attachment 128033
for EWSWS

Attachment 128033 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11562241</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561234</commentid>
    <comment_count>29</comment_count>
      <attachid>128047</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-21 14:39:36 -0800</bug_when>
    <thetext>Created attachment 128047
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561236</commentid>
    <comment_count>30</comment_count>
      <attachid>128048</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-21 14:40:48 -0800</bug_when>
    <thetext>Created attachment 128048
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561268</commentid>
    <comment_count>31</comment_count>
      <attachid>128048</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-02-21 15:18:18 -0800</bug_when>
    <thetext>Comment on attachment 128048
Patch for landing

Attachment 128048 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11557267</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561305</commentid>
    <comment_count>32</comment_count>
      <attachid>128065</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-21 15:52:26 -0800</bug_when>
    <thetext>Created attachment 128065
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561382</commentid>
    <comment_count>33</comment_count>
      <attachid>128065</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-21 16:51:08 -0800</bug_when>
    <thetext>Comment on attachment 128065
Patch for landing

Rejecting attachment 128065 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
ebKit/chromium/third_party/yasm/source/patched-yasm --revision 73761 --non-interactive --force --accept theirs-conflict --ignore-externals&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
47&gt;At revision 73761.

________ running &apos;/usr/bin/python tools/clang/scripts/update.py --mac-only&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;

________ running &apos;/usr/bin/python gyp_webkit&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
Updating webkit projects from gyp files...

Full output: http://queues.webkit.org/results/11556324</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561389</commentid>
    <comment_count>34</comment_count>
      <attachid>128085</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-21 16:59:22 -0800</bug_when>
    <thetext>Created attachment 128085
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561451</commentid>
    <comment_count>35</comment_count>
      <attachid>128085</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-21 18:22:04 -0800</bug_when>
    <thetext>Comment on attachment 128085
Patch for landing

Clearing flags on attachment: 128085

Committed r108428: &lt;http://trac.webkit.org/changeset/108428&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561452</commentid>
    <comment_count>36</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-21 18:22:11 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562471</commentid>
    <comment_count>37</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-22 15:43:57 -0800</bug_when>
    <thetext>mrobinson landed the patch for the GTK supplemental build fix: https://bugs.webkit.org/show_bug.cgi?id=76388

Shall we now try to remove &quot;!defined(LANGUAGE_GOBJECT)&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562496</commentid>
    <comment_count>38</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-22 16:03:43 -0800</bug_when>
    <thetext>&gt; Shall we now try to remove &quot;!defined(LANGUAGE_GOBJECT)&quot;?

Sure.  I&apos;ll do that in a separate bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127475</attachid>
            <date>2012-02-16 17:08:40 -0800</date>
            <delta_ts>2012-02-17 14:11:56 -0800</delta_ts>
            <desc>work in progress</desc>
            <filename>bug-78860-20120216170839.patch</filename>
            <type>text/plain</type>
            <size>14971</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwODAwNCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzIEBACisyMDEyLTAyLTE2ICBBZGFtIEJh
cnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRnJhbWUgYW5kIE5hdmlnYXRvciBz
aG91bGRuJ3QgbmVlZCB0byB3b3JyeSBhYm91dCBHZW9sb2NhdGlvbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg4NjAKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuIChPT1BTISkKKwor
ICAgICAgICAqIE1vZHVsZXMvZ2VvbG9jYXRpb246IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMv
Z2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdG9yR2VvbG9jYXRpb246Ok5hdmlnYXRv
ckdlb2xvY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRvckdlb2xvY2F0aW9uOjp+
TmF2aWdhdG9yR2VvbG9jYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdG9yR2VvbG9j
YXRpb246OnBhZ2VEZXN0cm95ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdG9yR2VvbG9j
YXRpb246OmZyb20pOgorICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdG9yR2VvbG9jYXRpb246Omdl
b2xvY2F0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xv
Y2F0aW9uLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChOYXZpZ2F0b3JH
ZW9sb2NhdGlvbik6CisgICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9s
b2NhdGlvbi5pZGw6IEFkZGVkLgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93Lmg6CisgICAgICAgIChET01X
aW5kb3cpOgorICAgICAgICAqIHBhZ2UvRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWU6OnBhZ2VEZXN0cm95ZWQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OnRyYW5zZmVyQ2hp
bGRGcmFtZVRvTmV3RG9jdW1lbnQpOgorICAgICAgICAqIHBhZ2UvRnJhbWVEZXN0cnVjdGlvbk9i
c2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlcjo6
cGFnZURlc3Ryb3llZCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwYWdlL0ZyYW1l
RGVzdHJ1Y3Rpb25PYnNlcnZlci5oOgorICAgICAgICAoRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVy
KToKKyAgICAgICAgKiBwYWdlL05hdmlnYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiBwYWdlL05hdmlnYXRvci5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChO
YXZpZ2F0b3IpOgorICAgICAgICAqIHBhZ2UvTmF2aWdhdG9yLmlkbDoKKwogMjAxMi0wMi0xNSAg
U2hpbnlhIEthd2FuYWthICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWRkIGFu
IGludGVybmFsIGZsYWcgdG8gYWNjZXB0IG11bHRpcGxlIHNoYWRvdyByb290cyBmb3IgdGhlIHB1
cnBvc2Ugb2YgdGVzdHMuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9u
L05hdmlnYXRvckdlb2xvY2F0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmNwcAkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRp
b24uY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDExLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
CisgKiBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gKKyAqIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTmF2aWdhdG9yR2VvbG9jYXRpb24uaCIKKworCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK05hdmlnYXRvckdlb2xvY2F0aW9uOjpOYXZpZ2F0b3JHZW9s
b2NhdGlvbihGcmFtZSogZnJhbWUpCisgICAgOiBET01XaW5kb3dQcm9wZXJ0eShmcmFtZSkKK3sK
K30KKworTmF2aWdhdG9yR2VvbG9jYXRpb246On5OYXZpZ2F0b3JHZW9sb2NhdGlvbigpCit7Cit9
CisKK05hdmlnYXRvckdlb2xvY2F0aW9uOjpwYWdlRGVzdHJveWVkKCkKK3sKKyAgICBpZiAobV9n
ZW9sb2NhdGlvbikKKyAgICAgICAgbV9nZW9sb2NhdGlvbi0+cmVzZXQoKTsKK30KKworTmF2aWdh
dG9yR2VvbG9jYXRpb24qIE5hdmlnYXRvckdlb2xvY2F0aW9uOjpmcm9tKE5hdmlnYXRvciogbmF2
aWdhdG9yKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAo
Ik5hdmlnYXRvckdlb2xvY2F0aW9uIikpOworICAgIE5hdmlnYXRvckdhbWVwYWQqIHN1cHBsZW1l
bnQgPSBzdGF0aWNfY2FzdDxOYXZpZ2F0b3JHYW1lcGFkKj4oTmF2aWdhdG9yU3VwcGxlbWVudDo6
ZnJvbShuYXZpZ2F0b3IsIG5hbWUpKTsKKyAgICBpZiAoIXN1cHBsZW1lbnQpIHsKKyAgICAgICAg
c3VwcGxlbWVudCA9IG5ldyBOYXZpZ2F0b3JHZW9sb2NhdGlvbihuYXZpZ2F0b3ItPmZyYW1lKCkp
OworICAgICAgICBwcm92aWRlVG8obmF2aWdhdG9yLCBuYW1lLCBhZG9wdFB0cihzdXBwbGVtZW50
KSk7CisgICAgfQorICAgIHJldHVybiBzdXBwbGVtZW50OworfQorCitHZW9sb2NhdGlvbiogTmF2
aWdhdG9yR2VvbG9jYXRpb246Omdlb2xvY2F0aW9uKE5hdmlnYXRvciogbmF2aWdhdG9yKQorewor
ICAgIHJldHVybiBOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6ZnJvbShuYXZpZ2F0b3IpOworfQorCitH
ZW9sb2NhdGlvbiogTmF2aWdhdG9yR2VvbG9jYXRpb246Omdlb2xvY2F0aW9uKCkgY29uc3QKK3sK
KyAgICBpZiAoIW1fZ2VvbG9jYXRpb24pCisgICAgICAgIG1fZ2VvbG9jYXRpb24gPSBHZW9sb2Nh
dGlvbjo6Y3JlYXRlKGZyYW1lKCkpOworICAgIHJldHVybiBtX2dlb2xvY2F0aW9uLmdldCgpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5oCShyZXZp
c2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JH
ZW9sb2NhdGlvbi5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDExLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gKKyAqIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIE5hdmlnYXRvckdlb2xvY2F0aW9uX2gKKyNkZWZpbmUgTmF2aWdhdG9yR2VvbG9j
YXRpb25faAorCisjaW5jbHVkZSAiTmF2aWdhdG9yU3VwcGxlbWVudC5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIEZyYW1lOworY2xhc3MgR2VvbG9jYXRpb247CitjbGFzcyBOYXZp
Z2F0b3I7CisKK2NsYXNzIE5hdmlnYXRvckdlb2xvY2F0aW9uIDogcHVibGljIE5hdmlnYXRvclN1
cHBsZW1lbnQsIHB1YmxpYyBET01XaW5kb3dQcm9wZXJ0eSB7CitwdWJsaWM6CisgICAgdmlydHVh
bCB+TmF2aWdhdG9yR2VvbG9jYXRpb24oKTsKKyAgICBzdGF0aWMgTmF2aWdhdG9yR2VvbG9jYXRp
b24qIGZyb20oTmF2aWdhdG9yKik7CisKKyAgICBzdGF0aWMgR2VvbG9jYXRpb24qIGdlb2xvY2F0
aW9uKE5hdmlnYXRvciopOworICAgIEdlb2xvY2F0aW9uKiBnZW9sb2NhdGlvbigpIGNvbnN0Owor
Citwcml2YXRlOgorICAgIE5hdmlnYXRvckdlb2xvY2F0aW9uKEZyYW1lKik7CisKKyAgICBtdXRh
YmxlIFJlZlB0cjxHZW9sb2NhdGlvbj4gbV9nZW9sb2NhdGlvbjsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIE5hdmlnYXRvckdlb2xvY2F0aW9uX2gKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaWRs
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdh
dG9yR2VvbG9jYXRpb24uaWRsCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5pZGwJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
KyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCisgKi8KKworbW9kdWxlIHdpbmRvdyB7CisKKyAgICBpbnRlcmZhY2UgWworICAgICAg
ICBDb25kaXRpb25hbD1HRU9MT0NBVElPTiwKKyAgICAgICAgU3VwcGxlbWVudGFsPU5hdmlnYXRv
cgorICAgIF0gTmF2aWdhdG9yR2VvbG9jYXRpb24geworICAgICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIEdlb2xvY2F0aW9uIGdlb2xvY2F0aW9uOworICAg
IH07CisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAJKHJldmlzaW9uIDEwNzk3
NykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNzQxLDEzICs3NDEsNiBAQCB2b2lkIERPTVdpbmRvdzo6cGFnZURlc3Ryb3llZCgpCiAjZW5k
aWYKIH0KIAotdm9pZCBET01XaW5kb3c6OnJlc2V0R2VvbG9jYXRpb24oKQotewotICAgIC8vIEdl
b2xvY2F0aW9uIHNob3VsZCBjYW5jZWwgYWN0aXZpdGllcyBhbmQgcGVybWlzc2lvbiByZXF1ZXN0
cyB3aGVuIHRoZSBwYWdlIGlzIGRldGFjaGVkLgotICAgIGlmIChtX25hdmlnYXRvcikKLSAgICAg
ICAgbV9uYXZpZ2F0b3ItPnJlc2V0R2VvbG9jYXRpb24oKTsKLX0KLQogI2lmIEVOQUJMRShJTkRF
WEVEX0RBVEFCQVNFKQogdm9pZCBET01XaW5kb3c6OnNldElEQkZhY3RvcnkoUGFzc1JlZlB0cjxJ
REJGYWN0b3J5PiBpZGJGYWN0b3J5KQogewpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCShy
ZXZpc2lvbiAxMDc5NzcpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMzIsNyArMjMyLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICBTdHJpbmcgY3Jvc3NEb21haW5BY2Nlc3NFcnJvck1lc3NhZ2UoRE9NV2luZG93KiBhY3RpdmVX
aW5kb3cpOwogCiAgICAgICAgIHZvaWQgcGFnZURlc3Ryb3llZCgpOwotICAgICAgICB2b2lkIHJl
c2V0R2VvbG9jYXRpb24oKTsKIAogICAgICAgICB2b2lkIHBvc3RNZXNzYWdlKFBhc3NSZWZQdHI8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBtZXNzYWdlLCBjb25zdCBNZXNzYWdlUG9ydEFycmF5Kiwg
Y29uc3QgU3RyaW5nJiB0YXJnZXRPcmlnaW4sIERPTVdpbmRvdyogc291cmNlLCBFeGNlcHRpb25D
b2RlJik7CiAgICAgICAgIC8vIEZJWE1FOiByZW1vdmUgdGhpcyB3aGVuIHdlIHVwZGF0ZSB0aGUg
T2JqQyBiaW5kaW5ncyAoYnVnICMyODc3NCkuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAkocmV2
aXNpb24gMTA3OTc3KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTY2OSwxMyArNjY5LDE2IEBAIHZvaWQgRnJhbWU6OnBhZ2VEZXN0cm95ZWQoKQog
ICAgICAgICBwYXJlbnQtPmxvYWRlcigpLT5jaGVja0xvYWRDb21wbGV0ZSgpOwogCiAgICAgaWYg
KG1fZG9tV2luZG93KSB7Ci0gICAgICAgIG1fZG9tV2luZG93LT5yZXNldEdlb2xvY2F0aW9uKCk7
CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCiAgICAgICAgIG1fZG9tV2luZG93LT5yZXNldE5v
dGlmaWNhdGlvbnMoKTsKICNlbmRpZgogICAgICAgICBtX2RvbVdpbmRvdy0+cGFnZURlc3Ryb3ll
ZCgpOwogICAgIH0KIAorICAgIEhhc2hTZXQ8RnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyKj46Oml0
ZXJhdG9yIHN0b3AgPSBtX2Rlc3RydWN0aW9uT2JzZXJ2ZXJzLmVuZCgpOworICAgIGZvciAoSGFz
aFNldDxGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIqPjo6aXRlcmF0b3IgaXQgPSBtX2Rlc3RydWN0
aW9uT2JzZXJ2ZXJzLmJlZ2luKCk7IGl0ICE9IHN0b3A7ICsraXQpCisgICAgICAgICgqaXQpLT5w
YWdlRGVzdHJveWVkKCk7CisKICAgICAvLyBGSVhNRTogSXQncyB1bmNsZWFyIGFzIHRvIHdoeSB0
aGlzIGlzIGNhbGxlZCBtb3JlIHRoYW4gb25jZSwgYnV0IGl0IGlzLAogICAgIC8vIHNvIHBhZ2Uo
KSBjb3VsZCBiZSBOVUxMLgogICAgIGlmIChwYWdlKCkgJiYgcGFnZSgpLT5mb2N1c0NvbnRyb2xs
ZXIoKS0+Zm9jdXNlZEZyYW1lKCkgPT0gdGhpcykKQEAgLTcxOCwxNyArNzIxLDE2IEBAIHZvaWQg
RnJhbWU6OnRyYW5zZmVyQ2hpbGRGcmFtZVRvTmV3RG9jdW0KICAgICAgICAgICAgICBtX3BhZ2Ut
PmRlY3JlbWVudEZyYW1lQ291bnQoKTsKICAgICAgICAgfQogCi0gICAgICAgIC8vIEZJWE1FOiBX
ZSBzaG91bGQgaWRlYWxseSBhbGxvdyBleGlzdGluZyBHZW9sb2NhdGlvbiBhY3Rpdml0aWVzIHRv
IGNvbnRpbnVlCi0gICAgICAgIC8vIHdoZW4gdGhlIEdlb2xvY2F0aW9uJ3MgaWZyYW1lIGlzIHJl
cGFyZW50ZWQuCi0gICAgICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NTU1NzcKLSAgICAgICAgLy8gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD01Mjg3NwogICAgICAgICBpZiAobV9kb21XaW5kb3cpIHsKLSAgICAgICAg
ICAgIG1fZG9tV2luZG93LT5yZXNldEdlb2xvY2F0aW9uKCk7CiAjaWYgRU5BQkxFKE5PVElGSUNB
VElPTlMpCiAgICAgICAgICAgICBtX2RvbVdpbmRvdy0+cmVzZXROb3RpZmljYXRpb25zKCk7CiAj
ZW5kaWYKICAgICAgICAgfQogCisgICAgICAgIEhhc2hTZXQ8RnJhbWVEZXN0cnVjdGlvbk9ic2Vy
dmVyKj46Oml0ZXJhdG9yIHN0b3AgPSBtX2Rlc3RydWN0aW9uT2JzZXJ2ZXJzLmVuZCgpOworICAg
ICAgICBmb3IgKEhhc2hTZXQ8RnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyKj46Oml0ZXJhdG9yIGl0
ID0gbV9kZXN0cnVjdGlvbk9ic2VydmVycy5iZWdpbigpOyBpdCAhPSBzdG9wOyArK2l0KQorICAg
ICAgICAgICAgKCppdCktPnBhZ2VEZXN0cm95ZWQoKTsKKwogICAgICAgICBtX3BhZ2UgPSBuZXdQ
YWdlOwogCiAgICAgICAgIGlmIChuZXdQYWdlKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyLmNwcAkocmV2aXNpb24gMTA3OTc3KQorKysg
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC01OCw0ICs1OCw5IEBAIHZvaWQgRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyOjpm
cmFtZURlc3QKICAgICBtX2ZyYW1lID0gMDsKIH0KIAordm9pZCBGcmFtZURlc3RydWN0aW9uT2Jz
ZXJ2ZXI6OnBhZ2VEZXN0cm95ZWQoKQoreworICAgIC8vIFN1YmNsYXNzZXMgc2hvdWxkIG92ZXJy
aWRlIHRoaXMgZnVuY3Rpb24gdG8gaGFuZGxlIHRoaXMgZXZlbnQuCit9CisKIH0KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuaAkocmV2aXNp
b24gMTA3OTc3KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZURlc3RydWN0aW9uT2JzZXJ2
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsMTAgQEAgY2xhc3MgRnJhbWU7CiBjbGFz
cyBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIgewogcHVibGljOgogICAgIGV4cGxpY2l0IEZyYW1l
RGVzdHJ1Y3Rpb25PYnNlcnZlcihGcmFtZSopOworCiAgICAgdmlydHVhbCB2b2lkIGZyYW1lRGVz
dHJveWVkKCk7CisgICAgdmlydHVhbCB2b2lkIHBhZ2VEZXN0cm95ZWQoKTsKKwogICAgIEZyYW1l
KiBmcmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWU7IH0KIAogcHJvdGVjdGVkOgpJbmRleDog
U291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmNwcAkocmV2aXNpb24gMTA3OTc3KQorKysgU291cmNlL1dl
YkNvcmUvcGFnZS9OYXZpZ2F0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NywxMiArNjcsNiBA
QCBOYXZpZ2F0b3JTdXBwbGVtZW50KiBOYXZpZ2F0b3I6OnJlcXVpcmVTCiAgICAgcmV0dXJuIG1f
c3VwcGxpbWVudHMuZ2V0KG5hbWUuaW1wbCgpKTsKIH0KIAotdm9pZCBOYXZpZ2F0b3I6OnJlc2V0
R2VvbG9jYXRpb24oKQotewotICAgIGlmIChtX2dlb2xvY2F0aW9uKQotICAgICAgICBtX2dlb2xv
Y2F0aW9uLT5yZXNldCgpOwotfQotCiAvLyBJZiB0aGlzIGZ1bmN0aW9uIHJldHVybnMgdHJ1ZSwg
d2UgbmVlZCB0byBoaWRlIHRoZSBzdWJzdHJpbmcgIjQuIiB0aGF0IHdvdWxkIG90aGVyd2lzZQog
Ly8gYXBwZWFyIGluIHRoZSBhcHBWZXJzaW9uIHN0cmluZy4gVGhpcyBpcyB0byBhdm9pZCBwcm9i
bGVtcyB3aXRoIG9sZCB2ZXJzaW9ucyBvZiBhCiAvLyBsaWJyYXJ5IGNhbGxlZCBPcGVuQ3ViZSBR
dWlja01lbnUsIHdoaWNoIGFzIG9mIHRoaXMgd3JpdGluZyBpcyBzdGlsbCBiZWluZyB1c2VkIG9u
CkBAIC0xNTEsMTMgKzE0NSw2IEBAIGJvb2wgTmF2aWdhdG9yOjpqYXZhRW5hYmxlZCgpIGNvbnN0
CiAgICAgcmV0dXJuIG1fZnJhbWUtPnNldHRpbmdzKCktPmlzSmF2YUVuYWJsZWQoKTsKIH0KIAot
R2VvbG9jYXRpb24qIE5hdmlnYXRvcjo6Z2VvbG9jYXRpb24oKSBjb25zdAotewotICAgIGlmICgh
bV9nZW9sb2NhdGlvbikKLSAgICAgICAgbV9nZW9sb2NhdGlvbiA9IEdlb2xvY2F0aW9uOjpjcmVh
dGUobV9mcmFtZSk7Ci0gICAgcmV0dXJuIG1fZ2VvbG9jYXRpb24uZ2V0KCk7Ci19Ci0KICNpZiBF
TkFCTEUoUE9JTlRFUl9MT0NLKQogUG9pbnRlckxvY2sqIE5hdmlnYXRvcjo6d2Via2l0UG9pbnRl
cigpIGNvbnN0CiB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmgJKHJldmlzaW9uIDEwNzk3
NykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAg
LTM0LDcgKzM0LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRE9NTWltZVR5cGVBcnJh
eTsKIGNsYXNzIERPTVBsdWdpbkFycmF5OwogY2xhc3MgRnJhbWU7Ci1jbGFzcyBHZW9sb2NhdGlv
bjsKIGNsYXNzIFBvaW50ZXJMb2NrOwogY2xhc3MgUGx1Z2luRGF0YTsKIApAQCAtNDUsOCArNDQs
NiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8TmF2aWdhdG9yPiBjcmVhdGUoRnJh
bWUqIGZyYW1lKSB7IHJldHVybiBhZG9wdFJlZihuZXcgTmF2aWdhdG9yKGZyYW1lKSk7IH0KICAg
ICB2aXJ0dWFsIH5OYXZpZ2F0b3IoKTsKIAotICAgIHZvaWQgcmVzZXRHZW9sb2NhdGlvbigpOwot
CiAgICAgU3RyaW5nIGFwcFZlcnNpb24oKSBjb25zdDsKICAgICBTdHJpbmcgbGFuZ3VhZ2UoKSBj
b25zdDsKICAgICBET01QbHVnaW5BcnJheSogcGx1Z2lucygpIGNvbnN0OwpAQCAtNTYsOCArNTMs
NiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFN0cmluZyB1c2VyQWdlbnQoKSBjb25zdDsKIAot
ICAgIEdlb2xvY2F0aW9uKiBnZW9sb2NhdGlvbigpIGNvbnN0OwotCiAjaWYgRU5BQkxFKFBPSU5U
RVJfTE9DSykKICAgICBQb2ludGVyTG9jayogd2Via2l0UG9pbnRlcigpIGNvbnN0OwogI2VuZGlm
CkBAIC04MCw3ICs3NSw2IEBAIHByaXZhdGU6CiAKICAgICBtdXRhYmxlIFJlZlB0cjxET01QbHVn
aW5BcnJheT4gbV9wbHVnaW5zOwogICAgIG11dGFibGUgUmVmUHRyPERPTU1pbWVUeXBlQXJyYXk+
IG1fbWltZVR5cGVzOwotICAgIG11dGFibGUgUmVmUHRyPEdlb2xvY2F0aW9uPiBtX2dlb2xvY2F0
aW9uOwogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgbXV0YWJsZSBSZWZQdHI8UG9pbnRl
ckxvY2s+IG1fcG9pbnRlcjsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9OYXZp
Z2F0b3IuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmlk
bAkocmV2aXNpb24gMTA3OTc3KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuaWRs
CSh3b3JraW5nIGNvcHkpCkBAIC00MCwxMCArNDAsNiBAQCBtb2R1bGUgd2luZG93IHsKIAogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBvbkxpbmU7CiAKLSNpZiBkZWZpbmVkKEVO
QUJMRV9HRU9MT0NBVElPTikgJiYgRU5BQkxFX0dFT0xPQ0FUSU9OCi0gICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBbVjhFbmFibGVkQXRSdW50aW1lXSBHZW9sb2NhdGlvbiBnZW9sb2NhdGlvbjsK
LSNlbmRpZgotCiAjaWYgZGVmaW5lZChFTkFCTEVfUE9JTlRFUl9MT0NLKSAmJiBFTkFCTEVfUE9J
TlRFUl9MT0NLCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVjhFbmFibGVkQXRSdW50aW1l
XSBQb2ludGVyTG9jayB3ZWJraXRQb2ludGVyOwogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127657</attachid>
            <date>2012-02-17 14:12:00 -0800</date>
            <delta_ts>2012-02-17 15:04:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78860-20120217141159.patch</filename>
            <type>text/plain</type>
            <size>41734</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwODAwNCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUxIEBACisyMDEyLTAyLTE2ICBBZGFtIEJh
cnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRnJhbWUgYW5kIE5hdmlnYXRvciBz
aG91bGRuJ3QgbmVlZCB0byB3b3JyeSBhYm91dCBHZW9sb2NhdGlvbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg4NjAKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIHJlbW92ZXMgc29tZSBH
ZW9sb2NhdGlvbi1zcGVjaWZpYyBjb2RlIGZyb20gRnJhbWUgYW5kCisgICAgICAgIE5hdmlnYXRv
ciBpbiBmYXZvciBvZiBvdXIgbmV3IHN1cHBsZW1lbnRhbCBtb2R1bGUgbWVjaGFuaXNtLiAgV2Un
cmUKKyAgICAgICAgc3RpbGwgcmVmaW5pbmcgdGhlIG1vZHVsZSBzeXN0ZW0sIGJ1dCB3ZSBzZWVt
IHRvIGJlIGNvbnZlcmdpbmcgb24gYQorICAgICAgICBzaW1wbGUgT2JzZXJ2ZXIvU3VwcGxlbWVu
dCBkZXNpZ24uCisKKyAgICAgICAgSW4gYSBmdXR1cmUgcGF0Y2gsIEknbGwgbW92ZSB0aGUgcmVt
YWluaW5nIEdlb2xvY2F0aW9uLXJlbGF0ZWQgZmlsZXMgaW4KKyAgICAgICAgV2ViQ29yZSBpbnRv
IE1vZHVsZXMvZ2VvbG9jYXRpb24uICBUaGlzIHBhdGNoIGFwcGVhcnMgdG8gYmUgdGhlIGZpcnN0
CisgICAgICAgIHBhdGNoIHRoYXQgaW50cm9kdWNlcyBhIG1vZHVsZSB1c2VkIGJ5IGFsbCB0aGUg
dmFyaW91cyBidWlsZCBzeXN0ZW1zLAorICAgICAgICB3aGljaCBpcyB3aHkgdGhlcmUncyBhIGJp
dCBtb3JlIGJ1aWxkIHN5c3RlbSBvdmVyaGVhZCB0aGFuIHVzdWFsLgorCisgICAgICAgICogTW9k
dWxlcy9nZW9sb2NhdGlvbjogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9O
YXZpZ2F0b3JHZW9sb2NhdGlvbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChXZWJDb3JlOjpOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6TmF2aWdhdG9yR2VvbG9jYXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdG9yR2VvbG9jYXRpb246On5OYXZpZ2F0b3JHZW9s
b2NhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6cGFnZURl
c3Ryb3llZCk6CisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6ZnJvbSk6
CisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6Z2VvbG9jYXRpb24pOgor
ICAgICAgICAqIE1vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKE5hdmlnYXRvckdlb2xvY2F0aW9uKToK
KyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmlkbDog
QWRkZWQuCisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaDoKKyAgICAgICAgKERPTVdpbmRvdyk6CisgICAg
ICAgICogcGFnZS9GcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6cGFnZURlc3Ry
b3llZCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6dHJhbnNmZXJDaGlsZEZyYW1lVG9OZXdE
b2N1bWVudCk6CisgICAgICAgICogcGFnZS9GcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyOjpwYWdlRGVzdHJveWVk
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBhZ2UvRnJhbWVEZXN0cnVjdGlvbk9i
c2VydmVyLmg6CisgICAgICAgIChGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIpOgorICAgICAgICAq
IHBhZ2UvTmF2aWdhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBhZ2Uv
TmF2aWdhdG9yLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKE5hdmlnYXRvcik6Cisg
ICAgICAgICogcGFnZS9OYXZpZ2F0b3IuaWRsOgorCiAyMDEyLTAyLTE1ICBTaGlueWEgS2F3YW5h
a2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBBZGQgYW4gaW50ZXJuYWwgZmxh
ZyB0byBhY2NlcHQgbXVsdGlwbGUgc2hhZG93IHJvb3RzIGZvciB0aGUgcHVycG9zZSBvZiB0ZXN0
cy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAxMDc5NzcpCisrKyBTb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIFNF
VChXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJDT1JFX0RJUn0iCisgICAg
IiR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvZ2VvbG9jYXRpb24iCiAgICAgIiR7V0VCQ09SRV9ESVJ9
L2FjY2Vzc2liaWxpdHkiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L2JpbmRpbmdzIgogICAgICIke1dF
QkNPUkVfRElSfS9iaW5kaW5ncy9nZW5lcmljIgpAQCAtODYsNiArODcsNyBAQCBTRVQoV2ViQ29y
ZV9JTkNMVURFX0RJUkVDVE9SSUVTCiApCiAKIFNFVChXZWJDb3JlX0lETF9JTkNMVURFUworICAg
IE1vZHVsZXMvZ2VvbG9jYXRpb24KICAgICBiaW5kaW5ncy9nZW5lcmljCiAgICAgY3NzCiAgICAg
ZG9tCkBAIC0xMDQsNiArMTA2LDggQEAgU0VUKFdlYkNvcmVfSURMX0lOQ0xVREVTCiApCiAKIFNF
VChXZWJDb3JlX0lETF9GSUxFUworICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2Vv
bG9jYXRpb24uaWRsCisKICAgICBjc3MvQ291bnRlci5pZGwKICAgICBjc3MvQ1NTQ2hhcnNldFJ1
bGUuaWRsCiAgICAgY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGwKQEAgLTQwMCw2ICs0MDQsOCBAQCBT
RVQoV2ViQ29yZV9JRExfRklMRVMKICkKIAogU0VUKFdlYkNvcmVfU09VUkNFUworICAgIE1vZHVs
ZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uY3BwCisKICAgICBhY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuY3BwCiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJ
QUdyaWQuY3BwCiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsLmNw
cApJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiAxMDc5NzcpCisr
KyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0y
OCw2ICsyOCw3IEBACiAKIFZQQVRIID0gXAogICAgICQoV2ViQ29yZSkgXAorICAgICQoV2ViQ29y
ZSkvTW9kdWxlcy9nZW9sb2NhdGlvbiBcCiAgICAgJChXZWJDb3JlKS9iaW5kaW5ncy9nZW5lcmlj
IFwKICAgICAkKFdlYkNvcmUpL2JpbmRpbmdzL2pzIFwKICAgICAkKFdlYkNvcmUpL2JpbmRpbmdz
L29iamMgXApAQCAtNTMsNiArNTQsNyBAQCBWUEFUSCA9IFwKICMKIAogQklORElOR19JRExTID0g
XAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlv
bi5pZGwgXAogICAgICQoV2ViQ29yZSkvY3NzL0NTU0NoYXJzZXRSdWxlLmlkbCBcCiAgICAgJChX
ZWJDb3JlKS9jc3MvQ1NTRm9udEZhY2VSdWxlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9jc3MvQ1NT
SW1wb3J0UnVsZS5pZGwgXApJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJp
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQkocmV2aXNp
b24gMTA3OTc3KQorKysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCSh3b3JraW5n
IGNvcHkpCkBAIC04Niw2ICs4Niw3IEBAIFNUWUxFU0hFRVRTX0VNQkVEID0gXAogICAgICQkUFdE
L2Nzcy9tb2JpbGVUaGVtZVF0LmNzcwogCiBJRExfQklORElOR1MgKz0gXAorICAgICQkUFdEL01v
ZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaWRsIFwKICAgICAkJFBXRC9j
c3MvQ291bnRlci5pZGwgXAogICAgICQkUFdEL2Nzcy9DU1NDaGFyc2V0UnVsZS5pZGwgXAogICAg
ICQkUFdEL2Nzcy9DU1NGb250RmFjZVJ1bGUuaWRsIFwKQEAgLTY4Myw2ICs2ODQsNyBAQCBlbHNl
OiBnZW5lcmF0b3IgPSBKUwogZ2VuZXJhdGVCaW5kaW5ncy5jb21tYW5kcyA9IHBlcmwgLUkkJFBX
RC9iaW5kaW5ncy9zY3JpcHRzICQkZ2VuZXJhdGVCaW5kaW5ncy5zY3JpcHQgXAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC0tZGVmaW5lcyBcIiQke0ZFQVRVUkVfREVGSU5FU19KQVZBU0NS
SVBUfVwiIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLWdlbmVyYXRvciAkJGdlbmVy
YXRvciBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS1pbmNsdWRlICQkUFdEL01vZHVs
ZXMvZ2VvbG9jYXRpb24gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0taW5jbHVkZSAk
JFBXRC9kb20gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0taW5jbHVkZSAkJFBXRC9m
aWxlYXBpIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLWluY2x1ZGUgJCRQV0QvaHRt
bCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkocmV2aXNpb24gMTA3OTc3KQorKysgU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHdvcmtpbmcgY29weSkKQEAgLTExLDYgKzExLDcgQEAg
d2ViY29yZV9jcHBmbGFncyArPSBcCiAJLUkkKHNyY2RpcikvU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvaW5jbHVkZSBcCiAJLUkkKHNyY2RpcikvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvaW5jbHVk
ZS9HTFNMQU5HIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZSBcCisJLUkkKHNyY2Rpcikv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbiBcCiAJLUkkKHNyY2RpcikvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eSBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMgXApA
QCAtNzU3LDYgKzc1OCw3IEBAIERlcml2ZWRTb3VyY2VzL0FOR0xFL2dsc2xhbmdfdGFiLmNwcDog
U28KIERlcml2ZWRTb3VyY2VzL0FOR0xFL2dsc2xhbmdfdGFiLmg6IERlcml2ZWRTb3VyY2VzL0FO
R0xFL2dsc2xhbmdfdGFiLmNwcAogCiBJRExfUEFUSCA6PSBcCisgICAgJChXZWJDb3JlKS9Nb2R1
bGVzL2dlb2xvY2F0aW9uIFwKICAgICAkKFdlYkNvcmUpL2JpbmRpbmdzL2pzIFwKICAgICAkKFdl
YkNvcmUpL2NzcyBcCiAgICAgJChXZWJDb3JlKS9kb20gXApJbmRleDogU291cmNlL1dlYkNvcmUv
R05VbWFrZWZpbGUubGlzdC5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCShyZXZpc2lvbiAxMDc5NzcpCisrKyBTb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC02NTIsNiArNjUyLDcgQEAgd2ViY29yZV9i
dWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL1hQYXRoR3JhbW1hci5o
CiAKIGRvbV9iaW5kaW5nX2lkbHMgKz0gXAorCSQoV2ViQ29yZSkvTW9kdWxlcy9nZW9sb2NhdGlv
bi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5pZGwgXAogCSQoV2ViQ29yZSkvY3NzL0NTU0NoYXJzZXRS
dWxlLmlkbCBcCiAJJChXZWJDb3JlKS9jc3MvQ1NTRm9udEZhY2VSdWxlLmlkbCBcCiAJJChXZWJD
b3JlKS9jc3MvQ1NTSW1wb3J0UnVsZS5pZGwgXApAQCAtOTU0LDYgKzk1NSw4IEBAIGRvbV9iaW5k
aW5nX2lkbHMgKz0gXAogCSQoV2ViQ29yZSkveG1sL1hTTFRQcm9jZXNzb3IuaWRsCiAKIHdlYmNv
cmVfc291cmNlcyArPSBcCisJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZp
Z2F0b3JHZW9sb2NhdGlvbi5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRp
b24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaCBcCiAJU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsLmggXAogCVNvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNwcCBcCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9UYXJnZXQucHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkJ
KHJldmlzaW9uIDEwNzk3NykKKysrIFNvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkJKHdvcmtpbmcg
Y29weSkKQEAgLTM0LDYgKzM0LDggQEAgaW5jbHVkZV93ZWJpbnNwZWN0b3IgewogfQogCiBTT1VS
Q0VTICs9IFwKKyAgICBNb2R1bGVzL0dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmNw
cCBcCisKICAgICBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlJbWFnZU1hcExpbmsuY3BwIFwK
ICAgICBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzLmNwcCBcCiAgICAg
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3QuY3BwIFwKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZXhwLmluCShyZXZpc2lvbiAxMDc5NzcpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4
cC5pbgkod29ya2luZyBjb3B5KQpAQCAtNjcyLDYgKzY3Miw3IEBAIF9fWk43V2ViQ29yZTI0RnJh
bWVEZXN0cnVjdGlvbk9ic2VydmVyRDIKIF9fWk43V2ViQ29yZTI0RnJhbWVEZXN0cnVjdGlvbk9i
c2VydmVyQzJFUE5TXzVGcmFtZUUKIF9fWk43V2ViQ29yZTI0RnJhbWVEZXN0cnVjdGlvbk9ic2Vy
dmVyMTJvYnNlcnZlRnJhbWVFUE5TXzVGcmFtZUUKIF9fWk43V2ViQ29yZTI0RnJhbWVEZXN0cnVj
dGlvbk9ic2VydmVyMTRmcmFtZURlc3Ryb3llZEV2CitfX1pON1dlYkNvcmUyNEZyYW1lRGVzdHJ1
Y3Rpb25PYnNlcnZlcjEzcGFnZURlc3Ryb3llZEV2CiBfX1pON1dlYkNvcmUyNGtleUlkZW50aWZp
ZXJGb3JLZXlFdmVudEVQN05TRXZlbnQKIF9fWk43V2ViQ29yZTI0bm90aWZ5SGlzdG9yeUl0ZW1D
aGFuZ2VkRQogX19aTjdXZWJDb3JlMjVIaXN0b3J5UHJvcGVydHlMaXN0V3JpdGVyMTFyZWxlYXNl
RGF0YUV2CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCShyZXZpc2lvbiAxMDc5NzcpCisrKyBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTcyNCw2ICs3MjQsNyBAQAog
ICAgICAgICAgICAgJ01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkLmlkbCcsCiAgICAgICAgICAgICAn
TW9kdWxlcy9nYW1lcGFkL0dhbWVwYWRMaXN0LmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9n
YW1lcGFkL05hdmlnYXRvckdhbWVwYWQuaWRsJywKKyAgICAgICAgICAgICdNb2R1bGVzL2dlb2xv
Y2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9p
bmRleGVkZGIvRE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmlkbCcsCiAgICAgICAgICAgICAnTW9k
dWxlcy9pbnRlbnRzL0RPTVdpbmRvd0ludGVudHMuaWRsJywKICAgICAgICAgICAgICdNb2R1bGVz
L2ludGVudHMvSW50ZW50LmlkbCcsCkBAIC0xMjgzLDYgKzEyODQsOCBAQAogICAgICAgICAgICAg
J01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkTGlzdC5oJywKICAgICAgICAgICAgICdNb2R1bGVzL2dh
bWVwYWQvTmF2aWdhdG9yR2FtZXBhZC5jcHAnLAogICAgICAgICAgICAgJ01vZHVsZXMvZ2FtZXBh
ZC9OYXZpZ2F0b3JHYW1lcGFkLmgnLAorICAgICAgICAgICAgJ01vZHVsZXMvZ2VvbG9jYXRpb24v
TmF2aWdhdG9yR2VvbG9jYXRpb24uY3BwJywKKyAgICAgICAgICAgICdNb2R1bGVzL2dlb2xvY2F0
aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmgnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhl
ZGRiL0RPTVdpbmRvd0luZGV4ZWREYXRhYmFzZS5jcHAnLAogICAgICAgICAgICAgJ01vZHVsZXMv
aW5kZXhlZGRiL0RPTVdpbmRvd0luZGV4ZWREYXRhYmFzZS5oJywKICAgICAgICAgICAgICdNb2R1
bGVzL2ludGVudHMvSW50ZW50LmNwcCcsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBy
aQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnByaQkocmV2aXNpb24gMTA3
OTc3KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkJKHdvcmtpbmcgY29weSkKQEAgLTE4
LDYgKzE4LDcgQEAgV0VCQ09SRV9HRU5FUkFURURfU09VUkNFU19ESVIgPSAkJHtST09UXwogCiBJ
TkNMVURFUEFUSCArPSBcCiAgICAgJCRTT1VSQ0VfRElSIFwKKyAgICAkJFNPVVJDRV9ESVIvTW9k
dWxlcy9nZW9sb2NhdGlvbiBcCiAgICAgJCRTT1VSQ0VfRElSL2FjY2Vzc2liaWxpdHkgXAogICAg
ICQkU09VUkNFX0RJUi9iaW5kaW5ncyBcCiAgICAgJCRTT1VSQ0VfRElSL2JpbmRpbmdzL2dlbmVy
aWMgXApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JH
ZW9sb2NhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9s
b2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmNwcAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSwgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgor
ICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICogTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQor
ICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNICisgKiBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIk5hdmlnYXRvckdlb2xvY2F0aW9uLmgiCisKKyNpbmNsdWRlICJHZW9s
b2NhdGlvbi5oIgorI2luY2x1ZGUgIk5hdmlnYXRvci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK05hdmlnYXRvckdlb2xvY2F0aW9uOjpOYXZpZ2F0b3JHZW9sb2NhdGlvbihGcmFtZSogZnJh
bWUpCisgICAgOiBET01XaW5kb3dQcm9wZXJ0eShmcmFtZSkKK3sKK30KKworTmF2aWdhdG9yR2Vv
bG9jYXRpb246On5OYXZpZ2F0b3JHZW9sb2NhdGlvbigpCit7Cit9CisKK3ZvaWQgTmF2aWdhdG9y
R2VvbG9jYXRpb246OnBhZ2VEZXN0cm95ZWQoKQoreworICAgIC8vIEZJWE1FOiBXZSBzaG91bGQg
aWRlYWxseSBhbGxvdyBleGlzdGluZyBHZW9sb2NhdGlvbiBhY3Rpdml0aWVzIHRvIGNvbnRpbnVl
CisgICAgLy8gd2hlbiB0aGUgR2VvbG9jYXRpb24ncyBpZnJhbWUgaXMgcmVwYXJlbnRlZC4gKEFz
c3VtaW5nIHdlIGNvbnRpbnVlIHRvCisgICAgLy8gc3VwcG9ydCByZXBhcmVudGluZyBpZnJhbWVz
LikKKyAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU1
NTc3CisgICAgLy8gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01
Mjg3NworICAgIGlmIChtX2dlb2xvY2F0aW9uKQorICAgICAgICBtX2dlb2xvY2F0aW9uLT5yZXNl
dCgpOworfQorCitOYXZpZ2F0b3JHZW9sb2NhdGlvbiogTmF2aWdhdG9yR2VvbG9jYXRpb246OmZy
b20oTmF2aWdhdG9yKiBuYXZpZ2F0b3IpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIG5hbWUsICgiTmF2aWdhdG9yR2VvbG9jYXRpb24iKSk7CisgICAgTmF2aWdhdG9y
R2VvbG9jYXRpb24qIHN1cHBsZW1lbnQgPSBzdGF0aWNfY2FzdDxOYXZpZ2F0b3JHZW9sb2NhdGlv
bio+KE5hdmlnYXRvclN1cHBsZW1lbnQ6OmZyb20obmF2aWdhdG9yLCBuYW1lKSk7CisgICAgaWYg
KCFzdXBwbGVtZW50KSB7CisgICAgICAgIHN1cHBsZW1lbnQgPSBuZXcgTmF2aWdhdG9yR2VvbG9j
YXRpb24obmF2aWdhdG9yLT5mcmFtZSgpKTsKKyAgICAgICAgcHJvdmlkZVRvKG5hdmlnYXRvciwg
bmFtZSwgYWRvcHRQdHIoc3VwcGxlbWVudCkpOworICAgIH0KKyAgICByZXR1cm4gc3VwcGxlbWVu
dDsKK30KKworR2VvbG9jYXRpb24qIE5hdmlnYXRvckdlb2xvY2F0aW9uOjpnZW9sb2NhdGlvbihO
YXZpZ2F0b3IqIG5hdmlnYXRvcikKK3sKKyAgICByZXR1cm4gTmF2aWdhdG9yR2VvbG9jYXRpb246
OmZyb20obmF2aWdhdG9yKS0+Z2VvbG9jYXRpb24oKTsKK30KKworR2VvbG9jYXRpb24qIE5hdmln
YXRvckdlb2xvY2F0aW9uOjpnZW9sb2NhdGlvbigpIGNvbnN0Cit7CisgICAgaWYgKCFtX2dlb2xv
Y2F0aW9uKQorICAgICAgICBtX2dlb2xvY2F0aW9uID0gR2VvbG9jYXRpb246OmNyZWF0ZShmcmFt
ZSgpKTsKKyAgICByZXR1cm4gbV9nZW9sb2NhdGlvbi5nZXQoKTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZp
Z2F0b3JHZW9sb2NhdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Z2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaAkocmV2aXNpb24gMCkKKysrIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSwgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgor
ICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICogTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQor
ICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNICisgKiBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBOYXZpZ2F0
b3JHZW9sb2NhdGlvbl9oCisjZGVmaW5lIE5hdmlnYXRvckdlb2xvY2F0aW9uX2gKKworI2luY2x1
ZGUgIkRPTVdpbmRvd1Byb3BlcnR5LmgiCisjaW5jbHVkZSAiTmF2aWdhdG9yU3VwcGxlbWVudC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZyYW1lOworY2xhc3MgR2VvbG9jYXRp
b247CitjbGFzcyBOYXZpZ2F0b3I7CisKK2NsYXNzIE5hdmlnYXRvckdlb2xvY2F0aW9uIDogcHVi
bGljIE5hdmlnYXRvclN1cHBsZW1lbnQsIHB1YmxpYyBET01XaW5kb3dQcm9wZXJ0eSB7CitwdWJs
aWM6CisgICAgdmlydHVhbCB+TmF2aWdhdG9yR2VvbG9jYXRpb24oKTsKKyAgICBzdGF0aWMgTmF2
aWdhdG9yR2VvbG9jYXRpb24qIGZyb20oTmF2aWdhdG9yKik7CisKKyAgICBzdGF0aWMgR2VvbG9j
YXRpb24qIGdlb2xvY2F0aW9uKE5hdmlnYXRvciopOworICAgIEdlb2xvY2F0aW9uKiBnZW9sb2Nh
dGlvbigpIGNvbnN0OworCitwcml2YXRlOgorICAgIE5hdmlnYXRvckdlb2xvY2F0aW9uKEZyYW1l
Kik7CisKKyAgICB2aXJ0dWFsIHZvaWQgcGFnZURlc3Ryb3llZCgpIE9WRVJSSURFOworCisgICAg
bXV0YWJsZSBSZWZQdHI8R2VvbG9jYXRpb24+IG1fZ2VvbG9jYXRpb247Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBOYXZpZ2F0b3JHZW9sb2NhdGlvbl9oCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9u
LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL05h
dmlnYXRvckdlb2xvY2F0aW9uLmlkbAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaWRsCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDI5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC
LiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgorICovCisKK21vZHVsZSB3aW5kb3cgeworCisgICAgaW50ZXJmYWNlIFsKKyAg
ICAgICAgQ29uZGl0aW9uYWw9R0VPTE9DQVRJT04sCisgICAgICAgIFN1cHBsZW1lbnRhbD1OYXZp
Z2F0b3IKKyAgICBdIE5hdmlnYXRvckdlb2xvY2F0aW9uIHsKKyAgICAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBbVjhFbmFibGVkQXRSdW50aW1lXSBHZW9sb2NhdGlvbiBnZW9sb2NhdGlvbjsK
KyAgICB9OworCit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAko
cmV2aXNpb24gMTA3OTc3KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5n
eXAJKHdvcmtpbmcgY29weSkKQEAgLTUyLDYgKzUyLDcgQEAKICAgICAgICcuLi8nLAogICAgICAg
Jy4uLy4uJywKICAgICAgICcuLi9Nb2R1bGVzL2dhbWVwYWQnLAorICAgICAgJy4uL01vZHVsZXMv
Z2VvbG9jYXRpb24nLAogICAgICAgJy4uL01vZHVsZXMvaW50ZW50cycsCiAgICAgICAnLi4vTW9k
dWxlcy9pbmRleGVkZGInLAogICAgICAgJy4uL2FjY2Vzc2liaWxpdHknLApJbmRleDogU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHJldmlzaW9uIDEwNzk3
NykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNDAwMyw2ICsyNDAwMywyMiBAQAogCQkJPC9GaWxlPgogCQk8L0ZpbHRl
cj4KIAkJPEZpbHRlcgorCQkJTmFtZT0iTW9kdWxlcyIKKwkJCT4KKwkJCTxGaWx0ZXIKKwkJCQlO
YW1lPSJnZW9sb2NhdGlvbiIKKwkJCQk+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxNb2R1bGVzXGdlb2xvY2F0aW9uXE5hdmlnYXRvckdlb2xvY2F0aW9uLmNwcCIKKwkJCQkJPgor
CQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcZ2Vv
bG9jYXRpb25cTmF2aWdhdG9yR2VvbG9jYXRpb24uaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJ
CTwvRmlsdGVyPgorCQk8L0ZpbHRlcj4KKwkJPEZpbHRlcgogCQkJTmFtZT0iYWNjZXNzaWJpbGl0
eSIKIAkJCT4KIAkJCTxGaWxlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlQ29tbW9uLnZzcHJvcHMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZUNvbW1vbi52c3Byb3BzCShyZXZpc2lvbiAxMDc5NzcpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlQ29tbW9uLnZzcHJvcHMJKHdvcmtpbmcg
Y29weSkKQEAgLTcsNyArNyw3IEBACiAJPgogCTxUb29sCiAJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiCi0JCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiZxdW90OyQoUHJvamVjdERpciku
LiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYWNjZXNzaWJpbGl0eSZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5cYWNjZXNzaWJpbGl0eVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXGJyaWRnZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYnJpZGdlXGMmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXGJyaWRnZVxqc2MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4u
XGNzcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cZWRpdGluZyZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpLi5cZmlsZWFwaSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccmVuZGVyaW5n
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxyZW5kZXJpbmdcbWF0aG1sJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcikuLlxyZW5kZXJpbmdcc3R5bGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXHJlbmRlcmluZ1xzdmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJpbmRpbmdzJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxiaW5kaW5nc1xnZW5lcmljJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcikuLlxiaW5kaW5nc1xqcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYmlu
ZGluZ3NcanNcc3BlY2lhbGl6YXRpb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGRvbSZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cZG9tXGRlZmF1bHQmcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKS4uXGhpc3RvcnkmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGh0bWwmcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGh0bWxcY2FudmFzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cikuLlxodG1sXHBhcnNlciZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5caHRtbFxzaGFkb3cm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGluc3BlY3RvciZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5cbG9hZGVyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxsb2FkZXJcYXBwY2Fj
aGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGxvYWRlclxhcmNoaXZlJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcikuLlxsb2FkZXJcYXJjaGl2ZVxjZiZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpLi5cbG9hZGVyXGNhY2hlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxsb2FkZXJcaWNv
biZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbWF0aG1sJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcikuLlxub3RpZmljYXRpb25zJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwYWdlJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwYWdlXGFuaW1hdGlvbiZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpLi5ccGFnZVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3Jt
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxhbmltYXRpb24mcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXG1vY2smcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXHBsYXRmb3JtXHNxbCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cd2lu
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxuZXR3b3JrJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxuZXR3b3JrXHdpbiZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5ccGxhdGZvcm1cY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3Jt
XGdyYXBoaWNzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1xj
YSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3NcZmlsdGVycyZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3NcZmlsdGVyc1xhcm0m
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzXG9wZW50eXBlJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1x0cmFuc2Zvcm1zJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVx0ZXh0JnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxwbGF0Zm9ybVx0ZXh0XHRyYW5zY29kZXImcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5c
eG1sJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlx4bWxccGFyc2VyJnF1b3Q7OyZxdW90OyQo
Q29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcV2ViQ29yZVxEZXJpdmVkU291cmNlcyZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpLi5ccGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5c
cGx1Z2luc1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2Z1xhbmltYXRpb24mcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2Z1xncmFwaGljcyZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5cc3ZnXHByb3BlcnRpZXMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2Z1xn
cmFwaGljc1xmaWx0ZXJzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxzdmcmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXHRlc3RpbmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHdt
bCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cc3RvcmFnZSZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5cd2Vic29ja2V0cyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cd29ya2VycyZx
dW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcaW5jbHVkZSZxdW90OzsmcXVvdDsk
KENvbmZpZ3VyYXRpb25CdWlsZERpcilcaW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZxdW90OyQoQ29u
ZmlndXJhdGlvbkJ1aWxkRGlyKVxpbmNsdWRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQo
Q29uZmlndXJhdGlvbkJ1aWxkRGlyKVxpbmNsdWRlXHByaXZhdGVcSmF2YVNjcmlwdENvcmUmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXEZvcndhcmRpbmdIZWFkZXJzJnF1b3Q7OyZxdW90OyQo
V2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVz
RGlyKVxpbmNsdWRlXHByaXZhdGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGlu
Y2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmll
c0RpcilcaW5jbHVkZVxwdGhyZWFkcyZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0Rpcilc
aW5jbHVkZVxzcWxpdGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVc
SmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVc
emxpYiZxdW90OyIKKwkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iJnF1b3Q7JChQcm9q
ZWN0RGlyKS4uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxNb2R1bGVzXGdlb2xvY2F0aW9u
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxhY2Nlc3NpYmlsaXR5JnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcikuLlxhY2Nlc3NpYmlsaXR5XHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
Li5cYnJpZGdlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxicmlkZ2VcYyZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpLi5cYnJpZGdlXGpzYyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5c
Y3NzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxlZGl0aW5nJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxmaWxlYXBpJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxyZW5kZXJpbmcm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHJlbmRlcmluZ1xtYXRobWwmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKS4uXHJlbmRlcmluZ1xzdHlsZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
Li5ccmVuZGVyaW5nXHN2ZyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYmluZGluZ3MmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJpbmRpbmdzXGdlbmVyaWMmcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKS4uXGJpbmRpbmdzXGpzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxiaW5k
aW5nc1xqc1xzcGVjaWFsaXphdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cZG9tJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxkb21cZGVmYXVsdCZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5caGlzdG9yeSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5caHRtbCZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpLi5caHRtbFxjYW52YXMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXGh0bWxccGFyc2VyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxodG1sXHNoYWRvdyZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpLi5caW5zcGVjdG9yJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcikuLlxsb2FkZXImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGxvYWRlclxhcHBjYWNo
ZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbG9hZGVyXGFyY2hpdmUmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKS4uXGxvYWRlclxhcmNoaXZlXGNmJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cikuLlxsb2FkZXJcY2FjaGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGxvYWRlclxpY29u
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxtYXRobWwmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKS4uXG5vdGlmaWNhdGlvbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBhZ2UmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBhZ2VcYW5pbWF0aW9uJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxwYWdlXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm0m
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGFuaW1hdGlvbiZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cbW9jayZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
Li5ccGxhdGZvcm1cc3FsJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVx3aW4m
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXG5ldHdvcmsmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXG5ldHdvcmtcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcikuLlxwbGF0Zm9ybVxjZiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1c
Z3JhcGhpY3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzXGNh
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1xmaWx0ZXJzJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1xmaWx0ZXJzXGFybSZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3Ncb3BlbnR5cGUmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzXHRyYW5zZm9ybXMmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXHRleHQmcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKS4uXHBsYXRmb3JtXHRleHRcdHJhbnNjb2RlciZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3Ncd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlx4
bWwmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHhtbFxwYXJzZXImcXVvdDs7JnF1b3Q7JChD
b25maWd1cmF0aW9uQnVpbGREaXIpXG9ialxXZWJDb3JlXERlcml2ZWRTb3VyY2VzJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcikuLlxwbHVnaW5zJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxw
bHVnaW5zXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cc3ZnXGFuaW1hdGlvbiZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpLi5cc3ZnXGdyYXBoaWNzJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcikuLlxzdmdccHJvcGVydGllcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cc3ZnXGdy
YXBoaWNzXGZpbHRlcnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2ZyZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpLi5cdGVzdGluZyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cd21s
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxzdG9yYWdlJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcikuLlx3ZWJzb2NrZXRzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlx3b3JrZXJzJnF1
b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxpbmNsdWRlJnF1b3Q7OyZxdW90OyQo
Q29uZmlndXJhdGlvbkJ1aWxkRGlyKVxpbmNsdWRlXHByaXZhdGUmcXVvdDs7JnF1b3Q7JChDb25m
aWd1cmF0aW9uQnVpbGREaXIpXGluY2x1ZGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChD
b25maWd1cmF0aW9uQnVpbGREaXIpXGluY2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0Q29yZSZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpLi5cRm9yd2FyZGluZ0hlYWRlcnMmcXVvdDs7JnF1b3Q7JChX
ZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNE
aXIpXGluY2x1ZGVccHJpdmF0ZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5j
bHVkZVxwcml2YXRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVz
RGlyKVxpbmNsdWRlXHB0aHJlYWRzJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxp
bmNsdWRlXHNxbGl0ZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZVxK
YXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZVx6
bGliJnF1b3Q7IgogCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iX19XSU4zMl9fO0RJU0FCTEVf
M0RfUkVOREVSSU5HO1dFQkNPUkVfQ09OVEVYVF9NRU5VUyIKIAkJVXNlUHJlY29tcGlsZWRIZWFk
ZXI9IjIiCiAJCVByZWNvbXBpbGVkSGVhZGVyVGhyb3VnaD0iV2ViQ29yZVByZWZpeC5oIgpJbmRl
eDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkocmV2aXNpb24gMTA3OTc3KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0zMzE0LDYgKzMzMTQsOCBAQAogCQk5
NzA1OTk3QTEwN0Q5NzUyMDBBNTBBN0MgLyogUG9saWN5Q2hlY2tlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcwNTk5NzYxMDdEOTc1MjAwQTUwQTdD
IC8qIFBvbGljeUNoZWNrZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk5NzBCNzI4QTE0NEZGQUM2MDBGMDBBMzcgLyogRXZlbnRJbnRlcmZhY2Vz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzBCNzI4
OTE0NEZGQUM2MDBGMDBBMzcgLyogRXZlbnRJbnRlcmZhY2VzLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTcwQjcyQTYxNDUwMDhFQjAwRjAwQTM3
IC8qIEV2ZW50SGVhZGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTcwQjcyQTUxNDUwMDhFQjAwRjAwQTM3IC8qIEV2ZW50SGVhZGVycy5oICovOyB9
OworCQk5NzExNDYwMzE0RUYwMDlBMDA2NzRGRDkgLyogTmF2aWdhdG9yR2VvbG9jYXRpb24uY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcxMTQ2MDAx
NEVGMDA5QTAwNjc0RkQ5IC8qIE5hdmlnYXRvckdlb2xvY2F0aW9uLmNwcCAqLzsgfTsKKwkJOTcx
MTQ2MDQxNEVGMDA5QTAwNjc0RkQ5IC8qIE5hdmlnYXRvckdlb2xvY2F0aW9uLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzExNDYwMTE0RUYwMDlBMDA2
NzRGRDkgLyogTmF2aWdhdG9yR2VvbG9jYXRpb24uaCAqLzsgfTsKIAkJOTcyMDVBQUYxMjM5MjhD
QTAwQjE3MzgwIC8qIEZUUERpcmVjdG9yeURvY3VtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MjA1QUFEMTIzOTI4Q0EwMEIxNzM4MCAvKiBG
VFBEaXJlY3RvcnlEb2N1bWVudC5jcHAgKi87IH07CiAJCTk3MjA1QUIwMTIzOTI4Q0EwMEIxNzM4
MCAvKiBGVFBEaXJlY3RvcnlEb2N1bWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTcyMDVBQUUxMjM5MjhDQTAwQjE3MzgwIC8qIEZUUERpcmVjdG9y
eURvY3VtZW50LmggKi87IH07CiAJCTk3MjA1QUI1MTIzOTI5MTAwMEIxNzM4MCAvKiBJbWFnZURv
Y3VtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDk3MjA1QUIxMTIzOTI5MTAwMEIxNzM4MCAvKiBJbWFnZURvY3VtZW50LmNwcCAqLzsgfTsKQEAg
LTczODMsOSArNzM4NSw5IEBACiAJCTFBRkUxMTk4MENCRkZDQzQwMDMwMTdGQSAvKiBKU1NRTFJl
c3VsdFNldFJvd0xpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTUUxS
ZXN1bHRTZXRSb3dMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDMjY0OTc5
MEQ3RTI0OEEwMEJEMTBGMiAvKiBEb2N1bWVudExvYWRlck1hYy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEb2N1bWVudExvYWRlck1hYy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTFDMjY0OTdCMEQ3RTI0RUMwMEJEMTBGMiAvKiBQYWdlTWFjLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhZ2VNYWMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxQzQzNUNEMzE0RTg1NDRGMDA0RTEwRUEgLyogSW5z
cGVjdG9yLmpzb24gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0Lmpzb247IHBhdGggPSBJbnNwZWN0b3IuanNvbjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJMUM0MzVDRDQxNEU4NTQ1QjAwNEUxMEVBIC8qIEluc3BlY3Rvci0wLjEuanNv
biAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQu
anNvbjsgcGF0aCA9ICJJbnNwZWN0b3ItMC4xLmpzb24iOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQkxQzQzNUNENTE0RTg1NDVCMDA0RTEwRUEgLyogSW5zcGVjdG9yLTEuMC5qc29uICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5qc29u
OyBwYXRoID0gIkluc3BlY3Rvci0xLjAuanNvbiI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTFDNDM1Q0QzMTRFODU0NEYwMDRFMTBFQSAvKiBJbnNwZWN0b3IuanNvbiAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBJbnNw
ZWN0b3IuanNvbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM0MzVDRDQxNEU4NTQ1
QjAwNEUxMEVBIC8qIEluc3BlY3Rvci0wLjEuanNvbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSAiSW5zcGVjdG9yLTAuMS5qc29u
Ijsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM0MzVDRDUxNEU4NTQ1QjAwNEUxMEVB
IC8qIEluc3BlY3Rvci0xLjAuanNvbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSAiSW5zcGVjdG9yLTEuMC5qc29uIjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUM0QzhFRkYwQUQ4NUQ4NzAwOTQ3NUNFIC8qIERlbGV0
ZUJ1dHRvbkNvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gRGVsZXRlQnV0dG9uQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRh
YldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQkxQzRDOEYwMDBBRDg1RDg3MDA5NDc1Q0Ug
LyogRGVsZXRlQnV0dG9uQ29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBEZWxldGVCdXR0b25Db250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRh
YldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQkxQzRDOEY2MzBBRDg2NTVEMDA5NDc1Q0Ug
LyogRGVsZXRlQnV0dG9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IERlbGV0ZUJ1dHRvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsg
dXNlc1RhYnMgPSAwOyB9OwpAQCAtMTAxNzQsNiArMTAxNzYsOSBAQAogCQk5NzA1OTk3NjEwN0Q5
NzUyMDBBNTBBN0MgLyogUG9saWN5Q2hlY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBQb2xpY3lDaGVja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3
MEI3Mjg5MTQ0RkZBQzYwMEYwMEEzNyAvKiBFdmVudEludGVyZmFjZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRXZlbnRJbnRlcmZhY2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTk3MEI3MkE1MTQ1MDA4RUIwMEYwMEEzNyAvKiBFdmVudEhlYWRlcnMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXZlbnRIZWFkZXJzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTk3MTE0NjAwMTRFRjAwOUEwMDY3NEZEOSAvKiBOYXZpZ2F0
b3JHZW9sb2NhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBO
YXZpZ2F0b3JHZW9sb2NhdGlvbi5jcHA7IHBhdGggPSBNb2R1bGVzL2dlb2xvY2F0aW9uL05hdmln
YXRvckdlb2xvY2F0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTcxMTQ2
MDExNEVGMDA5QTAwNjc0RkQ5IC8qIE5hdmlnYXRvckdlb2xvY2F0aW9uLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE5hdmlnYXRvckdlb2xvY2F0aW9uLmg7IHBhdGggPSBNb2R1
bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTk3MTE0NjAyMTRFRjAwOUEwMDY3NEZEOSAvKiBOYXZpZ2F0b3JHZW9sb2Nh
dGlvbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gTmF2aWdhdG9yR2VvbG9jYXRpb24uaWRs
OyBwYXRoID0gTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3MjA1QUFEMTIzOTI4Q0EwMEIxNzM4MCAvKiBG
VFBEaXJlY3RvcnlEb2N1bWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBGVFBEaXJlY3RvcnlEb2N1bWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTk3MjA1QUFFMTIzOTI4Q0EwMEIxNzM4MCAvKiBGVFBEaXJlY3RvcnlEb2N1bWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGVFBEaXJlY3RvcnlEb2N1bWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzIwNUFCMTEyMzkyOTEwMDBCMTczODAgLyog
SW1hZ2VEb2N1bWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJ
bWFnZURvY3VtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzNDUzLDYg
KzEzNDU4LDcgQEAKIAkJCQlFREVDOTgwMjBBRUQ3RTE3MDA1OTEzN0YgLyogV2ViQ29yZVByZWZp
eC5oICovLAogCQkJCTkzMDcwNjEzMDlFMENBODIwMEIxN0ZFNCAvKiBEZXJpdmVkU291cmNlcy5t
YWtlICovLAogCQkJCTkzRjE5QjE5MDgyNDVFNTkwMDFFOUFCQyAvKiBJbmZvLnBsaXN0ICovLAor
CQkJCTk3MTE0NUZFMTRFRjAwNkUwMDY3NEZEOSAvKiBNb2R1bGVzICovLAogCQkJCTI5QTgxMjA0
MEZCQjlCNDEwMDUxMDI5MyAvKiBhY2Nlc3NpYmlsaXR5ICovLAogCQkJCUJDMUEzNzkwMDk3QzZG
OTcwMDE5RjNEOCAvKiBiaW5kaW5ncyAqLywKIAkJCQkxQTU2OUNDNDBEN0UyQjYwMDA3QzM5ODMg
LyogYnJpZGdlICovLApAQCAtMTcwNzIsNiArMTcwNzgsMjQgQEAKIAkJCXRhYldpZHRoID0gNDsK
IAkJCXVzZXNUYWJzID0gMDsKIAkJfTsKKwkJOTcxMTQ1RkUxNEVGMDA2RTAwNjc0RkQ5IC8qIE1v
ZHVsZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTk3
MTE0NUZGMTRFRjAwNzkwMDY3NEZEOSAvKiBnZW9sb2NhdGlvbiAqLywKKwkJCSk7CisJCQluYW1l
ID0gTW9kdWxlczsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CisJCTk3MTE0NUZG
MTRFRjAwNzkwMDY3NEZEOSAvKiBnZW9sb2NhdGlvbiAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3Vw
OworCQkJY2hpbGRyZW4gPSAoCisJCQkJOTcxMTQ2MDAxNEVGMDA5QTAwNjc0RkQ5IC8qIE5hdmln
YXRvckdlb2xvY2F0aW9uLmNwcCAqLywKKwkJCQk5NzExNDYwMTE0RUYwMDlBMDA2NzRGRDkgLyog
TmF2aWdhdG9yR2VvbG9jYXRpb24uaCAqLywKKwkJCQk5NzExNDYwMjE0RUYwMDlBMDA2NzRGRDkg
LyogTmF2aWdhdG9yR2VvbG9jYXRpb24uaWRsICovLAorCQkJKTsKKwkJCW5hbWUgPSBnZW9sb2Nh
dGlvbjsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTk3NkQ2QzU3MTIyQjhB
MTgwMDFGRDFGNyAvKiBmaWxlYXBpICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGls
ZHJlbiA9ICgKQEAgLTI0Mjc5LDYgKzI0MzAzLDcgQEAKIAkJCQlCNkQ5RDI3QjE0RUFDMDg2MDA5
MEQ3NUUgLyogSlNGb2N1c0V2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlDNTk4OTA1NzE0RTlD
MjgwMDBFOEQxOEIgLyogUGFzdGVib2FyZFN0cmF0ZWd5LmggaW4gSGVhZGVycyAqLywKIAkJCQlD
NTk4OTA1ODE0RTlDMjk5MDBFOEQxOEIgLyogUGxhdGZvcm1QYXN0ZWJvYXJkLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk5NzExNDYwNDE0RUYwMDlBMDA2NzRGRDkgLyogTmF2aWdhdG9yR2VvbG9jYXRp
b24uaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHBy
b2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjcyMjQsNiArMjcyNDksNyBAQAogCQkJCUI2RDlEMjM2
MTRFQUJEMjYwMDkwRDc1RSAvKiBGb2N1c0V2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUI2
RDlEMjdDMTRFQUMwODYwMDkwRDc1RSAvKiBKU0ZvY3VzRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQzU5ODkwMkUxNEU5QjBGODAwRThEMThCIC8qIFBsYXRmb3JtUGFzdGVib2FyZE1hYy5t
bSBpbiBTb3VyY2VzICovLAorCQkJCTk3MTE0NjAzMTRFRjAwOUEwMDY3NEZEOSAvKiBOYXZpZ2F0
b3JHZW9sb2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5jcHAJKHJldmlzaW9uIDEwNzk3NykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgwLDYgKzQ4MCwyMSBAQCB2b2lkIERPTVdpbmRv
dzo6ZnJhbWVEZXN0cm95ZWQoKQogICAgIGNsZWFyKCk7CiB9CiAKK3ZvaWQgRE9NV2luZG93Ojpw
YWdlRGVzdHJveWVkKCkKK3sKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lV2lu
ZG93RGlzY2FyZGVkKG1fZnJhbWUsIHRoaXMpOworCisjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMp
CisgICAgLy8gQ2xlYXJpbmcgTm90aWZpY2F0aW9ucyByZXF1ZXN0cyBpbnZvbHZlcyBhY2Nlc3Np
bmcgdGhlIGNsaWVudCBzbyBpdCBtdXN0IGJlIGRvbmUKKyAgICAvLyBiZWZvcmUgdGhlIGZyYW1l
IGlzIGRldGFjaGVkLgorICAgIHJlc2V0Tm90aWZpY2F0aW9ucygpOworI2VuZGlmCisKKyAgICBI
YXNoU2V0PERPTVdpbmRvd1Byb3BlcnR5Kj46Oml0ZXJhdG9yIHN0b3AgPSBtX3Byb3BlcnRpZXMu
ZW5kKCk7CisgICAgZm9yIChIYXNoU2V0PERPTVdpbmRvd1Byb3BlcnR5Kj46Oml0ZXJhdG9yIGl0
ID0gbV9wcm9wZXJ0aWVzLmJlZ2luKCk7IGl0ICE9IHN0b3A7ICsraXQpCisgICAgICAgICgqaXQp
LT5wYWdlRGVzdHJveWVkKCk7Cit9CisKIHZvaWQgRE9NV2luZG93OjpyZWdpc3RlclByb3BlcnR5
KERPTVdpbmRvd1Byb3BlcnR5KiBwcm9wZXJ0eSkKIHsKICAgICBtX3Byb3BlcnRpZXMuYWRkKHBy
b3BlcnR5KTsKQEAgLTczMSwyMyArNzQ2LDYgQEAgdm9pZCBET01XaW5kb3c6OnJlc2V0Tm90aWZp
Y2F0aW9ucygpCiB9CiAjZW5kaWYKIAotdm9pZCBET01XaW5kb3c6OnBhZ2VEZXN0cm95ZWQoKQot
ewotICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVXaW5kb3dEaXNjYXJkZWQobV9m
cmFtZSwgdGhpcyk7Ci0jaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi0gICAgLy8gQ2xlYXJpbmcg
Tm90aWZpY2F0aW9ucyByZXF1ZXN0cyBpbnZvbHZlcyBhY2Nlc3NpbmcgdGhlIGNsaWVudCBzbyBp
dCBtdXN0IGJlIGRvbmUKLSAgICAvLyBiZWZvcmUgdGhlIGZyYW1lIGlzIGRldGFjaGVkLgotICAg
IHJlc2V0Tm90aWZpY2F0aW9ucygpOwotI2VuZGlmCi19Ci0KLXZvaWQgRE9NV2luZG93OjpyZXNl
dEdlb2xvY2F0aW9uKCkKLXsKLSAgICAvLyBHZW9sb2NhdGlvbiBzaG91bGQgY2FuY2VsIGFjdGl2
aXRpZXMgYW5kIHBlcm1pc3Npb24gcmVxdWVzdHMgd2hlbiB0aGUgcGFnZSBpcyBkZXRhY2hlZC4K
LSAgICBpZiAobV9uYXZpZ2F0b3IpCi0gICAgICAgIG1fbmF2aWdhdG9yLT5yZXNldEdlb2xvY2F0
aW9uKCk7Ci19Ci0KICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKIHZvaWQgRE9NV2luZG93
OjpzZXRJREJGYWN0b3J5KFBhc3NSZWZQdHI8SURCRmFjdG9yeT4gaWRiRmFjdG9yeSkKIHsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAkocmV2aXNpb24gMTA3OTc3KQorKysgU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuaAkod29ya2luZyBjb3B5KQpAQCAtOTIsOCArOTIsNiBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgdmlydHVhbCBET01XaW5kb3cqIHRvRE9NV2lu
ZG93KCk7CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIGZyYW1lRGVzdHJveWVkKCkgT1ZFUlJJREU7
Ci0KICAgICAgICAgdm9pZCByZWdpc3RlclByb3BlcnR5KERPTVdpbmRvd1Byb3BlcnR5Kik7CiAg
ICAgICAgIHZvaWQgdW5yZWdpc3RlclByb3BlcnR5KERPTVdpbmRvd1Byb3BlcnR5Kik7CiAKQEAg
LTIzMSw5ICsyMjksNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgcHJpbnRF
cnJvck1lc3NhZ2UoY29uc3QgU3RyaW5nJik7CiAgICAgICAgIFN0cmluZyBjcm9zc0RvbWFpbkFj
Y2Vzc0Vycm9yTWVzc2FnZShET01XaW5kb3cqIGFjdGl2ZVdpbmRvdyk7CiAKLSAgICAgICAgdm9p
ZCBwYWdlRGVzdHJveWVkKCk7Ci0gICAgICAgIHZvaWQgcmVzZXRHZW9sb2NhdGlvbigpOwotCiAg
ICAgICAgIHZvaWQgcG9zdE1lc3NhZ2UoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+
IG1lc3NhZ2UsIGNvbnN0IE1lc3NhZ2VQb3J0QXJyYXkqLCBjb25zdCBTdHJpbmcmIHRhcmdldE9y
aWdpbiwgRE9NV2luZG93KiBzb3VyY2UsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICAgICAgLy8gRklY
TUU6IHJlbW92ZSB0aGlzIHdoZW4gd2UgdXBkYXRlIHRoZSBPYmpDIGJpbmRpbmdzIChidWcgIzI4
Nzc0KS4KICAgICAgICAgdm9pZCBwb3N0TWVzc2FnZShQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZT4gbWVzc2FnZSwgTWVzc2FnZVBvcnQqLCBjb25zdCBTdHJpbmcmIHRhcmdldE9yaWdp
biwgRE9NV2luZG93KiBzb3VyY2UsIEV4Y2VwdGlvbkNvZGUmKTsKQEAgLTQxOSw2ICs0MTQsOSBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgcHJpdmF0ZToKICAgICAgICAgZXhwbGljaXQgRE9N
V2luZG93KEZyYW1lKik7CiAKKyAgICAgICAgdmlydHVhbCB2b2lkIGZyYW1lRGVzdHJveWVkKCkg
T1ZFUlJJREU7CisgICAgICAgIHZpcnR1YWwgdm9pZCBwYWdlRGVzdHJveWVkKCkgT1ZFUlJJREU7
CisKICAgICAgICAgdmlydHVhbCB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgeyByZWYoKTsgfQogICAg
ICAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIHsgZGVyZWYoKTsgfQogICAgICAg
ICB2aXJ0dWFsIEV2ZW50VGFyZ2V0RGF0YSogZXZlbnRUYXJnZXREYXRhKCk7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd1Byb3BlcnR5LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd1Byb3BlcnR5LmNwcAkocmV2aXNpb24gMTA3OTc3KQor
KysgU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3dQcm9wZXJ0eS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQ5LDQgKzQ5LDkgQEAgdm9pZCBET01XaW5kb3dQcm9wZXJ0eTo6ZGlzY29ubmVjdEZy
YW1lKAogICAgIG1fZnJhbWUgPSAwOwogfQogCit2b2lkIERPTVdpbmRvd1Byb3BlcnR5OjpwYWdl
RGVzdHJveWVkKCkKK3sKKyAgICAvLyBTdWJjbGFzc2VzIHNob3VsZCBvdmVycmlkZSB0aGlzIGZ1
bmN0aW9uIHRvIGhhbmRsZSB0aGlzIG5vdGlmaWNhdGlvbi4KK30KKwogfQpJbmRleDogU291cmNl
L1dlYkNvcmUvcGFnZS9ET01XaW5kb3dQcm9wZXJ0eS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvRE9NV2luZG93UHJvcGVydHkuaAkocmV2aXNpb24gMTA3OTc3KQorKysgU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3dQcm9wZXJ0eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
Myw3ICszMyw5IEBAIGNsYXNzIEZyYW1lOwogY2xhc3MgRE9NV2luZG93UHJvcGVydHkgewogcHVi
bGljOgogICAgIGV4cGxpY2l0IERPTVdpbmRvd1Byb3BlcnR5KEZyYW1lKik7CisKICAgICB2aXJ0
dWFsIHZvaWQgZGlzY29ubmVjdEZyYW1lKCk7CisgICAgdmlydHVhbCB2b2lkIHBhZ2VEZXN0cm95
ZWQoKTsKIAogICAgIEZyYW1lKiBmcmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWU7IH0KIApJ
bmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAJKHJldmlzaW9uIDEwNzk3NykKKysrIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NjgsMTMgKzY2OCwxNCBAQCB2
b2lkIEZyYW1lOjpwYWdlRGVzdHJveWVkKCkKICAgICBpZiAoRnJhbWUqIHBhcmVudCA9IHRyZWUo
KS0+cGFyZW50KCkpCiAgICAgICAgIHBhcmVudC0+bG9hZGVyKCktPmNoZWNrTG9hZENvbXBsZXRl
KCk7CiAKLSAgICBpZiAobV9kb21XaW5kb3cpIHsKLSAgICAgICAgbV9kb21XaW5kb3ctPnJlc2V0
R2VvbG9jYXRpb24oKTsKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKKyAgICBpZiAobV9kb21X
aW5kb3cpCiAgICAgICAgIG1fZG9tV2luZG93LT5yZXNldE5vdGlmaWNhdGlvbnMoKTsKICNlbmRp
ZgotICAgICAgICBtX2RvbVdpbmRvdy0+cGFnZURlc3Ryb3llZCgpOwotICAgIH0KKworICAgIEhh
c2hTZXQ8RnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyKj46Oml0ZXJhdG9yIHN0b3AgPSBtX2Rlc3Ry
dWN0aW9uT2JzZXJ2ZXJzLmVuZCgpOworICAgIGZvciAoSGFzaFNldDxGcmFtZURlc3RydWN0aW9u
T2JzZXJ2ZXIqPjo6aXRlcmF0b3IgaXQgPSBtX2Rlc3RydWN0aW9uT2JzZXJ2ZXJzLmJlZ2luKCk7
IGl0ICE9IHN0b3A7ICsraXQpCisgICAgICAgICgqaXQpLT5wYWdlRGVzdHJveWVkKCk7CiAKICAg
ICAvLyBGSVhNRTogSXQncyB1bmNsZWFyIGFzIHRvIHdoeSB0aGlzIGlzIGNhbGxlZCBtb3JlIHRo
YW4gb25jZSwgYnV0IGl0IGlzLAogICAgIC8vIHNvIHBhZ2UoKSBjb3VsZCBiZSBOVUxMLgpAQCAt
NzE4LDE3ICs3MTksMTYgQEAgdm9pZCBGcmFtZTo6dHJhbnNmZXJDaGlsZEZyYW1lVG9OZXdEb2N1
bQogICAgICAgICAgICAgIG1fcGFnZS0+ZGVjcmVtZW50RnJhbWVDb3VudCgpOwogICAgICAgICB9
CiAKLSAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBpZGVhbGx5IGFsbG93IGV4aXN0aW5nIEdl
b2xvY2F0aW9uIGFjdGl2aXRpZXMgdG8gY29udGludWUKLSAgICAgICAgLy8gd2hlbiB0aGUgR2Vv
bG9jYXRpb24ncyBpZnJhbWUgaXMgcmVwYXJlbnRlZC4KLSAgICAgICAgLy8gU2VlIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NTU3NwotICAgICAgICAvLyBhbmQgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUyODc3CiAgICAgICAgIGlmICht
X2RvbVdpbmRvdykgewotICAgICAgICAgICAgbV9kb21XaW5kb3ctPnJlc2V0R2VvbG9jYXRpb24o
KTsKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKICAgICAgICAgICAgIG1fZG9tV2luZG93LT5y
ZXNldE5vdGlmaWNhdGlvbnMoKTsKICNlbmRpZgogICAgICAgICB9CiAKKyAgICAgICAgSGFzaFNl
dDxGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIqPjo6aXRlcmF0b3Igc3RvcCA9IG1fZGVzdHJ1Y3Rp
b25PYnNlcnZlcnMuZW5kKCk7CisgICAgICAgIGZvciAoSGFzaFNldDxGcmFtZURlc3RydWN0aW9u
T2JzZXJ2ZXIqPjo6aXRlcmF0b3IgaXQgPSBtX2Rlc3RydWN0aW9uT2JzZXJ2ZXJzLmJlZ2luKCk7
IGl0ICE9IHN0b3A7ICsraXQpCisgICAgICAgICAgICAoKml0KS0+cGFnZURlc3Ryb3llZCgpOwor
CiAgICAgICAgIG1fcGFnZSA9IG5ld1BhZ2U7CiAKICAgICAgICAgaWYgKG5ld1BhZ2UpCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuY3Bw
CShyZXZpc2lvbiAxMDc5NzcpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lRGVzdHJ1Y3Rp
b25PYnNlcnZlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU4LDQgKzU4LDkgQEAgdm9pZCBGcmFt
ZURlc3RydWN0aW9uT2JzZXJ2ZXI6OmZyYW1lRGVzdAogICAgIG1fZnJhbWUgPSAwOwogfQogCit2
b2lkIEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlcjo6cGFnZURlc3Ryb3llZCgpCit7CisgICAgLy8g
U3ViY2xhc3NlcyBzaG91bGQgb3ZlcnJpZGUgdGhpcyBmdW5jdGlvbiB0byBoYW5kbGUgdGhpcyBu
b3RpZmljYXRpb24uCit9CisKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVEZXN0
cnVjdGlvbk9ic2VydmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZURlc3RydWN0aW9uT2JzZXJ2ZXIuaAkocmV2aXNpb24gMTA3OTc3KQorKysgU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzMs
NyArMzMsMTAgQEAgY2xhc3MgRnJhbWU7CiBjbGFzcyBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIg
ewogcHVibGljOgogICAgIGV4cGxpY2l0IEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlcihGcmFtZSop
OworCiAgICAgdmlydHVhbCB2b2lkIGZyYW1lRGVzdHJveWVkKCk7CisgICAgdmlydHVhbCB2b2lk
IHBhZ2VEZXN0cm95ZWQoKTsKKwogICAgIEZyYW1lKiBmcmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1f
ZnJhbWU7IH0KIAogcHJvdGVjdGVkOgpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0
b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmNwcAko
cmV2aXNpb24gMTA3OTc3KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC02NywxMiArNjcsNiBAQCBOYXZpZ2F0b3JTdXBwbGVtZW50KiBOYXZp
Z2F0b3I6OnJlcXVpcmVTCiAgICAgcmV0dXJuIG1fc3VwcGxpbWVudHMuZ2V0KG5hbWUuaW1wbCgp
KTsKIH0KIAotdm9pZCBOYXZpZ2F0b3I6OnJlc2V0R2VvbG9jYXRpb24oKQotewotICAgIGlmICht
X2dlb2xvY2F0aW9uKQotICAgICAgICBtX2dlb2xvY2F0aW9uLT5yZXNldCgpOwotfQotCiAvLyBJ
ZiB0aGlzIGZ1bmN0aW9uIHJldHVybnMgdHJ1ZSwgd2UgbmVlZCB0byBoaWRlIHRoZSBzdWJzdHJp
bmcgIjQuIiB0aGF0IHdvdWxkIG90aGVyd2lzZQogLy8gYXBwZWFyIGluIHRoZSBhcHBWZXJzaW9u
IHN0cmluZy4gVGhpcyBpcyB0byBhdm9pZCBwcm9ibGVtcyB3aXRoIG9sZCB2ZXJzaW9ucyBvZiBh
CiAvLyBsaWJyYXJ5IGNhbGxlZCBPcGVuQ3ViZSBRdWlja01lbnUsIHdoaWNoIGFzIG9mIHRoaXMg
d3JpdGluZyBpcyBzdGlsbCBiZWluZyB1c2VkIG9uCkBAIC0xNTEsMTMgKzE0NSw2IEBAIGJvb2wg
TmF2aWdhdG9yOjpqYXZhRW5hYmxlZCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fZnJhbWUtPnNldHRp
bmdzKCktPmlzSmF2YUVuYWJsZWQoKTsKIH0KIAotR2VvbG9jYXRpb24qIE5hdmlnYXRvcjo6Z2Vv
bG9jYXRpb24oKSBjb25zdAotewotICAgIGlmICghbV9nZW9sb2NhdGlvbikKLSAgICAgICAgbV9n
ZW9sb2NhdGlvbiA9IEdlb2xvY2F0aW9uOjpjcmVhdGUobV9mcmFtZSk7Ci0gICAgcmV0dXJuIG1f
Z2VvbG9jYXRpb24uZ2V0KCk7Ci19Ci0KICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogUG9pbnRl
ckxvY2sqIE5hdmlnYXRvcjo6d2Via2l0UG9pbnRlcigpIGNvbnN0CiB7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wYWdlL05hdmlnYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvTmF2aWdhdG9yLmgJKHJldmlzaW9uIDEwNzk3NykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
TmF2aWdhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDYgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogY2xhc3MgRE9NTWltZVR5cGVBcnJheTsKIGNsYXNzIERPTVBsdWdpbkFycmF5Owog
Y2xhc3MgRnJhbWU7Ci1jbGFzcyBHZW9sb2NhdGlvbjsKIGNsYXNzIFBvaW50ZXJMb2NrOwogY2xh
c3MgUGx1Z2luRGF0YTsKIApAQCAtNDUsOCArNDQsNiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBh
c3NSZWZQdHI8TmF2aWdhdG9yPiBjcmVhdGUoRnJhbWUqIGZyYW1lKSB7IHJldHVybiBhZG9wdFJl
ZihuZXcgTmF2aWdhdG9yKGZyYW1lKSk7IH0KICAgICB2aXJ0dWFsIH5OYXZpZ2F0b3IoKTsKIAot
ICAgIHZvaWQgcmVzZXRHZW9sb2NhdGlvbigpOwotCiAgICAgU3RyaW5nIGFwcFZlcnNpb24oKSBj
b25zdDsKICAgICBTdHJpbmcgbGFuZ3VhZ2UoKSBjb25zdDsKICAgICBET01QbHVnaW5BcnJheSog
cGx1Z2lucygpIGNvbnN0OwpAQCAtNTYsOCArNTMsNiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IFN0cmluZyB1c2VyQWdlbnQoKSBjb25zdDsKIAotICAgIEdlb2xvY2F0aW9uKiBnZW9sb2NhdGlv
bigpIGNvbnN0OwotCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICBQb2ludGVyTG9jayog
d2Via2l0UG9pbnRlcigpIGNvbnN0OwogI2VuZGlmCkBAIC04MCw3ICs3NSw2IEBAIHByaXZhdGU6
CiAKICAgICBtdXRhYmxlIFJlZlB0cjxET01QbHVnaW5BcnJheT4gbV9wbHVnaW5zOwogICAgIG11
dGFibGUgUmVmUHRyPERPTU1pbWVUeXBlQXJyYXk+IG1fbWltZVR5cGVzOwotICAgIG11dGFibGUg
UmVmUHRyPEdlb2xvY2F0aW9uPiBtX2dlb2xvY2F0aW9uOwogI2lmIEVOQUJMRShQT0lOVEVSX0xP
Q0spCiAgICAgbXV0YWJsZSBSZWZQdHI8UG9pbnRlckxvY2s+IG1fcG9pbnRlcjsKICNlbmRpZgpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuaWRsCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmlkbAkocmV2aXNpb24gMTA3OTc3KQorKysgU291
cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC00MCwxMCAr
NDAsNiBAQCBtb2R1bGUgd2luZG93IHsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9v
bGVhbiBvbkxpbmU7CiAKLSNpZiBkZWZpbmVkKEVOQUJMRV9HRU9MT0NBVElPTikgJiYgRU5BQkxF
X0dFT0xPQ0FUSU9OCi0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVjhFbmFibGVkQXRSdW50
aW1lXSBHZW9sb2NhdGlvbiBnZW9sb2NhdGlvbjsKLSNlbmRpZgotCiAjaWYgZGVmaW5lZChFTkFC
TEVfUE9JTlRFUl9MT0NLKSAmJiBFTkFCTEVfUE9JTlRFUl9MT0NLCiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBbVjhFbmFibGVkQXRSdW50aW1lXSBQb2ludGVyTG9jayB3ZWJraXRQb2ludGVy
OwogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127662</attachid>
            <date>2012-02-17 15:04:49 -0800</date>
            <delta_ts>2012-02-21 11:28:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78860-20120217150447.patch</filename>
            <type>text/plain</type>
            <size>42562</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwODEyNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUxIEBACisyMDEyLTAyLTE3ICBBZGFtIEJh
cnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRnJhbWUgYW5kIE5hdmlnYXRvciBz
aG91bGRuJ3QgbmVlZCB0byB3b3JyeSBhYm91dCBHZW9sb2NhdGlvbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg4NjAKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIHJlbW92ZXMgc29tZSBH
ZW9sb2NhdGlvbi1zcGVjaWZpYyBjb2RlIGZyb20gRnJhbWUgYW5kCisgICAgICAgIE5hdmlnYXRv
ciBpbiBmYXZvciBvZiBvdXIgbmV3IHN1cHBsZW1lbnRhbCBtb2R1bGUgbWVjaGFuaXNtLiAgV2Un
cmUKKyAgICAgICAgc3RpbGwgcmVmaW5pbmcgdGhlIG1vZHVsZSBzeXN0ZW0sIGJ1dCB3ZSBzZWVt
IHRvIGJlIGNvbnZlcmdpbmcgb24gYQorICAgICAgICBzaW1wbGUgT2JzZXJ2ZXIvU3VwcGxlbWVu
dCBkZXNpZ24uCisKKyAgICAgICAgSW4gYSBmdXR1cmUgcGF0Y2gsIEknbGwgbW92ZSB0aGUgcmVt
YWluaW5nIEdlb2xvY2F0aW9uLXJlbGF0ZWQgZmlsZXMgaW4KKyAgICAgICAgV2ViQ29yZSBpbnRv
IE1vZHVsZXMvZ2VvbG9jYXRpb24uICBUaGlzIHBhdGNoIGFwcGVhcnMgdG8gYmUgdGhlIGZpcnN0
CisgICAgICAgIHBhdGNoIHRoYXQgaW50cm9kdWNlcyBhIG1vZHVsZSB1c2VkIGJ5IGFsbCB0aGUg
dmFyaW91cyBidWlsZCBzeXN0ZW1zLAorICAgICAgICB3aGljaCBpcyB3aHkgdGhlcmUncyBhIGJp
dCBtb3JlIGJ1aWxkIHN5c3RlbSBvdmVyaGVhZCB0aGFuIHVzdWFsLgorCisgICAgICAgICogTW9k
dWxlcy9nZW9sb2NhdGlvbjogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9O
YXZpZ2F0b3JHZW9sb2NhdGlvbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChXZWJDb3JlOjpOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6TmF2aWdhdG9yR2VvbG9jYXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdG9yR2VvbG9jYXRpb246On5OYXZpZ2F0b3JHZW9s
b2NhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6cGFnZURl
c3Ryb3llZCk6CisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6ZnJvbSk6
CisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6Z2VvbG9jYXRpb24pOgor
ICAgICAgICAqIE1vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKE5hdmlnYXRvckdlb2xvY2F0aW9uKToK
KyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmlkbDog
QWRkZWQuCisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaDoKKyAgICAgICAgKERPTVdpbmRvdyk6CisgICAg
ICAgICogcGFnZS9GcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6cGFnZURlc3Ry
b3llZCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6dHJhbnNmZXJDaGlsZEZyYW1lVG9OZXdE
b2N1bWVudCk6CisgICAgICAgICogcGFnZS9GcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyOjpwYWdlRGVzdHJveWVk
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBhZ2UvRnJhbWVEZXN0cnVjdGlvbk9i
c2VydmVyLmg6CisgICAgICAgIChGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIpOgorICAgICAgICAq
IHBhZ2UvTmF2aWdhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBhZ2Uv
TmF2aWdhdG9yLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKE5hdmlnYXRvcik6Cisg
ICAgICAgICogcGFnZS9OYXZpZ2F0b3IuaWRsOgorCiAyMDEyLTAyLTE3ICBBbmRyZWFzIEtsaW5n
ICA8YXdlc29tZWtsaW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBFbGVtZW50OiBJbmxpbmUgc3R5
bGUgc2VsZWN0b3IgYW5kIEFYIGludmFsaWRhdGlvbiBpbiBhdHRyaWJ1dGVDaGFuZ2VkKCkuCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMTA4MTI2KQorKysgU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw2IEBACiBTRVQoV2Vi
Q29yZV9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCQ09SRV9ESVJ9IgorICAgICIke1dF
QkNPUkVfRElSfS9Nb2R1bGVzL2dlb2xvY2F0aW9uIgogICAgICIke1dFQkNPUkVfRElSfS9hY2Nl
c3NpYmlsaXR5IgogICAgICIke1dFQkNPUkVfRElSfS9iaW5kaW5ncyIKICAgICAiJHtXRUJDT1JF
X0RJUn0vYmluZGluZ3MvZ2VuZXJpYyIKQEAgLTg2LDYgKzg3LDcgQEAgU0VUKFdlYkNvcmVfSU5D
TFVERV9ESVJFQ1RPUklFUwogKQogCiBTRVQoV2ViQ29yZV9JRExfSU5DTFVERVMKKyAgICBNb2R1
bGVzL2dlb2xvY2F0aW9uCiAgICAgYmluZGluZ3MvZ2VuZXJpYwogICAgIGNzcwogICAgIGRvbQpA
QCAtMTA0LDYgKzEwNiw4IEBAIFNFVChXZWJDb3JlX0lETF9JTkNMVURFUwogKQogCiBTRVQoV2Vi
Q29yZV9JRExfRklMRVMKKyAgICBNb2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0
aW9uLmlkbAorCiAgICAgY3NzL0NvdW50ZXIuaWRsCiAgICAgY3NzL0NTU0NoYXJzZXRSdWxlLmlk
bAogICAgIGNzcy9DU1NGb250RmFjZVJ1bGUuaWRsCkBAIC0zOTksNiArNDAzLDggQEAgU0VUKFdl
YkNvcmVfSURMX0ZJTEVTCiApCiAKIFNFVChXZWJDb3JlX1NPVVJDRVMKKyAgICBNb2R1bGVzL2dl
b2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmNwcAorCiAgICAgYWNjZXNzaWJpbGl0eS9B
WE9iamVjdENhY2hlLmNwcAogICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlk
LmNwcAogICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5jcHAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gMTA4MTI2KQorKysgU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtMjgsNiAr
MjgsNyBAQAogCiBWUEFUSCA9IFwKICAgICAkKFdlYkNvcmUpIFwKKyAgICAkKFdlYkNvcmUpL01v
ZHVsZXMvZ2VvbG9jYXRpb24gXAogICAgICQoV2ViQ29yZSkvYmluZGluZ3MvZ2VuZXJpYyBcCiAg
ICAgJChXZWJDb3JlKS9iaW5kaW5ncy9qcyBcCiAgICAgJChXZWJDb3JlKS9iaW5kaW5ncy9vYmpj
IFwKQEAgLTUzLDYgKzU0LDcgQEAgVlBBVEggPSBcCiAjCiAKIEJJTkRJTkdfSURMUyA9IFwKKyAg
ICAkKFdlYkNvcmUpL01vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaWRs
IFwKICAgICAkKFdlYkNvcmUpL2Nzcy9DU1NDaGFyc2V0UnVsZS5pZGwgXAogICAgICQoV2ViQ29y
ZSkvY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGwgXAogICAgICQoV2ViQ29yZSkvY3NzL0NTU0ltcG9y
dFJ1bGUuaWRsIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkJKHJldmlzaW9uIDEw
ODEyNikKKysrIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQkod29ya2luZyBjb3B5
KQpAQCAtODYsNiArODYsNyBAQCBTVFlMRVNIRUVUU19FTUJFRCA9IFwKICAgICAkJFBXRC9jc3Mv
bW9iaWxlVGhlbWVRdC5jc3MKIAogSURMX0JJTkRJTkdTICs9IFwKKyAgICAkJFBXRC9Nb2R1bGVz
L2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmlkbCBcCiAgICAgJCRQV0QvY3NzL0Nv
dW50ZXIuaWRsIFwKICAgICAkJFBXRC9jc3MvQ1NTQ2hhcnNldFJ1bGUuaWRsIFwKICAgICAkJFBX
RC9jc3MvQ1NTRm9udEZhY2VSdWxlLmlkbCBcCkBAIC02ODIsNiArNjgzLDcgQEAgZWxzZTogZ2Vu
ZXJhdG9yID0gSlMKIGdlbmVyYXRlQmluZGluZ3MuY29tbWFuZHMgPSBwZXJsIC1JJCRQV0QvYmlu
ZGluZ3Mvc2NyaXB0cyAkJGdlbmVyYXRlQmluZGluZ3Muc2NyaXB0IFwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAtLWRlZmluZXMgXCIkJHtGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVH1c
IiBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS1nZW5lcmF0b3IgJCRnZW5lcmF0b3Ig
XAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0taW5jbHVkZSAkJFBXRC9Nb2R1bGVzL2dl
b2xvY2F0aW9uIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLWluY2x1ZGUgJCRQV0Qv
ZG9tIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLWluY2x1ZGUgJCRQV0QvZmlsZWFw
aSBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS1pbmNsdWRlICQkUFdEL2h0bWwgXApJ
bmRleDogU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHJldmlzaW9uIDEwODEyNikKKysrIFNvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0xMSw2ICsxMSw3IEBAIHdlYmNv
cmVfY3BwZmxhZ3MgKz0gXAogCS1JJChzcmNkaXIpL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2lu
Y2x1ZGUgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2luY2x1ZGUvR0xT
TEFORyBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUgXAorCS1JJChzcmNkaXIpL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24gXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
IFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljIFwKQEAgLTc1
Nyw2ICs3NTgsNyBAQCBEZXJpdmVkU291cmNlcy9BTkdMRS9nbHNsYW5nX3RhYi5jcHA6IFNvCiBE
ZXJpdmVkU291cmNlcy9BTkdMRS9nbHNsYW5nX3RhYi5oOiBEZXJpdmVkU291cmNlcy9BTkdMRS9n
bHNsYW5nX3RhYi5jcHAKIAogSURMX1BBVEggOj0gXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9n
ZW9sb2NhdGlvbiBcCiAgICAgJChXZWJDb3JlKS9iaW5kaW5ncy9qcyBcCiAgICAgJChXZWJDb3Jl
KS9jc3MgXAogICAgICQoV2ViQ29yZSkvZG9tIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbQkocmV2aXNpb24gMTA4MTI2KQorKysgU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbQkod29ya2luZyBjb3B5KQpAQCAtNjUwLDYgKzY1MCw3IEBAIHdlYmNvcmVfYnVpbHRf
c291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9YUGF0aEdyYW1tYXIuaAogCiBk
b21fYmluZGluZ19pZGxzICs9IFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvZ2VvbG9jYXRpb24vTmF2
aWdhdG9yR2VvbG9jYXRpb24uaWRsIFwKIAkkKFdlYkNvcmUpL2Nzcy9DU1NDaGFyc2V0UnVsZS5p
ZGwgXAogCSQoV2ViQ29yZSkvY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGwgXAogCSQoV2ViQ29yZSkv
Y3NzL0NTU0ltcG9ydFJ1bGUuaWRsIFwKQEAgLTk1MSw2ICs5NTIsOCBAQCBkb21fYmluZGluZ19p
ZGxzICs9IFwKIAkkKFdlYkNvcmUpL3htbC9YU0xUUHJvY2Vzc29yLmlkbAogCiB3ZWJjb3JlX3Nv
dXJjZXMgKz0gXAorCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9y
R2VvbG9jYXRpb24uY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL05h
dmlnYXRvckdlb2xvY2F0aW9uLmggXAogCVNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZC5jcHAgXApJbmRleDogU291cmNlL1dlYkNvcmUv
VGFyZ2V0LnByaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCShyZXZp
c2lvbiAxMDgxMjYpCisrKyBTb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCSh3b3JraW5nIGNvcHkp
CkBAIC0zNCw2ICszNCw4IEBAIGluY2x1ZGVfd2ViaW5zcGVjdG9yIHsKIH0KIAogU09VUkNFUyAr
PSBcCisgICAgTW9kdWxlcy9HZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5jcHAgXAor
CiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rLmNwcCBcCiAgICAg
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVkaWFDb250cm9scy5jcHAgXAogICAgIGFjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0LmNwcCBcCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4
cC5pbgkocmV2aXNpb24gMTA4MTI2KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4J
KHdvcmtpbmcgY29weSkKQEAgLTY3Myw2ICs2NzMsNyBAQCBfX1pON1dlYkNvcmUyNEZyYW1lRGVz
dHJ1Y3Rpb25PYnNlcnZlckQyCiBfX1pON1dlYkNvcmUyNEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZl
ckMyRVBOU181RnJhbWVFCiBfX1pON1dlYkNvcmUyNEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlcjEy
b2JzZXJ2ZUZyYW1lRVBOU181RnJhbWVFCiBfX1pON1dlYkNvcmUyNEZyYW1lRGVzdHJ1Y3Rpb25P
YnNlcnZlcjE0ZnJhbWVEZXN0cm95ZWRFdgorX19aTjdXZWJDb3JlMjRGcmFtZURlc3RydWN0aW9u
T2JzZXJ2ZXIxNHdpbGxEZXRhY2hQYWdlRXYKIF9fWk43V2ViQ29yZTI0a2V5SWRlbnRpZmllckZv
cktleUV2ZW50RVA3TlNFdmVudAogX19aTjdXZWJDb3JlMjRub3RpZnlIaXN0b3J5SXRlbUNoYW5n
ZWRFCiBfX1pON1dlYkNvcmUyNUhpc3RvcnlQcm9wZXJ0eUxpc3RXcml0ZXIxMXJlbGVhc2VEYXRh
RXYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHJldmlzaW9uIDEwODEyNikKKysrIFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtNzIyLDYgKzcyMiw3IEBACiAgICAg
ICAgICAgICAnTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWQuaWRsJywKICAgICAgICAgICAgICdNb2R1
bGVzL2dhbWVwYWQvR2FtZXBhZExpc3QuaWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL2dhbWVw
YWQvTmF2aWdhdG9yR2FtZXBhZC5pZGwnLAorICAgICAgICAgICAgJ01vZHVsZXMvZ2VvbG9jYXRp
b24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4
ZWRkYi9ET01XaW5kb3dJbmRleGVkRGF0YWJhc2UuaWRsJywKICAgICAgICAgICAgICdNb2R1bGVz
L2ludGVudHMvRE9NV2luZG93SW50ZW50cy5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW50
ZW50cy9JbnRlbnQuaWRsJywKQEAgLTEyNzksNiArMTI4MCw4IEBACiAgICAgICAgICAgICAnTW9k
dWxlcy9nYW1lcGFkL0dhbWVwYWRMaXN0LmgnLAogICAgICAgICAgICAgJ01vZHVsZXMvZ2FtZXBh
ZC9OYXZpZ2F0b3JHYW1lcGFkLmNwcCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9nYW1lcGFkL05h
dmlnYXRvckdhbWVwYWQuaCcsCisgICAgICAgICAgICAnTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZp
Z2F0b3JHZW9sb2NhdGlvbi5jcHAnLAorICAgICAgICAgICAgJ01vZHVsZXMvZ2VvbG9jYXRpb24v
TmF2aWdhdG9yR2VvbG9jYXRpb24uaCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIv
RE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmNwcCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRl
eGVkZGIvRE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmgnLAogICAgICAgICAgICAgJ01vZHVsZXMv
aW50ZW50cy9JbnRlbnQuY3BwJywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJpCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJpCShyZXZpc2lvbiAxMDgxMjYp
CisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnByaQkod29ya2luZyBjb3B5KQpAQCAtMTgsNiAr
MTgsNyBAQCBXRUJDT1JFX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUiA9ICQke1JPT1RfCiAKIElOQ0xV
REVQQVRIICs9IFwKICAgICAkJFNPVVJDRV9ESVIgXAorICAgICQkU09VUkNFX0RJUi9Nb2R1bGVz
L2dlb2xvY2F0aW9uIFwKICAgICAkJFNPVVJDRV9ESVIvYWNjZXNzaWJpbGl0eSBcCiAgICAgJCRT
T1VSQ0VfRElSL2JpbmRpbmdzIFwKICAgICAkJFNPVVJDRV9ESVIvYmluZGluZ3MvZ2VuZXJpYyBc
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xv
Y2F0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0
aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uY3BwCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExLCBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycg
QU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisgKiBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0gKKyAqIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiTmF2aWdhdG9yR2VvbG9jYXRpb24uaCIKKworI2luY2x1ZGUgIkdlb2xvY2F0
aW9uLmgiCisjaW5jbHVkZSAiTmF2aWdhdG9yLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
TmF2aWdhdG9yR2VvbG9jYXRpb246Ok5hdmlnYXRvckdlb2xvY2F0aW9uKEZyYW1lKiBmcmFtZSkK
KyAgICA6IERPTVdpbmRvd1Byb3BlcnR5KGZyYW1lKQoreworfQorCitOYXZpZ2F0b3JHZW9sb2Nh
dGlvbjo6fk5hdmlnYXRvckdlb2xvY2F0aW9uKCkKK3sKK30KKwordm9pZCBOYXZpZ2F0b3JHZW9s
b2NhdGlvbjo6d2lsbERldGFjaFBhZ2UoKQoreworICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgaWRl
YWxseSBhbGxvdyBleGlzdGluZyBHZW9sb2NhdGlvbiBhY3Rpdml0aWVzIHRvIGNvbnRpbnVlCisg
ICAgLy8gd2hlbiB0aGUgR2VvbG9jYXRpb24ncyBpZnJhbWUgaXMgcmVwYXJlbnRlZC4gKEFzc3Vt
aW5nIHdlIGNvbnRpbnVlIHRvCisgICAgLy8gc3VwcG9ydCByZXBhcmVudGluZyBpZnJhbWVzLikK
KyAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU1NTc3
CisgICAgLy8gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01Mjg3
NworICAgIGlmIChtX2dlb2xvY2F0aW9uKQorICAgICAgICBtX2dlb2xvY2F0aW9uLT5yZXNldCgp
OworfQorCitOYXZpZ2F0b3JHZW9sb2NhdGlvbiogTmF2aWdhdG9yR2VvbG9jYXRpb246OmZyb20o
TmF2aWdhdG9yKiBuYXZpZ2F0b3IpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNT
dHJpbmcsIG5hbWUsICgiTmF2aWdhdG9yR2VvbG9jYXRpb24iKSk7CisgICAgTmF2aWdhdG9yR2Vv
bG9jYXRpb24qIHN1cHBsZW1lbnQgPSBzdGF0aWNfY2FzdDxOYXZpZ2F0b3JHZW9sb2NhdGlvbio+
KE5hdmlnYXRvclN1cHBsZW1lbnQ6OmZyb20obmF2aWdhdG9yLCBuYW1lKSk7CisgICAgaWYgKCFz
dXBwbGVtZW50KSB7CisgICAgICAgIHN1cHBsZW1lbnQgPSBuZXcgTmF2aWdhdG9yR2VvbG9jYXRp
b24obmF2aWdhdG9yLT5mcmFtZSgpKTsKKyAgICAgICAgcHJvdmlkZVRvKG5hdmlnYXRvciwgbmFt
ZSwgYWRvcHRQdHIoc3VwcGxlbWVudCkpOworICAgIH0KKyAgICByZXR1cm4gc3VwcGxlbWVudDsK
K30KKworR2VvbG9jYXRpb24qIE5hdmlnYXRvckdlb2xvY2F0aW9uOjpnZW9sb2NhdGlvbihOYXZp
Z2F0b3IqIG5hdmlnYXRvcikKK3sKKyAgICByZXR1cm4gTmF2aWdhdG9yR2VvbG9jYXRpb246OmZy
b20obmF2aWdhdG9yKS0+Z2VvbG9jYXRpb24oKTsKK30KKworR2VvbG9jYXRpb24qIE5hdmlnYXRv
ckdlb2xvY2F0aW9uOjpnZW9sb2NhdGlvbigpIGNvbnN0Cit7CisgICAgaWYgKCFtX2dlb2xvY2F0
aW9uKQorICAgICAgICBtX2dlb2xvY2F0aW9uID0gR2VvbG9jYXRpb246OmNyZWF0ZShmcmFtZSgp
KTsKKyAgICByZXR1cm4gbV9nZW9sb2NhdGlvbi5nZXQoKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0
b3JHZW9sb2NhdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2Vv
bG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSwgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
IEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUKKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICog
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICogTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICog
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNICisgKiBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBOYXZpZ2F0b3JH
ZW9sb2NhdGlvbl9oCisjZGVmaW5lIE5hdmlnYXRvckdlb2xvY2F0aW9uX2gKKworI2luY2x1ZGUg
IkRPTVdpbmRvd1Byb3BlcnR5LmgiCisjaW5jbHVkZSAiTmF2aWdhdG9yU3VwcGxlbWVudC5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZyYW1lOworY2xhc3MgR2VvbG9jYXRpb247
CitjbGFzcyBOYXZpZ2F0b3I7CisKK2NsYXNzIE5hdmlnYXRvckdlb2xvY2F0aW9uIDogcHVibGlj
IE5hdmlnYXRvclN1cHBsZW1lbnQsIHB1YmxpYyBET01XaW5kb3dQcm9wZXJ0eSB7CitwdWJsaWM6
CisgICAgdmlydHVhbCB+TmF2aWdhdG9yR2VvbG9jYXRpb24oKTsKKyAgICBzdGF0aWMgTmF2aWdh
dG9yR2VvbG9jYXRpb24qIGZyb20oTmF2aWdhdG9yKik7CisKKyAgICBzdGF0aWMgR2VvbG9jYXRp
b24qIGdlb2xvY2F0aW9uKE5hdmlnYXRvciopOworICAgIEdlb2xvY2F0aW9uKiBnZW9sb2NhdGlv
bigpIGNvbnN0OworCitwcml2YXRlOgorICAgIE5hdmlnYXRvckdlb2xvY2F0aW9uKEZyYW1lKik7
CisKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbERldGFjaFBhZ2UoKSBPVkVSUklERTsKKworICAgIG11
dGFibGUgUmVmUHRyPEdlb2xvY2F0aW9uPiBtX2dlb2xvY2F0aW9uOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gTmF2aWdhdG9yR2VvbG9jYXRpb25faApJbmRleDog
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5p
ZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZp
Z2F0b3JHZW9sb2NhdGlvbi5pZGwJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmlkbAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwyOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4g
IElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEz
MDEsIFVTQS4KKyAqLworCittb2R1bGUgd2luZG93IHsKKworICAgIGludGVyZmFjZSBbCisgICAg
ICAgIENvbmRpdGlvbmFsPUdFT0xPQ0FUSU9OLAorICAgICAgICBTdXBwbGVtZW50YWw9TmF2aWdh
dG9yCisgICAgXSBOYXZpZ2F0b3JHZW9sb2NhdGlvbiB7CisgICAgICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgW1Y4RW5hYmxlZEF0UnVudGltZV0gR2VvbG9jYXRpb24gZ2VvbG9jYXRpb247Cisg
ICAgfTsKKworfQpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAJKHJl
dmlzaW9uIDEwODEyNikKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lw
CSh3b3JraW5nIGNvcHkpCkBAIC01Miw2ICs1Miw3IEBACiAgICAgICAnLi4vJywKICAgICAgICcu
Li8uLicsCiAgICAgICAnLi4vTW9kdWxlcy9nYW1lcGFkJywKKyAgICAgICcuLi9Nb2R1bGVzL2dl
b2xvY2F0aW9uJywKICAgICAgICcuLi9Nb2R1bGVzL2ludGVudHMnLAogICAgICAgJy4uL01vZHVs
ZXMvaW5kZXhlZGRiJywKICAgICAgICcuLi9hY2Nlc3NpYmlsaXR5JywKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCShyZXZpc2lvbiAxMDgxMjYp
CisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkod29ya2lu
ZyBjb3B5KQpAQCAtMjQwMDMsNiArMjQwMDMsMjIgQEAKIAkJCTwvRmlsZT4KIAkJPC9GaWx0ZXI+
CiAJCTxGaWx0ZXIKKwkJCU5hbWU9Ik1vZHVsZXMiCisJCQk+CisJCQk8RmlsdGVyCisJCQkJTmFt
ZT0iZ2VvbG9jYXRpb24iCisJCQkJPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5c
TW9kdWxlc1xnZW9sb2NhdGlvblxOYXZpZ2F0b3JHZW9sb2NhdGlvbi5jcHAiCisJCQkJCT4KKwkJ
CQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXGdlb2xv
Y2F0aW9uXE5hdmlnYXRvckdlb2xvY2F0aW9uLmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQk8
L0ZpbHRlcj4KKwkJPC9GaWx0ZXI+CisJCTxGaWx0ZXIKIAkJCU5hbWU9ImFjY2Vzc2liaWxpdHki
CiAJCQk+CiAJCQk8RmlsZQpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZUNvbW1vbi52c3Byb3BzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmVDb21tb24udnNwcm9wcwkocmV2aXNpb24gMTA4MTI2KQorKysgU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZUNvbW1vbi52c3Byb3BzCSh3b3JraW5nIGNv
cHkpCkBAIC03LDcgKzcsNyBAQAogCT4KIAk8VG9vbAogCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgotCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSImcXVvdDskKFByb2plY3REaXIpLi4m
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGFjY2Vzc2liaWxpdHkmcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKS4uXGFjY2Vzc2liaWxpdHlcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpciku
LlxicmlkZ2UmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJyaWRnZVxjJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcikuLlxicmlkZ2VcanNjJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxj
c3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGVkaXRpbmcmcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKS4uXGZpbGVhcGkmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHJlbmRlcmluZyZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccmVuZGVyaW5nXG1hdGhtbCZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5ccmVuZGVyaW5nXHN0eWxlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpciku
LlxyZW5kZXJpbmdcc3ZnJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxiaW5kaW5ncyZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpLi5cYmluZGluZ3NcZ2VuZXJpYyZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpLi5cYmluZGluZ3NcanMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJpbmRp
bmdzXGpzXHNwZWNpYWxpemF0aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxkb20mcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGRvbVxkZWZhdWx0JnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcikuLlxoaXN0b3J5JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxodG1sJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcikuLlxodG1sXGNhbnZhcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
Li5caHRtbFxwYXJzZXImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGh0bWxcc2hhZG93JnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxpbnNwZWN0b3ImcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKS4uXGxvYWRlciZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbG9hZGVyXGFwcGNhY2hl
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxsb2FkZXJcYXJjaGl2ZSZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5cbG9hZGVyXGFyY2hpdmVcY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXGxvYWRlclxjYWNoZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbG9hZGVyXGljb24m
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXG1hdGhtbCZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpLi5cbm90aWZpY2F0aW9ucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGFnZSZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGFnZVxhbmltYXRpb24mcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKS4uXHBhZ2Vcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybSZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cYW5pbWF0aW9uJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxtb2NrJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpciku
LlxwbGF0Zm9ybVxzcWwmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXHdpbiZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cbmV0d29yayZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5ccGxhdGZvcm1cbmV0d29ya1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKS4uXHBsYXRmb3JtXGNmJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxn
cmFwaGljcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3NcY2Em
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzXGZpbHRlcnMmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzXGZpbHRlcnNcYXJtJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1xvcGVudHlwZSZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3NcdHJhbnNmb3JtcyZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cdGV4dCZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5ccGxhdGZvcm1cdGV4dFx0cmFuc2NvZGVyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cikuLlxwbGF0Zm9ybVxncmFwaGljc1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHht
bCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ceG1sXHBhcnNlciZxdW90OzsmcXVvdDskKENv
bmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXFdlYkNvcmVcRGVyaXZlZFNvdXJjZXMmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXHBsdWdpbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBs
dWdpbnNcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxzdmdcYW5pbWF0aW9uJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcikuLlxzdmdcZ3JhcGhpY3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKS4uXHN2Z1xwcm9wZXJ0aWVzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxzdmdcZ3Jh
cGhpY3NcZmlsdGVycyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cc3ZnJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcikuLlx0ZXN0aW5nJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlx3bWwm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN0b3JhZ2UmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKS4uXHdlYnNvY2tldHMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHdvcmtlcnMmcXVv
dDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXGluY2x1ZGUmcXVvdDs7JnF1b3Q7JChD
b25maWd1cmF0aW9uQnVpbGREaXIpXGluY2x1ZGVccHJpdmF0ZSZxdW90OzsmcXVvdDskKENvbmZp
Z3VyYXRpb25CdWlsZERpcilcaW5jbHVkZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKENv
bmZpZ3VyYXRpb25CdWlsZERpcilcaW5jbHVkZVxwcml2YXRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcikuLlxGb3J3YXJkaW5nSGVhZGVycyZxdW90OzsmcXVvdDskKFdl
YktpdExpYnJhcmllc0RpcilcaW5jbHVkZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0Rp
cilcaW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNs
dWRlXHByaXZhdGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNE
aXIpXGluY2x1ZGVccHRocmVhZHMmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGlu
Y2x1ZGVcc3FsaXRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXEph
dmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXHps
aWImcXVvdDsiCisJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiZxdW90OyQoUHJvamVj
dERpcikuLiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cTW9kdWxlc1xnZW9sb2NhdGlvbiZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYWNjZXNzaWJpbGl0eSZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpLi5cYWNjZXNzaWJpbGl0eVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4u
XGJyaWRnZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYnJpZGdlXGMmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKS4uXGJyaWRnZVxqc2MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGNz
cyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cZWRpdGluZyZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5cZmlsZWFwaSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccmVuZGVyaW5nJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxyZW5kZXJpbmdcbWF0aG1sJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcikuLlxyZW5kZXJpbmdcc3R5bGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4u
XHJlbmRlcmluZ1xzdmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJpbmRpbmdzJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcikuLlxiaW5kaW5nc1xnZW5lcmljJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxiaW5kaW5nc1xqcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYmluZGlu
Z3NcanNcc3BlY2lhbGl6YXRpb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGRvbSZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpLi5cZG9tXGRlZmF1bHQmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKS4uXGhpc3RvcnkmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGh0bWwmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXGh0bWxcY2FudmFzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpciku
LlxodG1sXHBhcnNlciZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5caHRtbFxzaGFkb3cmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGluc3BlY3RvciZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpLi5cbG9hZGVyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxsb2FkZXJcYXBwY2FjaGUm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGxvYWRlclxhcmNoaXZlJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcikuLlxsb2FkZXJcYXJjaGl2ZVxjZiZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
Li5cbG9hZGVyXGNhY2hlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxsb2FkZXJcaWNvbiZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbWF0aG1sJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cikuLlxub3RpZmljYXRpb25zJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwYWdlJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcikuLlxwYWdlXGFuaW1hdGlvbiZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5ccGFnZVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxhbmltYXRpb24mcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXG1vY2smcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4u
XHBsYXRmb3JtXHNxbCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cd2luJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxuZXR3b3JrJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcikuLlxwbGF0Zm9ybVxuZXR3b3JrXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpLi5ccGxhdGZvcm1cY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdy
YXBoaWNzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1xjYSZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3NcZmlsdGVycyZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3NcZmlsdGVyc1xhcm0mcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzXG9wZW50eXBlJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1x0cmFuc2Zvcm1zJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVx0ZXh0JnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcikuLlxwbGF0Zm9ybVx0ZXh0XHRyYW5zY29kZXImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXHBsYXRmb3JtXGdyYXBoaWNzXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ceG1s
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlx4bWxccGFyc2VyJnF1b3Q7OyZxdW90OyQoQ29u
ZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcV2ViQ29yZVxEZXJpdmVkU291cmNlcyZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpLi5ccGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGx1
Z2luc1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2Z1xhbmltYXRpb24mcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2Z1xncmFwaGljcyZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpLi5cc3ZnXHByb3BlcnRpZXMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2Z1xncmFw
aGljc1xmaWx0ZXJzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxzdmcmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKS4uXHRlc3RpbmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHdtbCZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cc3RvcmFnZSZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpLi5cd2Vic29ja2V0cyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cd29ya2VycyZxdW90
OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcaW5jbHVkZSZxdW90OzsmcXVvdDskKENv
bmZpZ3VyYXRpb25CdWlsZERpcilcaW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZxdW90OyQoQ29uZmln
dXJhdGlvbkJ1aWxkRGlyKVxpbmNsdWRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoQ29u
ZmlndXJhdGlvbkJ1aWxkRGlyKVxpbmNsdWRlXHByaXZhdGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKS4uXEZvcndhcmRpbmdIZWFkZXJzJnF1b3Q7OyZxdW90OyQoV2Vi
S2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGly
KVxpbmNsdWRlXHByaXZhdGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1
ZGVccHJpdmF0ZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0Rp
cilcaW5jbHVkZVxwdGhyZWFkcyZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5j
bHVkZVxzcWxpdGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVcSmF2
YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVcemxp
YiZxdW90OyIKIAkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Il9fV0lOMzJfXztESVNBQkxFXzNE
X1JFTkRFUklORztXRUJDT1JFX0NPTlRFWFRfTUVOVVMiCiAJCVVzZVByZWNvbXBpbGVkSGVhZGVy
PSIyIgogCQlQcmVjb21waWxlZEhlYWRlclRocm91Z2g9IldlYkNvcmVQcmVmaXguaCIKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHJldmlzaW9uIDEwODEyNikKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMzMxNCw2ICszMzE0LDggQEAKIAkJOTcw
NTk5N0ExMDdEOTc1MjAwQTUwQTdDIC8qIFBvbGljeUNoZWNrZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MDU5OTc2MTA3RDk3NTIwMEE1MEE3QyAv
KiBQb2xpY3lDaGVja2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJOTcwQjcyOEExNDRGRkFDNjAwRjAwQTM3IC8qIEV2ZW50SW50ZXJmYWNlcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcwQjcyODkx
NDRGRkFDNjAwRjAwQTM3IC8qIEV2ZW50SW50ZXJmYWNlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk3MEI3MkE2MTQ1MDA4RUIwMEYwMEEzNyAv
KiBFdmVudEhlYWRlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDk3MEI3MkE1MTQ1MDA4RUIwMEYwMEEzNyAvKiBFdmVudEhlYWRlcnMuaCAqLzsgfTsK
KwkJOTcxMTQ2MDMxNEVGMDA5QTAwNjc0RkQ5IC8qIE5hdmlnYXRvckdlb2xvY2F0aW9uLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MTE0NjAwMTRF
RjAwOUEwMDY3NEZEOSAvKiBOYXZpZ2F0b3JHZW9sb2NhdGlvbi5jcHAgKi87IH07CisJCTk3MTE0
NjA0MTRFRjAwOUEwMDY3NEZEOSAvKiBOYXZpZ2F0b3JHZW9sb2NhdGlvbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcxMTQ2MDExNEVGMDA5QTAwNjc0
RkQ5IC8qIE5hdmlnYXRvckdlb2xvY2F0aW9uLmggKi87IH07CiAJCTk3MjA1QUFGMTIzOTI4Q0Ew
MEIxNzM4MCAvKiBGVFBEaXJlY3RvcnlEb2N1bWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzIwNUFBRDEyMzkyOENBMDBCMTczODAgLyogRlRQ
RGlyZWN0b3J5RG9jdW1lbnQuY3BwICovOyB9OwogCQk5NzIwNUFCMDEyMzkyOENBMDBCMTczODAg
LyogRlRQRGlyZWN0b3J5RG9jdW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk3MjA1QUFFMTIzOTI4Q0EwMEIxNzM4MCAvKiBGVFBEaXJlY3RvcnlE
b2N1bWVudC5oICovOyB9OwogCQk5NzIwNUFCNTEyMzkyOTEwMDBCMTczODAgLyogSW1hZ2VEb2N1
bWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
NzIwNUFCMTEyMzkyOTEwMDBCMTczODAgLyogSW1hZ2VEb2N1bWVudC5jcHAgKi87IH07CkBAIC0x
MDE3Miw2ICsxMDE3NCw5IEBACiAJCTk3MDU5OTc2MTA3RDk3NTIwMEE1MEE3QyAvKiBQb2xpY3lD
aGVja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBvbGljeUNoZWNrZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTcwQjcyODkxNDRGRkFDNjAwRjAwQTM3
IC8qIEV2ZW50SW50ZXJmYWNlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBF
dmVudEludGVyZmFjZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTcwQjcyQTUx
NDUwMDhFQjAwRjAwQTM3IC8qIEV2ZW50SGVhZGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBFdmVudEhlYWRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTcxMTQ2MDAxNEVGMDA5QTAwNjc0RkQ5IC8qIE5hdmlnYXRvckdlb2xvY2F0aW9uLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE5hdmlnYXRvckdlb2xvY2F0aW9uLmNw
cDsgcGF0aCA9IE1vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NzExNDYwMTE0RUYwMDlBMDA2NzRGRDkgLyog
TmF2aWdhdG9yR2VvbG9jYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
TmF2aWdhdG9yR2VvbG9jYXRpb24uaDsgcGF0aCA9IE1vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdh
dG9yR2VvbG9jYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTcxMTQ2MDIx
NEVGMDA5QTAwNjc0RkQ5IC8qIE5hdmlnYXRvckdlb2xvY2F0aW9uLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IG5hbWUgPSBOYXZpZ2F0b3JHZW9sb2NhdGlvbi5pZGw7IHBhdGggPSBNb2R1bGVzL2dlb2xv
Y2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTcyMDVBQUQxMjM5MjhDQTAwQjE3MzgwIC8qIEZUUERpcmVjdG9yeURvY3VtZW50LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZUUERpcmVjdG9yeURvY3Vt
ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTcyMDVBQUUxMjM5MjhDQTAw
QjE3MzgwIC8qIEZUUERpcmVjdG9yeURvY3VtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEZUUERpcmVjdG9yeURvY3VtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTk3MjA1QUIxMTIzOTI5MTAwMEIxNzM4MCAvKiBJbWFnZURvY3VtZW50LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEltYWdlRG9jdW1lbnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTM0NDgsNiArMTM0NTMsNyBAQAogCQkJCUVERUM5
ODAyMEFFRDdFMTcwMDU5MTM3RiAvKiBXZWJDb3JlUHJlZml4LmggKi8sCiAJCQkJOTMwNzA2MTMw
OUUwQ0E4MjAwQjE3RkU0IC8qIERlcml2ZWRTb3VyY2VzLm1ha2UgKi8sCiAJCQkJOTNGMTlCMTkw
ODI0NUU1OTAwMUU5QUJDIC8qIEluZm8ucGxpc3QgKi8sCisJCQkJOTcxMTQ1RkUxNEVGMDA2RTAw
Njc0RkQ5IC8qIE1vZHVsZXMgKi8sCiAJCQkJMjlBODEyMDQwRkJCOUI0MTAwNTEwMjkzIC8qIGFj
Y2Vzc2liaWxpdHkgKi8sCiAJCQkJQkMxQTM3OTAwOTdDNkY5NzAwMTlGM0Q4IC8qIGJpbmRpbmdz
ICovLAogCQkJCTFBNTY5Q0M0MEQ3RTJCNjAwMDdDMzk4MyAvKiBicmlkZ2UgKi8sCkBAIC0xNzA2
OSw2ICsxNzA3NSwyNCBAQAogCQkJdGFiV2lkdGggPSA0OwogCQkJdXNlc1RhYnMgPSAwOwogCQl9
OworCQk5NzExNDVGRTE0RUYwMDZFMDA2NzRGRDkgLyogTW9kdWxlcyAqLyA9IHsKKwkJCWlzYSA9
IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJOTcxMTQ1RkYxNEVGMDA3OTAwNjc0RkQ5
IC8qIGdlb2xvY2F0aW9uICovLAorCQkJKTsKKwkJCW5hbWUgPSBNb2R1bGVzOworCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJOTcxMTQ1RkYxNEVGMDA3OTAwNjc0RkQ5IC8qIGdl
b2xvY2F0aW9uICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJ
CQk5NzExNDYwMDE0RUYwMDlBMDA2NzRGRDkgLyogTmF2aWdhdG9yR2VvbG9jYXRpb24uY3BwICov
LAorCQkJCTk3MTE0NjAxMTRFRjAwOUEwMDY3NEZEOSAvKiBOYXZpZ2F0b3JHZW9sb2NhdGlvbi5o
ICovLAorCQkJCTk3MTE0NjAyMTRFRjAwOUEwMDY3NEZEOSAvKiBOYXZpZ2F0b3JHZW9sb2NhdGlv
bi5pZGwgKi8sCisJCQkpOworCQkJbmFtZSA9IGdlb2xvY2F0aW9uOworCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKKwkJfTsKIAkJOTc2RDZDNTcxMjJCOEExODAwMUZEMUY3IC8qIGZpbGVhcGkg
Ki8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMjMyNjQsNiAr
MjMyODgsNyBAQAogCQkJCTk3OUY0M0Q0MTA3NUU0NEEwMDAwRjgzQiAvKiBOYXZpZ2F0aW9uU2No
ZWR1bGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOUM2RTVBNjBENzQ2NDU4MDA2NDQyRTkgLyog
TmF2aWdhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTI3MTlDNzBFRUVDMTY4MDBGNjEyMTMg
LyogTmF2aWdhdG9yQmFzZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTcxMTQ2MDQxNEVGMDA5QTAw
Njc0RkQ5IC8qIE5hdmlnYXRvckdlb2xvY2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5N0ND
M0FFMzE0RThFNEEyMDA4OTQ5ODggLyogTmF2aWdhdG9yU3VwcGxlbWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOEEzMDlDOUYxMjM5NTBCRTAwQ0I5MjA0IC8qIE5lc3RpbmdMZXZlbEluY3JlbWVu
dGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NTZEMzc0MzBBREJBNURFMDBBNDU1NEQgLyogTmV0
c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMjY0MTUsNiArMjY0
NDAsNyBAQAogCQkJCTk3OUY0M0QzMTA3NUU0NEEwMDAwRjgzQiAvKiBOYXZpZ2F0aW9uU2NoZWR1
bGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE5QzZFNUE1MEQ3NDY0NTgwMDY0NDJFOSAvKiBO
YXZpZ2F0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTEyNzE5Q0EwRUVFQzIxMzAwRjYxMjEz
IC8qIE5hdmlnYXRvckJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTcxMTQ2MDMxNEVGMDA5
QTAwNjc0RkQ5IC8qIE5hdmlnYXRvckdlb2xvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTk3Q0MzQUUyMTRFOEU0QTIwMDg5NDk4OCAvKiBOYXZpZ2F0b3JTdXBwbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTVEODc0RjEzMEQxNjFEMzIwMDc5NkMzQiAvKiBOZXRzY2FwZVBsdWdJ
blN0cmVhbUxvYWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1OUMyN0YwNTEzOEQyOEMxMDA3
OUI3RTIgLyogTmV0d29ya1Jlc291cmNlc0RhdGEuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAJKHJldmlzaW9uIDEwODEyNikKKysrIFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0
MzksOCArMjQzOSw4IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNsb3NlQW5kUmVtb3ZlQ2hpbGQoRnIK
ICAgICBjaGlsZC0+c2V0VmlldygwKTsKICAgICBpZiAoY2hpbGQtPm93bmVyRWxlbWVudCgpICYm
IGNoaWxkLT5wYWdlKCkpCiAgICAgICAgIGNoaWxkLT5wYWdlKCktPmRlY3JlbWVudEZyYW1lQ291
bnQoKTsKLSAgICAvLyBGSVhNRTogVGhlIHBhZ2UgaXNuJ3QgYmVpbmcgZGVzdHJveWVkLCBzbyBp
dCdzIG5vdCByaWdodCB0byBjYWxsIGEgZnVuY3Rpb24gbmFtZWQgcGFnZURlc3Ryb3llZCgpLgot
ICAgIGNoaWxkLT5wYWdlRGVzdHJveWVkKCk7CisgICAgY2hpbGQtPndpbGxEZXRhY2hQYWdlKCk7
CisgICAgY2hpbGQtPmRldGFjaEZyb21QYWdlKCk7CiAKICAgICBtX2ZyYW1lLT50cmVlKCktPnJl
bW92ZUNoaWxkKGNoaWxkKTsKIH0KQEAgLTI1MTgsOCArMjUxOCw4IEBAIHZvaWQgRnJhbWVMb2Fk
ZXI6OmRldGFjaEZyb21QYXJlbnQoKQogICAgICAgICBwYXJlbnQtPmxvYWRlcigpLT5zY2hlZHVs
ZUNoZWNrQ29tcGxldGVkKCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgbV9mcmFtZS0+c2V0Vmll
dygwKTsKLSAgICAgICAgLy8gRklYTUU6IFRoZSBwYWdlIGlzbid0IGJlaW5nIGRlc3Ryb3llZCwg
c28gaXQncyBub3QgcmlnaHQgdG8gY2FsbCBhIGZ1bmN0aW9uIG5hbWVkIHBhZ2VEZXN0cm95ZWQo
KS4KLSAgICAgICAgbV9mcmFtZS0+cGFnZURlc3Ryb3llZCgpOworICAgICAgICBtX2ZyYW1lLT53
aWxsRGV0YWNoUGFnZSgpOworICAgICAgICBtX2ZyYW1lLT5kZXRhY2hGcm9tUGFnZSgpOwogICAg
IH0KIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAkocmV2aXNpb24gMTA4MTI2
KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00ODAsNiArNDgwLDIxIEBAIHZvaWQgRE9NV2luZG93OjpmcmFtZURlc3Ryb3llZCgpCiAgICAg
Y2xlYXIoKTsKIH0KIAordm9pZCBET01XaW5kb3c6OndpbGxEZXRhY2hQYWdlKCkKK3sKKyAgICBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lV2luZG93RGlzY2FyZGVkKG1fZnJhbWUsIHRo
aXMpOworCisjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCisgICAgLy8gQ2xlYXJpbmcgTm90aWZp
Y2F0aW9ucyByZXF1ZXN0cyBpbnZvbHZlcyBhY2Nlc3NpbmcgdGhlIGNsaWVudCBzbyBpdCBtdXN0
IGJlIGRvbmUKKyAgICAvLyBiZWZvcmUgdGhlIGZyYW1lIGlzIGRldGFjaGVkLgorICAgIHJlc2V0
Tm90aWZpY2F0aW9ucygpOworI2VuZGlmCisKKyAgICBIYXNoU2V0PERPTVdpbmRvd1Byb3BlcnR5
Kj46Oml0ZXJhdG9yIHN0b3AgPSBtX3Byb3BlcnRpZXMuZW5kKCk7CisgICAgZm9yIChIYXNoU2V0
PERPTVdpbmRvd1Byb3BlcnR5Kj46Oml0ZXJhdG9yIGl0ID0gbV9wcm9wZXJ0aWVzLmJlZ2luKCk7
IGl0ICE9IHN0b3A7ICsraXQpCisgICAgICAgICgqaXQpLT53aWxsRGV0YWNoUGFnZSgpOworfQor
CiB2b2lkIERPTVdpbmRvdzo6cmVnaXN0ZXJQcm9wZXJ0eShET01XaW5kb3dQcm9wZXJ0eSogcHJv
cGVydHkpCiB7CiAgICAgbV9wcm9wZXJ0aWVzLmFkZChwcm9wZXJ0eSk7CkBAIC03MzEsMjMgKzc0
Niw2IEBAIHZvaWQgRE9NV2luZG93OjpyZXNldE5vdGlmaWNhdGlvbnMoKQogfQogI2VuZGlmCiAK
LXZvaWQgRE9NV2luZG93OjpwYWdlRGVzdHJveWVkKCkKLXsKLSAgICBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmZyYW1lV2luZG93RGlzY2FyZGVkKG1fZnJhbWUsIHRoaXMpOwotI2lmIEVOQUJM
RShOT1RJRklDQVRJT05TKQotICAgIC8vIENsZWFyaW5nIE5vdGlmaWNhdGlvbnMgcmVxdWVzdHMg
aW52b2x2ZXMgYWNjZXNzaW5nIHRoZSBjbGllbnQgc28gaXQgbXVzdCBiZSBkb25lCi0gICAgLy8g
YmVmb3JlIHRoZSBmcmFtZSBpcyBkZXRhY2hlZC4KLSAgICByZXNldE5vdGlmaWNhdGlvbnMoKTsK
LSNlbmRpZgotfQotCi12b2lkIERPTVdpbmRvdzo6cmVzZXRHZW9sb2NhdGlvbigpCi17Ci0gICAg
Ly8gR2VvbG9jYXRpb24gc2hvdWxkIGNhbmNlbCBhY3Rpdml0aWVzIGFuZCBwZXJtaXNzaW9uIHJl
cXVlc3RzIHdoZW4gdGhlIHBhZ2UgaXMgZGV0YWNoZWQuCi0gICAgaWYgKG1fbmF2aWdhdG9yKQot
ICAgICAgICBtX25hdmlnYXRvci0+cmVzZXRHZW9sb2NhdGlvbigpOwotfQotCiAjaWYgRU5BQkxF
KElOREVYRURfREFUQUJBU0UpCiB2b2lkIERPTVdpbmRvdzo6c2V0SURCRmFjdG9yeShQYXNzUmVm
UHRyPElEQkZhY3Rvcnk+IGlkYkZhY3RvcnkpCiB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93
LmgJKHJldmlzaW9uIDEwODEyNikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTkyLDggKzkyLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAg
ICAgICAgIHZpcnR1YWwgRE9NV2luZG93KiB0b0RPTVdpbmRvdygpOwogCi0gICAgICAgIHZpcnR1
YWwgdm9pZCBmcmFtZURlc3Ryb3llZCgpIE9WRVJSSURFOwotCiAgICAgICAgIHZvaWQgcmVnaXN0
ZXJQcm9wZXJ0eShET01XaW5kb3dQcm9wZXJ0eSopOwogICAgICAgICB2b2lkIHVucmVnaXN0ZXJQ
cm9wZXJ0eShET01XaW5kb3dQcm9wZXJ0eSopOwogCkBAIC0yMzEsOSArMjI5LDYgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHByaW50RXJyb3JNZXNzYWdlKGNvbnN0IFN0cmlu
ZyYpOwogICAgICAgICBTdHJpbmcgY3Jvc3NEb21haW5BY2Nlc3NFcnJvck1lc3NhZ2UoRE9NV2lu
ZG93KiBhY3RpdmVXaW5kb3cpOwogCi0gICAgICAgIHZvaWQgcGFnZURlc3Ryb3llZCgpOwotICAg
ICAgICB2b2lkIHJlc2V0R2VvbG9jYXRpb24oKTsKLQogICAgICAgICB2b2lkIHBvc3RNZXNzYWdl
KFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBtZXNzYWdlLCBjb25zdCBNZXNzYWdl
UG9ydEFycmF5KiwgY29uc3QgU3RyaW5nJiB0YXJnZXRPcmlnaW4sIERPTVdpbmRvdyogc291cmNl
LCBFeGNlcHRpb25Db2RlJik7CiAgICAgICAgIC8vIEZJWE1FOiByZW1vdmUgdGhpcyB3aGVuIHdl
IHVwZGF0ZSB0aGUgT2JqQyBiaW5kaW5ncyAoYnVnICMyODc3NCkuCiAgICAgICAgIHZvaWQgcG9z
dE1lc3NhZ2UoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1lc3NhZ2UsIE1lc3Nh
Z2VQb3J0KiwgY29uc3QgU3RyaW5nJiB0YXJnZXRPcmlnaW4sIERPTVdpbmRvdyogc291cmNlLCBF
eGNlcHRpb25Db2RlJik7CkBAIC00MTksNiArNDE0LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgIHByaXZhdGU6CiAgICAgICAgIGV4cGxpY2l0IERPTVdpbmRvdyhGcmFtZSopOwogCisgICAg
ICAgIHZpcnR1YWwgdm9pZCBmcmFtZURlc3Ryb3llZCgpIE9WRVJSSURFOworICAgICAgICB2aXJ0
dWFsIHZvaWQgd2lsbERldGFjaFBhZ2UoKSBPVkVSUklERTsKKwogICAgICAgICB2aXJ0dWFsIHZv
aWQgcmVmRXZlbnRUYXJnZXQoKSB7IHJlZigpOyB9CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkZXJl
ZkV2ZW50VGFyZ2V0KCkgeyBkZXJlZigpOyB9CiAgICAgICAgIHZpcnR1YWwgRXZlbnRUYXJnZXRE
YXRhKiBldmVudFRhcmdldERhdGEoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93UHJvcGVydHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93UHJvcGVydHkuY3BwCShyZXZpc2lvbiAxMDgxMjYpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvd1Byb3BlcnR5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDksNCArNDksOSBAQCB2
b2lkIERPTVdpbmRvd1Byb3BlcnR5OjpkaXNjb25uZWN0RnJhbWUoCiAgICAgbV9mcmFtZSA9IDA7
CiB9CiAKK3ZvaWQgRE9NV2luZG93UHJvcGVydHk6OndpbGxEZXRhY2hQYWdlKCkKK3sKKyAgICAv
LyBTdWJjbGFzc2VzIHNob3VsZCBvdmVycmlkZSB0aGlzIGZ1bmN0aW9uIHRvIGhhbmRsZSB0aGlz
IG5vdGlmaWNhdGlvbi4KK30KKwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3dQcm9wZXJ0eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93
UHJvcGVydHkuaAkocmV2aXNpb24gMTA4MTI2KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3dQcm9wZXJ0eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw5IEBAIGNsYXNzIEZy
YW1lOwogY2xhc3MgRE9NV2luZG93UHJvcGVydHkgewogcHVibGljOgogICAgIGV4cGxpY2l0IERP
TVdpbmRvd1Byb3BlcnR5KEZyYW1lKik7CisKICAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdEZy
YW1lKCk7CisgICAgdmlydHVhbCB2b2lkIHdpbGxEZXRhY2hQYWdlKCk7CiAKICAgICBGcmFtZSog
ZnJhbWUoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lOyB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUu
Y3BwCShyZXZpc2lvbiAxMDgxMjYpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNjYwLDcgKzY2MCw3IEBAIERPTVdpbmRvdyogRnJhbWU6OmRvbVdp
bmRvdygpIGNvbnN0CiAgICAgcmV0dXJuIG1fZG9tV2luZG93LmdldCgpOwogfQogCi12b2lkIEZy
YW1lOjpwYWdlRGVzdHJveWVkKCkKK3ZvaWQgRnJhbWU6OndpbGxEZXRhY2hQYWdlKCkKIHsKICAg
ICAvLyBGSVhNRTogUmVuYW1lIHRoaXMgZnVuY3Rpb24sIHNpbmNlIGl0J3MgY2FsbGVkIG5vdCBv
bmx5IGZyb20gUGFnZSBkZXN0cnVjdG9yLCBidXQgaW4gc2V2ZXJhbCBvdGhlciBjYXNlcy4KICAg
ICAvLyBUaGlzIGNsZWFudXAgaXMgbmVlZGVkIHdoZW5ldmVyIHdlIHJlbW92ZSBhIGZyYW1lIGZy
b20gcGFnZS4KQEAgLTY2OCwxMyArNjY4LDE0IEBAIHZvaWQgRnJhbWU6OnBhZ2VEZXN0cm95ZWQo
KQogICAgIGlmIChGcmFtZSogcGFyZW50ID0gdHJlZSgpLT5wYXJlbnQoKSkKICAgICAgICAgcGFy
ZW50LT5sb2FkZXIoKS0+Y2hlY2tMb2FkQ29tcGxldGUoKTsKIAotICAgIGlmIChtX2RvbVdpbmRv
dykgewotICAgICAgICBtX2RvbVdpbmRvdy0+cmVzZXRHZW9sb2NhdGlvbigpOwogI2lmIEVOQUJM
RShOT1RJRklDQVRJT05TKQorICAgIGlmIChtX2RvbVdpbmRvdykKICAgICAgICAgbV9kb21XaW5k
b3ctPnJlc2V0Tm90aWZpY2F0aW9ucygpOwogI2VuZGlmCi0gICAgICAgIG1fZG9tV2luZG93LT5w
YWdlRGVzdHJveWVkKCk7Ci0gICAgfQorCisgICAgSGFzaFNldDxGcmFtZURlc3RydWN0aW9uT2Jz
ZXJ2ZXIqPjo6aXRlcmF0b3Igc3RvcCA9IG1fZGVzdHJ1Y3Rpb25PYnNlcnZlcnMuZW5kKCk7Cisg
ICAgZm9yIChIYXNoU2V0PEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlcio+OjppdGVyYXRvciBpdCA9
IG1fZGVzdHJ1Y3Rpb25PYnNlcnZlcnMuYmVnaW4oKTsgaXQgIT0gc3RvcDsgKytpdCkKKyAgICAg
ICAgKCppdCktPndpbGxEZXRhY2hQYWdlKCk7CiAKICAgICAvLyBGSVhNRTogSXQncyB1bmNsZWFy
IGFzIHRvIHdoeSB0aGlzIGlzIGNhbGxlZCBtb3JlIHRoYW4gb25jZSwgYnV0IGl0IGlzLAogICAg
IC8vIHNvIHBhZ2UoKSBjb3VsZCBiZSBOVUxMLgpAQCAtNjgzLDggKzY4NCw2IEBAIHZvaWQgRnJh
bWU6OnBhZ2VEZXN0cm95ZWQoKQogCiAgICAgc2NyaXB0KCktPmNsZWFyU2NyaXB0T2JqZWN0cygp
OwogICAgIHNjcmlwdCgpLT51cGRhdGVQbGF0Zm9ybVNjcmlwdE9iamVjdHMoKTsKLQotICAgIGRl
dGFjaEZyb21QYWdlKCk7CiB9CiAKIHZvaWQgRnJhbWU6OmRpc2Nvbm5lY3RPd25lckVsZW1lbnQo
KQpAQCAtNzE4LDE3ICs3MTcsMTYgQEAgdm9pZCBGcmFtZTo6dHJhbnNmZXJDaGlsZEZyYW1lVG9O
ZXdEb2N1bQogICAgICAgICAgICAgIG1fcGFnZS0+ZGVjcmVtZW50RnJhbWVDb3VudCgpOwogICAg
ICAgICB9CiAKLSAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBpZGVhbGx5IGFsbG93IGV4aXN0
aW5nIEdlb2xvY2F0aW9uIGFjdGl2aXRpZXMgdG8gY29udGludWUKLSAgICAgICAgLy8gd2hlbiB0
aGUgR2VvbG9jYXRpb24ncyBpZnJhbWUgaXMgcmVwYXJlbnRlZC4KLSAgICAgICAgLy8gU2VlIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NTU3NwotICAgICAgICAvLyBh
bmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUyODc3CiAgICAgICAg
IGlmIChtX2RvbVdpbmRvdykgewotICAgICAgICAgICAgbV9kb21XaW5kb3ctPnJlc2V0R2VvbG9j
YXRpb24oKTsKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKICAgICAgICAgICAgIG1fZG9tV2lu
ZG93LT5yZXNldE5vdGlmaWNhdGlvbnMoKTsKICNlbmRpZgogICAgICAgICB9CiAKKyAgICAgICAg
SGFzaFNldDxGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIqPjo6aXRlcmF0b3Igc3RvcCA9IG1fZGVz
dHJ1Y3Rpb25PYnNlcnZlcnMuZW5kKCk7CisgICAgICAgIGZvciAoSGFzaFNldDxGcmFtZURlc3Ry
dWN0aW9uT2JzZXJ2ZXIqPjo6aXRlcmF0b3IgaXQgPSBtX2Rlc3RydWN0aW9uT2JzZXJ2ZXJzLmJl
Z2luKCk7IGl0ICE9IHN0b3A7ICsraXQpCisgICAgICAgICAgICAoKml0KS0+d2lsbERldGFjaFBh
Z2UoKTsKKwogICAgICAgICBtX3BhZ2UgPSBuZXdQYWdlOwogCiAgICAgICAgIGlmIChuZXdQYWdl
KQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaAkocmV2aXNpb24gMTA4MTI2KQorKysgU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZS5oCSh3b3JraW5nIGNvcHkpCkBAIC04OSw4ICs4OSw4IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBhZGREZXN0cnVjdGlvbk9ic2VydmVyKEZyYW1lRGVz
dHJ1Y3Rpb25PYnNlcnZlciopOwogICAgICAgICB2b2lkIHJlbW92ZURlc3RydWN0aW9uT2JzZXJ2
ZXIoRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyKik7CiAKKyAgICAgICAgdm9pZCB3aWxsRGV0YWNo
UGFnZSgpOwogICAgICAgICB2b2lkIGRldGFjaEZyb21QYWdlKCk7Ci0gICAgICAgIHZvaWQgcGFn
ZURlc3Ryb3llZCgpOwogICAgICAgICB2b2lkIGRpc2Nvbm5lY3RPd25lckVsZW1lbnQoKTsKIAog
ICAgICAgICBQYWdlKiBwYWdlKCkgY29uc3Q7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lRGVzdHJ1Y3Rpb25PYnNlcnZlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuY3BwCShyZXZpc2lvbiAxMDgxMjYpCisrKyBT
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTU4LDQgKzU4LDkgQEAgdm9pZCBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXI6OmZy
YW1lRGVzdAogICAgIG1fZnJhbWUgPSAwOwogfQogCit2b2lkIEZyYW1lRGVzdHJ1Y3Rpb25PYnNl
cnZlcjo6d2lsbERldGFjaFBhZ2UoKQoreworICAgIC8vIFN1YmNsYXNzZXMgc2hvdWxkIG92ZXJy
aWRlIHRoaXMgZnVuY3Rpb24gdG8gaGFuZGxlIHRoaXMgbm90aWZpY2F0aW9uLgorfQorCiB9Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyLmgJ
KHJldmlzaW9uIDEwODEyNikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVEZXN0cnVjdGlv
bk9ic2VydmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDEwIEBAIGNsYXNzIEZyYW1l
OwogY2xhc3MgRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyIHsKIHB1YmxpYzoKICAgICBleHBsaWNp
dCBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIoRnJhbWUqKTsKKwogICAgIHZpcnR1YWwgdm9pZCBm
cmFtZURlc3Ryb3llZCgpOworICAgIHZpcnR1YWwgdm9pZCB3aWxsRGV0YWNoUGFnZSgpOworCiAg
ICAgRnJhbWUqIGZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZTsgfQogCiBwcm90ZWN0ZWQ6
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuY3BwCShyZXZpc2lvbiAxMDgxMjYpCisrKyBT
b3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY3LDEy
ICs2Nyw2IEBAIE5hdmlnYXRvclN1cHBsZW1lbnQqIE5hdmlnYXRvcjo6cmVxdWlyZVMKICAgICBy
ZXR1cm4gbV9zdXBwbGltZW50cy5nZXQobmFtZS5pbXBsKCkpOwogfQogCi12b2lkIE5hdmlnYXRv
cjo6cmVzZXRHZW9sb2NhdGlvbigpCi17Ci0gICAgaWYgKG1fZ2VvbG9jYXRpb24pCi0gICAgICAg
IG1fZ2VvbG9jYXRpb24tPnJlc2V0KCk7Ci19Ci0KIC8vIElmIHRoaXMgZnVuY3Rpb24gcmV0dXJu
cyB0cnVlLCB3ZSBuZWVkIHRvIGhpZGUgdGhlIHN1YnN0cmluZyAiNC4iIHRoYXQgd291bGQgb3Ro
ZXJ3aXNlCiAvLyBhcHBlYXIgaW4gdGhlIGFwcFZlcnNpb24gc3RyaW5nLiBUaGlzIGlzIHRvIGF2
b2lkIHByb2JsZW1zIHdpdGggb2xkIHZlcnNpb25zIG9mIGEKIC8vIGxpYnJhcnkgY2FsbGVkIE9w
ZW5DdWJlIFF1aWNrTWVudSwgd2hpY2ggYXMgb2YgdGhpcyB3cml0aW5nIGlzIHN0aWxsIGJlaW5n
IHVzZWQgb24KQEAgLTE1MSwxMyArMTQ1LDYgQEAgYm9vbCBOYXZpZ2F0b3I6OmphdmFFbmFibGVk
KCkgY29uc3QKICAgICByZXR1cm4gbV9mcmFtZS0+c2V0dGluZ3MoKS0+aXNKYXZhRW5hYmxlZCgp
OwogfQogCi1HZW9sb2NhdGlvbiogTmF2aWdhdG9yOjpnZW9sb2NhdGlvbigpIGNvbnN0Ci17Ci0g
ICAgaWYgKCFtX2dlb2xvY2F0aW9uKQotICAgICAgICBtX2dlb2xvY2F0aW9uID0gR2VvbG9jYXRp
b246OmNyZWF0ZShtX2ZyYW1lKTsKLSAgICByZXR1cm4gbV9nZW9sb2NhdGlvbi5nZXQoKTsKLX0K
LQogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiBQb2ludGVyTG9jayogTmF2aWdhdG9yOjp3ZWJr
aXRQb2ludGVyKCkgY29uc3QKIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9y
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuaAkocmV2aXNp
b24gMTA4MTI2KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuaAkod29ya2luZyBj
b3B5KQpAQCAtMzQsNyArMzQsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBET01NaW1l
VHlwZUFycmF5OwogY2xhc3MgRE9NUGx1Z2luQXJyYXk7CiBjbGFzcyBGcmFtZTsKLWNsYXNzIEdl
b2xvY2F0aW9uOwogY2xhc3MgUG9pbnRlckxvY2s7CiBjbGFzcyBQbHVnaW5EYXRhOwogCkBAIC00
NSw4ICs0NCw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxOYXZpZ2F0b3I+IGNy
ZWF0ZShGcmFtZSogZnJhbWUpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBOYXZpZ2F0b3IoZnJhbWUp
KTsgfQogICAgIHZpcnR1YWwgfk5hdmlnYXRvcigpOwogCi0gICAgdm9pZCByZXNldEdlb2xvY2F0
aW9uKCk7Ci0KICAgICBTdHJpbmcgYXBwVmVyc2lvbigpIGNvbnN0OwogICAgIFN0cmluZyBsYW5n
dWFnZSgpIGNvbnN0OwogICAgIERPTVBsdWdpbkFycmF5KiBwbHVnaW5zKCkgY29uc3Q7CkBAIC01
Niw4ICs1Myw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgU3RyaW5nIHVzZXJBZ2VudCgpIGNv
bnN0OwogCi0gICAgR2VvbG9jYXRpb24qIGdlb2xvY2F0aW9uKCkgY29uc3Q7Ci0KICNpZiBFTkFC
TEUoUE9JTlRFUl9MT0NLKQogICAgIFBvaW50ZXJMb2NrKiB3ZWJraXRQb2ludGVyKCkgY29uc3Q7
CiAjZW5kaWYKQEAgLTgwLDcgKzc1LDYgQEAgcHJpdmF0ZToKIAogICAgIG11dGFibGUgUmVmUHRy
PERPTVBsdWdpbkFycmF5PiBtX3BsdWdpbnM7CiAgICAgbXV0YWJsZSBSZWZQdHI8RE9NTWltZVR5
cGVBcnJheT4gbV9taW1lVHlwZXM7Ci0gICAgbXV0YWJsZSBSZWZQdHI8R2VvbG9jYXRpb24+IG1f
Z2VvbG9jYXRpb247CiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICBtdXRhYmxlIFJlZlB0
cjxQb2ludGVyTG9jaz4gbV9wb2ludGVyOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
YWdlL05hdmlnYXRvci5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9OYXZp
Z2F0b3IuaWRsCShyZXZpc2lvbiAxMDgxMjYpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL05hdmln
YXRvci5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTQwLDEwICs0MCw2IEBAIG1vZHVsZSB3aW5kb3cg
ewogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIG9uTGluZTsKIAotI2lmIGRl
ZmluZWQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAmJiBFTkFCTEVfR0VPTE9DQVRJT04KLSAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIEdlb2xvY2F0aW9uIGdlb2xv
Y2F0aW9uOwotI2VuZGlmCi0KICNpZiBkZWZpbmVkKEVOQUJMRV9QT0lOVEVSX0xPQ0spICYmIEVO
QUJMRV9QT0lOVEVSX0xPQ0sKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOEVuYWJsZWRB
dFJ1bnRpbWVdIFBvaW50ZXJMb2NrIHdlYmtpdFBvaW50ZXI7CiAjZW5kaWYKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmNwcAkocmV2aXNpb24gMTA4MTI2KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjAyLDggKzIwMiwxMCBAQCBQYWdlOjp+UGFnZSgpCiAg
ICAgc2V0R3JvdXBOYW1lKFN0cmluZygpKTsKICAgICBhbGxQYWdlcy0+cmVtb3ZlKHRoaXMpOwog
ICAgIAotICAgIGZvciAoRnJhbWUqIGZyYW1lID0gbWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9
IGZyYW1lLT50cmVlKCktPnRyYXZlcnNlTmV4dCgpKQotICAgICAgICBmcmFtZS0+cGFnZURlc3Ry
b3llZCgpOworICAgIGZvciAoRnJhbWUqIGZyYW1lID0gbWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFt
ZSA9IGZyYW1lLT50cmVlKCktPnRyYXZlcnNlTmV4dCgpKSB7CisgICAgICAgIGZyYW1lLT53aWxs
RGV0YWNoUGFnZSgpOworICAgICAgICBmcmFtZS0+ZGV0YWNoRnJvbVBhZ2UoKTsKKyAgICB9CiAK
ICAgICBtX2VkaXRvckNsaWVudC0+cGFnZURlc3Ryb3llZCgpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128007</attachid>
            <date>2012-02-21 11:28:56 -0800</date>
            <delta_ts>2012-02-21 13:04:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78860-20120221112855.patch</filename>
            <type>text/plain</type>
            <size>42485</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwODM2NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUxIEBACisyMDEyLTAyLTIxICBBZGFtIEJh
cnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRnJhbWUgYW5kIE5hdmlnYXRvciBz
aG91bGRuJ3QgbmVlZCB0byB3b3JyeSBhYm91dCBHZW9sb2NhdGlvbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg4NjAKKworICAgICAgICBSZXZpZXdl
ZCBieSBFcmljIFNlaWRlbC4KKworICAgICAgICBUaGlzIHBhdGNoIHJlbW92ZXMgc29tZSBHZW9s
b2NhdGlvbi1zcGVjaWZpYyBjb2RlIGZyb20gRnJhbWUgYW5kCisgICAgICAgIE5hdmlnYXRvciBp
biBmYXZvciBvZiBvdXIgbmV3IHN1cHBsZW1lbnRhbCBtb2R1bGUgbWVjaGFuaXNtLiAgV2UncmUK
KyAgICAgICAgc3RpbGwgcmVmaW5pbmcgdGhlIG1vZHVsZSBzeXN0ZW0sIGJ1dCB3ZSBzZWVtIHRv
IGJlIGNvbnZlcmdpbmcgb24gYQorICAgICAgICBzaW1wbGUgT2JzZXJ2ZXIvU3VwcGxlbWVudCBk
ZXNpZ24uCisKKyAgICAgICAgSW4gYSBmdXR1cmUgcGF0Y2gsIEknbGwgbW92ZSB0aGUgcmVtYWlu
aW5nIEdlb2xvY2F0aW9uLXJlbGF0ZWQgZmlsZXMgaW4KKyAgICAgICAgV2ViQ29yZSBpbnRvIE1v
ZHVsZXMvZ2VvbG9jYXRpb24uICBUaGlzIHBhdGNoIGFwcGVhcnMgdG8gYmUgdGhlIGZpcnN0Cisg
ICAgICAgIHBhdGNoIHRoYXQgaW50cm9kdWNlcyBhIG1vZHVsZSB1c2VkIGJ5IGFsbCB0aGUgdmFy
aW91cyBidWlsZCBzeXN0ZW1zLAorICAgICAgICB3aGljaCBpcyB3aHkgdGhlcmUncyBhIGJpdCBt
b3JlIGJ1aWxkIHN5c3RlbSBvdmVyaGVhZCB0aGFuIHVzdWFsLgorCisgICAgICAgICogTW9kdWxl
cy9nZW9sb2NhdGlvbjogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZp
Z2F0b3JHZW9sb2NhdGlvbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6TmF2aWdhdG9yR2VvbG9jYXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdG9yR2VvbG9jYXRpb246On5OYXZpZ2F0b3JHZW9sb2Nh
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6cGFnZURlc3Ry
b3llZCk6CisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6ZnJvbSk6Cisg
ICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6Z2VvbG9jYXRpb24pOgorICAg
ICAgICAqIE1vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKE5hdmlnYXRvckdlb2xvY2F0aW9uKToKKyAg
ICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmlkbDogQWRk
ZWQuCisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgICogcGFnZS9ET01XaW5kb3cuaDoKKyAgICAgICAgKERPTVdpbmRvdyk6CisgICAgICAg
ICogcGFnZS9GcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6cGFnZURlc3Ryb3ll
ZCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6dHJhbnNmZXJDaGlsZEZyYW1lVG9OZXdEb2N1
bWVudCk6CisgICAgICAgICogcGFnZS9GcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyOjpwYWdlRGVzdHJveWVkKToK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBhZ2UvRnJhbWVEZXN0cnVjdGlvbk9ic2Vy
dmVyLmg6CisgICAgICAgIChGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIpOgorICAgICAgICAqIHBh
Z2UvTmF2aWdhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBhZ2UvTmF2
aWdhdG9yLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKE5hdmlnYXRvcik6CisgICAg
ICAgICogcGFnZS9OYXZpZ2F0b3IuaWRsOgorCiAyMDEyLTAyLTIxICBQaGlsaXBwZSBOb3JtYW5k
ICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBXZWJBdWRpbyBidWlsZCBp
cyBicm9rZW4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAxMDgzNjcpCisrKyBT
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYg
QEAKIFNFVChXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJDT1JFX0RJUn0i
CisgICAgIiR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvZ2VvbG9jYXRpb24iCiAgICAgIiR7V0VCQ09S
RV9ESVJ9L2FjY2Vzc2liaWxpdHkiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L2JpbmRpbmdzIgogICAg
ICIke1dFQkNPUkVfRElSfS9iaW5kaW5ncy9nZW5lcmljIgpAQCAtODcsNiArODgsNyBAQCBTRVQo
V2ViQ29yZV9JTkNMVURFX0RJUkVDVE9SSUVTCiApCiAKIFNFVChXZWJDb3JlX0lETF9JTkNMVURF
UworICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24KICAgICBiaW5kaW5ncy9nZW5lcmljCiAgICAgY3Nz
CiAgICAgZG9tCkBAIC0xMDUsNiArMTA3LDggQEAgU0VUKFdlYkNvcmVfSURMX0lOQ0xVREVTCiAp
CiAKIFNFVChXZWJDb3JlX0lETF9GSUxFUworICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdh
dG9yR2VvbG9jYXRpb24uaWRsCisKICAgICBjc3MvQ291bnRlci5pZGwKICAgICBjc3MvQ1NTQ2hh
cnNldFJ1bGUuaWRsCiAgICAgY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGwKQEAgLTQwMCw2ICs0MDQs
OCBAQCBTRVQoV2ViQ29yZV9JRExfRklMRVMKICkKIAogU0VUKFdlYkNvcmVfU09VUkNFUworICAg
IE1vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uY3BwCisKICAgICBhY2Nl
c3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5QVJJQUdyaWQuY3BwCiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRD
ZWxsLmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiAxMDgz
NjcpCisrKyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkp
CkBAIC0yOCw2ICsyOCw3IEBACiAKIFZQQVRIID0gXAogICAgICQoV2ViQ29yZSkgXAorICAgICQo
V2ViQ29yZSkvTW9kdWxlcy9nZW9sb2NhdGlvbiBcCiAgICAgJChXZWJDb3JlKS9iaW5kaW5ncy9n
ZW5lcmljIFwKICAgICAkKFdlYkNvcmUpL2JpbmRpbmdzL2pzIFwKICAgICAkKFdlYkNvcmUpL2Jp
bmRpbmdzL29iamMgXApAQCAtNTMsNiArNTQsNyBAQCBWUEFUSCA9IFwKICMKIAogQklORElOR19J
RExTID0gXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9s
b2NhdGlvbi5pZGwgXAogICAgICQoV2ViQ29yZSkvY3NzL0NTU0NoYXJzZXRSdWxlLmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9jc3MvQ1NTRm9udEZhY2VSdWxlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9j
c3MvQ1NTSW1wb3J0UnVsZS5pZGwgXApJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMucHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQko
cmV2aXNpb24gMTA4MzY3KQorKysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCSh3
b3JraW5nIGNvcHkpCkBAIC04Niw2ICs4Niw3IEBAIFNUWUxFU0hFRVRTX0VNQkVEID0gXAogICAg
ICQkUFdEL2Nzcy9tb2JpbGVUaGVtZVF0LmNzcwogCiBJRExfQklORElOR1MgKz0gXAorICAgICQk
UFdEL01vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaWRsIFwKICAgICAk
JFBXRC9jc3MvQ291bnRlci5pZGwgXAogICAgICQkUFdEL2Nzcy9DU1NDaGFyc2V0UnVsZS5pZGwg
XAogICAgICQkUFdEL2Nzcy9DU1NGb250RmFjZVJ1bGUuaWRsIFwKQEAgLTY4Miw2ICs2ODMsNyBA
QCBlbHNlOiBnZW5lcmF0b3IgPSBKUwogZ2VuZXJhdGVCaW5kaW5ncy5jb21tYW5kcyA9IHBlcmwg
LUkkJFBXRC9iaW5kaW5ncy9zY3JpcHRzICQkZ2VuZXJhdGVCaW5kaW5ncy5zY3JpcHQgXAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC0tZGVmaW5lcyBcIiQke0ZFQVRVUkVfREVGSU5FU19K
QVZBU0NSSVBUfVwiIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLWdlbmVyYXRvciAk
JGdlbmVyYXRvciBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS1pbmNsdWRlICQkUFdE
L01vZHVsZXMvZ2VvbG9jYXRpb24gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0taW5j
bHVkZSAkJFBXRC9kb20gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0taW5jbHVkZSAk
JFBXRC9maWxlYXBpIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLWluY2x1ZGUgJCRQ
V0QvaHRtbCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkocmV2aXNpb24gMTA4MzY3KQorKysg
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHdvcmtpbmcgY29weSkKQEAgLTExLDYgKzEx
LDcgQEAgd2ViY29yZV9jcHBmbGFncyArPSBcCiAJLUkkKHNyY2RpcikvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvaW5jbHVkZSBcCiAJLUkkKHNyY2RpcikvU291cmNlL1RoaXJkUGFydHkvQU5HTEUv
aW5jbHVkZS9HTFNMQU5HIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZSBcCisJLUkkKHNy
Y2RpcikvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbiBcCiAJLUkkKHNyY2Rpcikv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eSBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVy
aWMgXApAQCAtNzU4LDYgKzc1OSw3IEBAIERlcml2ZWRTb3VyY2VzL0FOR0xFL2dsc2xhbmdfdGFi
LmNwcDogU28KIERlcml2ZWRTb3VyY2VzL0FOR0xFL2dsc2xhbmdfdGFiLmg6IERlcml2ZWRTb3Vy
Y2VzL0FOR0xFL2dsc2xhbmdfdGFiLmNwcAogCiBJRExfUEFUSCA6PSBcCisgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL2dlb2xvY2F0aW9uIFwKICAgICAkKFdlYkNvcmUpL2JpbmRpbmdzL2pzIFwKICAg
ICAkKFdlYkNvcmUpL2NzcyBcCiAgICAgJChXZWJDb3JlKS9kb20gXApJbmRleDogU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCShyZXZpc2lvbiAxMDgzNjcpCisrKyBTb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC02NTAsNiArNjUwLDcgQEAgd2Vi
Y29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL1hQYXRoR3Jh
bW1hci5oCiAKIGRvbV9iaW5kaW5nX2lkbHMgKz0gXAorCSQoV2ViQ29yZSkvTW9kdWxlcy9nZW9s
b2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5pZGwgXAogCSQoV2ViQ29yZSkvY3NzL0NTU0No
YXJzZXRSdWxlLmlkbCBcCiAJJChXZWJDb3JlKS9jc3MvQ1NTRm9udEZhY2VSdWxlLmlkbCBcCiAJ
JChXZWJDb3JlKS9jc3MvQ1NTSW1wb3J0UnVsZS5pZGwgXApAQCAtOTUxLDYgKzk1Miw4IEBAIGRv
bV9iaW5kaW5nX2lkbHMgKz0gXAogCSQoV2ViQ29yZSkveG1sL1hTTFRQcm9jZXNzb3IuaWRsCiAK
IHdlYmNvcmVfc291cmNlcyArPSBcCisJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlv
bi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2Vv
bG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaCBcCiAJU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsLmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsLmggXAogCVNvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNwcCBcCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9UYXJnZXQucHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1Rhcmdl
dC5wcmkJKHJldmlzaW9uIDEwODM2NykKKysrIFNvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkJKHdv
cmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDggQEAgaW5jbHVkZV93ZWJpbnNwZWN0b3IgewogfQog
CiBTT1VSQ0VTICs9IFwKKyAgICBNb2R1bGVzL0dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0
aW9uLmNwcCBcCisgICAgXAogICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUltYWdlTWFw
TGluay5jcHAgXAogICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbHMu
Y3BwIFwKICAgICBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdC5jcHAgXApJbmRl
eDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4JKHJldmlzaW9uIDEwODM2NykKKysrIFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluCSh3b3JraW5nIGNvcHkpCkBAIC02NzIsNiArNjcyLDcgQEAgX19aTjdX
ZWJDb3JlMjRGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXJEMgogX19aTjdXZWJDb3JlMjRGcmFtZURl
c3RydWN0aW9uT2JzZXJ2ZXJDMkVQTlNfNUZyYW1lRQogX19aTjdXZWJDb3JlMjRGcmFtZURlc3Ry
dWN0aW9uT2JzZXJ2ZXIxMm9ic2VydmVGcmFtZUVQTlNfNUZyYW1lRQogX19aTjdXZWJDb3JlMjRG
cmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIxNGZyYW1lRGVzdHJveWVkRXYKK19fWk43V2ViQ29yZTI0
RnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyMTR3aWxsRGV0YWNoUGFnZUV2CiBfX1pON1dlYkNvcmUy
NGtleUlkZW50aWZpZXJGb3JLZXlFdmVudEVQN05TRXZlbnQKIF9fWk43V2ViQ29yZTI0bm90aWZ5
SGlzdG9yeUl0ZW1DaGFuZ2VkRQogX19aTjdXZWJDb3JlMjVIaXN0b3J5UHJvcGVydHlMaXN0V3Jp
dGVyMTFyZWxlYXNlRGF0YUV2CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCShyZXZpc2lvbiAxMDgzNjcp
CisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTcyMCw2
ICs3MjAsNyBAQAogICAgICAgICAgICAgJ01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkLmlkbCcsCiAg
ICAgICAgICAgICAnTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWRMaXN0LmlkbCcsCiAgICAgICAgICAg
ICAnTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQuaWRsJywKKyAgICAgICAgICAgICdN
b2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmlkbCcsCiAgICAgICAgICAg
ICAnTW9kdWxlcy9pbmRleGVkZGIvRE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmlkbCcsCiAgICAg
ICAgICAgICAnTW9kdWxlcy9pbnRlbnRzL0RPTVdpbmRvd0ludGVudHMuaWRsJywKICAgICAgICAg
ICAgICdNb2R1bGVzL2ludGVudHMvSW50ZW50LmlkbCcsCkBAIC0xMjc3LDYgKzEyNzgsOCBAQAog
ICAgICAgICAgICAgJ01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkTGlzdC5oJywKICAgICAgICAgICAg
ICdNb2R1bGVzL2dhbWVwYWQvTmF2aWdhdG9yR2FtZXBhZC5jcHAnLAogICAgICAgICAgICAgJ01v
ZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0b3JHYW1lcGFkLmgnLAorICAgICAgICAgICAgJ01vZHVsZXMv
Z2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uY3BwJywKKyAgICAgICAgICAgICdNb2R1
bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmgnLAogICAgICAgICAgICAgJ01v
ZHVsZXMvaW5kZXhlZGRiL0RPTVdpbmRvd0luZGV4ZWREYXRhYmFzZS5jcHAnLAogICAgICAgICAg
ICAgJ01vZHVsZXMvaW5kZXhlZGRiL0RPTVdpbmRvd0luZGV4ZWREYXRhYmFzZS5oJywKICAgICAg
ICAgICAgICdNb2R1bGVzL2ludGVudHMvSW50ZW50LmNwcCcsCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnByaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnByaQko
cmV2aXNpb24gMTA4MzY3KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkJKHdvcmtpbmcg
Y29weSkKQEAgLTE4LDYgKzE4LDcgQEAgV0VCQ09SRV9HRU5FUkFURURfU09VUkNFU19ESVIgPSAk
JHtST09UXwogCiBJTkNMVURFUEFUSCArPSBcCiAgICAgJCRTT1VSQ0VfRElSIFwKKyAgICAkJFNP
VVJDRV9ESVIvTW9kdWxlcy9nZW9sb2NhdGlvbiBcCiAgICAgJCRTT1VSQ0VfRElSL2FjY2Vzc2li
aWxpdHkgXAogICAgICQkU09VUkNFX0RJUi9iaW5kaW5ncyBcCiAgICAgJCRTT1VSQ0VfRElSL2Jp
bmRpbmdzL2dlbmVyaWMgXApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlv
bi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5jcHAJKHJldmlzaW9uIDAp
CisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0
aW9uLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMiwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RQorICogQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICogTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWQorICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNICisgKiBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk5hdmlnYXRvckdlb2xvY2F0aW9uLmgiCisKKyNp
bmNsdWRlICJHZW9sb2NhdGlvbi5oIgorI2luY2x1ZGUgIk5hdmlnYXRvci5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK05hdmlnYXRvckdlb2xvY2F0aW9uOjpOYXZpZ2F0b3JHZW9sb2NhdGlv
bihGcmFtZSogZnJhbWUpCisgICAgOiBET01XaW5kb3dQcm9wZXJ0eShmcmFtZSkKK3sKK30KKwor
TmF2aWdhdG9yR2VvbG9jYXRpb246On5OYXZpZ2F0b3JHZW9sb2NhdGlvbigpCit7Cit9CisKK3Zv
aWQgTmF2aWdhdG9yR2VvbG9jYXRpb246OndpbGxEZXRhY2hQYWdlKCkKK3sKKyAgICAvLyBGSVhN
RTogV2Ugc2hvdWxkIGlkZWFsbHkgYWxsb3cgZXhpc3RpbmcgR2VvbG9jYXRpb24gYWN0aXZpdGll
cyB0byBjb250aW51ZQorICAgIC8vIHdoZW4gdGhlIEdlb2xvY2F0aW9uJ3MgaWZyYW1lIGlzIHJl
cGFyZW50ZWQuIChBc3N1bWluZyB3ZSBjb250aW51ZSB0bworICAgIC8vIHN1cHBvcnQgcmVwYXJl
bnRpbmcgaWZyYW1lcy4pCisgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD01NTU3NworICAgIC8vIGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTI4NzcKKyAgICBpZiAobV9nZW9sb2NhdGlvbikKKyAgICAgICAgbV9nZW9s
b2NhdGlvbi0+cmVzZXQoKTsKK30KKworTmF2aWdhdG9yR2VvbG9jYXRpb24qIE5hdmlnYXRvckdl
b2xvY2F0aW9uOjpmcm9tKE5hdmlnYXRvciogbmF2aWdhdG9yKQoreworICAgIERFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoIk5hdmlnYXRvckdlb2xvY2F0aW9uIikpOwor
ICAgIE5hdmlnYXRvckdlb2xvY2F0aW9uKiBzdXBwbGVtZW50ID0gc3RhdGljX2Nhc3Q8TmF2aWdh
dG9yR2VvbG9jYXRpb24qPihOYXZpZ2F0b3JTdXBwbGVtZW50Ojpmcm9tKG5hdmlnYXRvciwgbmFt
ZSkpOworICAgIGlmICghc3VwcGxlbWVudCkgeworICAgICAgICBzdXBwbGVtZW50ID0gbmV3IE5h
dmlnYXRvckdlb2xvY2F0aW9uKG5hdmlnYXRvci0+ZnJhbWUoKSk7CisgICAgICAgIHByb3ZpZGVU
byhuYXZpZ2F0b3IsIG5hbWUsIGFkb3B0UHRyKHN1cHBsZW1lbnQpKTsKKyAgICB9CisgICAgcmV0
dXJuIHN1cHBsZW1lbnQ7Cit9CisKK0dlb2xvY2F0aW9uKiBOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6
Z2VvbG9jYXRpb24oTmF2aWdhdG9yKiBuYXZpZ2F0b3IpCit7CisgICAgcmV0dXJuIE5hdmlnYXRv
ckdlb2xvY2F0aW9uOjpmcm9tKG5hdmlnYXRvciktPmdlb2xvY2F0aW9uKCk7Cit9CisKK0dlb2xv
Y2F0aW9uKiBOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6Z2VvbG9jYXRpb24oKSBjb25zdAoreworICAg
IGlmICghbV9nZW9sb2NhdGlvbikKKyAgICAgICAgbV9nZW9sb2NhdGlvbiA9IEdlb2xvY2F0aW9u
OjpjcmVhdGUoZnJhbWUoKSk7CisgICAgcmV0dXJuIG1fZ2VvbG9jYXRpb24uZ2V0KCk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2Vv
bG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmgJKHJldmlzaW9u
IDApCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xv
Y2F0aW9uLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UKKyAqIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAqIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSAorICogREFNQUdFLgorICovCisKKyNp
Zm5kZWYgTmF2aWdhdG9yR2VvbG9jYXRpb25faAorI2RlZmluZSBOYXZpZ2F0b3JHZW9sb2NhdGlv
bl9oCisKKyNpbmNsdWRlICJET01XaW5kb3dQcm9wZXJ0eS5oIgorI2luY2x1ZGUgIk5hdmlnYXRv
clN1cHBsZW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBGcmFtZTsKK2Ns
YXNzIEdlb2xvY2F0aW9uOworY2xhc3MgTmF2aWdhdG9yOworCitjbGFzcyBOYXZpZ2F0b3JHZW9s
b2NhdGlvbiA6IHB1YmxpYyBOYXZpZ2F0b3JTdXBwbGVtZW50LCBwdWJsaWMgRE9NV2luZG93UHJv
cGVydHkgeworcHVibGljOgorICAgIHZpcnR1YWwgfk5hdmlnYXRvckdlb2xvY2F0aW9uKCk7Cisg
ICAgc3RhdGljIE5hdmlnYXRvckdlb2xvY2F0aW9uKiBmcm9tKE5hdmlnYXRvciopOworCisgICAg
c3RhdGljIEdlb2xvY2F0aW9uKiBnZW9sb2NhdGlvbihOYXZpZ2F0b3IqKTsKKyAgICBHZW9sb2Nh
dGlvbiogZ2VvbG9jYXRpb24oKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBOYXZpZ2F0b3JHZW9s
b2NhdGlvbihGcmFtZSopOworCisgICAgdmlydHVhbCB2b2lkIHdpbGxEZXRhY2hQYWdlKCkgT1ZF
UlJJREU7CisKKyAgICBtdXRhYmxlIFJlZlB0cjxHZW9sb2NhdGlvbj4gbV9nZW9sb2NhdGlvbjsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIE5hdmlnYXRvckdlb2xv
Y2F0aW9uX2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdh
dG9yR2VvbG9jYXRpb24uaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Z2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaWRsCShyZXZpc2lvbiAwKQorKysgU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5pZGwJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICog
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAq
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAq
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworbW9kdWxlIHdpbmRvdyB7CisKKyAgICBp
bnRlcmZhY2UgWworICAgICAgICBDb25kaXRpb25hbD1HRU9MT0NBVElPTiwKKyAgICAgICAgU3Vw
cGxlbWVudGFsPU5hdmlnYXRvcgorICAgIF0gTmF2aWdhdG9yR2VvbG9jYXRpb24geworICAgICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIEdlb2xvY2F0aW9u
IGdlb2xvY2F0aW9uOworICAgIH07CisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwL1dlYkNvcmUuZ3lwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
L1dlYkNvcmUuZ3lwCShyZXZpc2lvbiAxMDgzNjcpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cC9XZWJDb3JlLmd5cAkod29ya2luZyBjb3B5KQpAQCAtNTIsNiArNTIsNyBAQAogICAgICAg
Jy4uLycsCiAgICAgICAnLi4vLi4nLAogICAgICAgJy4uL01vZHVsZXMvZ2FtZXBhZCcsCisgICAg
ICAnLi4vTW9kdWxlcy9nZW9sb2NhdGlvbicsCiAgICAgICAnLi4vTW9kdWxlcy9pbnRlbnRzJywK
ICAgICAgICcuLi9Nb2R1bGVzL2luZGV4ZWRkYicsCiAgICAgICAnLi4vYWNjZXNzaWJpbGl0eScs
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvago9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagko
cmV2aXNpb24gMTA4MzY3KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTI0MDUxLDYgKzI0MDUxLDIyIEBACiAJCQk8L0Zp
bGU+CiAJCTwvRmlsdGVyPgogCQk8RmlsdGVyCisJCQlOYW1lPSJNb2R1bGVzIgorCQkJPgorCQkJ
PEZpbHRlcgorCQkJCU5hbWU9Imdlb2xvY2F0aW9uIgorCQkJCT4KKwkJCQk8RmlsZQorCQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcZ2VvbG9jYXRpb25cTmF2aWdhdG9yR2VvbG9jYXRpb24u
Y3BwIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0i
Li5cTW9kdWxlc1xnZW9sb2NhdGlvblxOYXZpZ2F0b3JHZW9sb2NhdGlvbi5oIgorCQkJCQk+CisJ
CQkJPC9GaWxlPgorCQkJPC9GaWx0ZXI+CisJCTwvRmlsdGVyPgorCQk8RmlsdGVyCiAJCQlOYW1l
PSJhY2Nlc3NpYmlsaXR5IgogCQkJPgogCQkJPEZpbGUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmVDb21tb24udnNwcm9wcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlQ29tbW9uLnZzcHJvcHMJKHJldmlzaW9uIDEw
ODM2NykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmVDb21tb24udnNw
cm9wcwkod29ya2luZyBjb3B5KQpAQCAtNyw3ICs3LDcgQEAKIAk+CiAJPFRvb2wKIAkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKLQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iJnF1b3Q7
JChQcm9qZWN0RGlyKS4uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxhY2Nlc3NpYmlsaXR5
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxhY2Nlc3NpYmlsaXR5XHdpbiZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpLi5cYnJpZGdlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxicmlk
Z2VcYyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYnJpZGdlXGpzYyZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5cY3NzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxlZGl0aW5nJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxmaWxlYXBpJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cikuLlxyZW5kZXJpbmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHJlbmRlcmluZ1xtYXRo
bWwmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHJlbmRlcmluZ1xzdHlsZSZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpLi5ccmVuZGVyaW5nXHN2ZyZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
Li5cYmluZGluZ3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJpbmRpbmdzXGdlbmVyaWMm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJpbmRpbmdzXGpzJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxiaW5kaW5nc1xqc1xzcGVjaWFsaXphdGlvbiZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5cZG9tJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxkb21cZGVmYXVsdCZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpLi5caGlzdG9yeSZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
Li5caHRtbCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5caHRtbFxjYW52YXMmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXGh0bWxccGFyc2VyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpciku
LlxodG1sXHNoYWRvdyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5caW5zcGVjdG9yJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcikuLlxsb2FkZXImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4u
XGxvYWRlclxhcHBjYWNoZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbG9hZGVyXGFyY2hp
dmUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGxvYWRlclxhcmNoaXZlXGNmJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcikuLlxsb2FkZXJcY2FjaGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXGxvYWRlclxpY29uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxtYXRobWwmcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKS4uXG5vdGlmaWNhdGlvbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKS4uXHBhZ2UmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBhZ2VcYW5pbWF0aW9uJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwYWdlXHNjcm9sbGluZyZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpLi5ccGFnZVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3Jt
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxhbmltYXRpb24mcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXG1vY2smcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXHBsYXRmb3JtXHNxbCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cd2lu
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxuZXR3b3JrJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxuZXR3b3JrXHdpbiZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5ccGxhdGZvcm1cY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3Jt
XGdyYXBoaWNzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1xj
YSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3NcZmlsdGVycyZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3NcZmlsdGVyc1xhcm0m
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzXG9wZW50eXBlJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1x0cmFuc2Zvcm1zJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVx0ZXh0JnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxwbGF0Zm9ybVx0ZXh0XHRyYW5zY29kZXImcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5c
eG1sJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlx4bWxccGFyc2VyJnF1b3Q7OyZxdW90OyQo
Q29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcV2ViQ29yZVxEZXJpdmVkU291cmNlcyZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpLi5ccGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5c
cGx1Z2luc1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2Z1xhbmltYXRpb24mcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2Z1xncmFwaGljcyZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5cc3ZnXHByb3BlcnRpZXMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2Z1xn
cmFwaGljc1xmaWx0ZXJzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxzdmcmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXHRlc3RpbmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHdt
bCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cc3RvcmFnZSZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5cd2Vic29ja2V0cyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cd29ya2VycyZx
dW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcaW5jbHVkZSZxdW90OzsmcXVvdDsk
KENvbmZpZ3VyYXRpb25CdWlsZERpcilcaW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZxdW90OyQoQ29u
ZmlndXJhdGlvbkJ1aWxkRGlyKVxpbmNsdWRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQo
Q29uZmlndXJhdGlvbkJ1aWxkRGlyKVxpbmNsdWRlXHByaXZhdGVcSmF2YVNjcmlwdENvcmUmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXEZvcndhcmRpbmdIZWFkZXJzJnF1b3Q7OyZxdW90OyQo
V2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVz
RGlyKVxpbmNsdWRlXHByaXZhdGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGlu
Y2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmll
c0RpcilcaW5jbHVkZVxwdGhyZWFkcyZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0Rpcilc
aW5jbHVkZVxzcWxpdGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVc
SmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVc
emxpYiZxdW90OyIKKwkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iJnF1b3Q7JChQcm9q
ZWN0RGlyKS4uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxNb2R1bGVzXGdlb2xvY2F0aW9u
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxhY2Nlc3NpYmlsaXR5JnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcikuLlxhY2Nlc3NpYmlsaXR5XHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
Li5cYnJpZGdlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxicmlkZ2VcYyZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpLi5cYnJpZGdlXGpzYyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5c
Y3NzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxlZGl0aW5nJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxmaWxlYXBpJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxyZW5kZXJpbmcm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHJlbmRlcmluZ1xtYXRobWwmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKS4uXHJlbmRlcmluZ1xzdHlsZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
Li5ccmVuZGVyaW5nXHN2ZyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYmluZGluZ3MmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJpbmRpbmdzXGdlbmVyaWMmcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKS4uXGJpbmRpbmdzXGpzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxiaW5k
aW5nc1xqc1xzcGVjaWFsaXphdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cZG9tJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxkb21cZGVmYXVsdCZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5caGlzdG9yeSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5caHRtbCZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpLi5caHRtbFxjYW52YXMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXGh0bWxccGFyc2VyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxodG1sXHNoYWRvdyZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpLi5caW5zcGVjdG9yJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcikuLlxsb2FkZXImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGxvYWRlclxhcHBjYWNo
ZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbG9hZGVyXGFyY2hpdmUmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKS4uXGxvYWRlclxhcmNoaXZlXGNmJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cikuLlxsb2FkZXJcY2FjaGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGxvYWRlclxpY29u
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxtYXRobWwmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKS4uXG5vdGlmaWNhdGlvbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBhZ2UmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBhZ2VcYW5pbWF0aW9uJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxwYWdlXHNjcm9sbGluZyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGFn
ZVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcikuLlxwbGF0Zm9ybVxhbmltYXRpb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXHBsYXRmb3JtXG1vY2smcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXHNx
bCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cd2luJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcikuLlxwbGF0Zm9ybVxuZXR3b3JrJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpciku
LlxwbGF0Zm9ybVxuZXR3b3JrXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZv
cm1cY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1xjYSZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3NcZmlsdGVycyZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3NcZmlsdGVyc1xhcm0mcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzXG9wZW50eXBlJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1x0cmFuc2Zvcm1zJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxwbGF0Zm9ybVx0ZXh0JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0
Zm9ybVx0ZXh0XHRyYW5zY29kZXImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3Jt
XGdyYXBoaWNzXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ceG1sJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcikuLlx4bWxccGFyc2VyJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1
aWxkRGlyKVxvYmpcV2ViQ29yZVxEZXJpdmVkU291cmNlcyZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpLi5ccGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGx1Z2luc1x3aW4mcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2Z1xhbmltYXRpb24mcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKS4uXHN2Z1xncmFwaGljcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cc3ZnXHBy
b3BlcnRpZXMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2Z1xncmFwaGljc1xmaWx0ZXJz
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxzdmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXHRlc3RpbmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHdtbCZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5cc3RvcmFnZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cd2Vic29j
a2V0cyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cd29ya2VycyZxdW90OzsmcXVvdDskKENv
bmZpZ3VyYXRpb25CdWlsZERpcilcaW5jbHVkZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25C
dWlsZERpcilcaW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxk
RGlyKVxpbmNsdWRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1
aWxkRGlyKVxpbmNsdWRlXHByaXZhdGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKS4uXEZvcndhcmRpbmdIZWFkZXJzJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVz
RGlyKVxpbmNsdWRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXHBy
aXZhdGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVccHJpdmF0ZVxK
YXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZVxw
dGhyZWFkcyZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZVxzcWxpdGUm
cXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVcSmF2YVNjcmlwdENvcmUm
cXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVcemxpYiZxdW90OyIKIAkJ
UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Il9fV0lOMzJfXztESVNBQkxFXzNEX1JFTkRFUklORztX
RUJDT1JFX0NPTlRFWFRfTUVOVVMiCiAJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIyIgogCQlQcmVj
b21waWxlZEhlYWRlclRocm91Z2g9IldlYkNvcmVQcmVmaXguaCIKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDEw
ODM2NykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkod29ya2luZyBjb3B5KQpAQCAtMzMyMyw2ICszMzIzLDggQEAKIAkJOTcwNTk5N0ExMDdEOTc1
MjAwQTUwQTdDIC8qIFBvbGljeUNoZWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDk3MDU5OTc2MTA3RDk3NTIwMEE1MEE3QyAvKiBQb2xpY3lDaGVj
a2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
OTcwQjcyOEExNDRGRkFDNjAwRjAwQTM3IC8qIEV2ZW50SW50ZXJmYWNlcy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcwQjcyODkxNDRGRkFDNjAwRjAw
QTM3IC8qIEV2ZW50SW50ZXJmYWNlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTk3MEI3MkE2MTQ1MDA4RUIwMEYwMEEzNyAvKiBFdmVudEhlYWRl
cnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MEI3
MkE1MTQ1MDA4RUIwMEYwMEEzNyAvKiBFdmVudEhlYWRlcnMuaCAqLzsgfTsKKwkJOTcxMTQ2MDMx
NEVGMDA5QTAwNjc0RkQ5IC8qIE5hdmlnYXRvckdlb2xvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MTE0NjAwMTRFRjAwOUEwMDY3NEZE
OSAvKiBOYXZpZ2F0b3JHZW9sb2NhdGlvbi5jcHAgKi87IH07CisJCTk3MTE0NjA0MTRFRjAwOUEw
MDY3NEZEOSAvKiBOYXZpZ2F0b3JHZW9sb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcxMTQ2MDExNEVGMDA5QTAwNjc0RkQ5IC8qIE5hdmln
YXRvckdlb2xvY2F0aW9uLmggKi87IH07CiAJCTk3MjA1QUFGMTIzOTI4Q0EwMEIxNzM4MCAvKiBG
VFBEaXJlY3RvcnlEb2N1bWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5NzIwNUFBRDEyMzkyOENBMDBCMTczODAgLyogRlRQRGlyZWN0b3J5RG9j
dW1lbnQuY3BwICovOyB9OwogCQk5NzIwNUFCMDEyMzkyOENBMDBCMTczODAgLyogRlRQRGlyZWN0
b3J5RG9jdW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk3MjA1QUFFMTIzOTI4Q0EwMEIxNzM4MCAvKiBGVFBEaXJlY3RvcnlEb2N1bWVudC5oICov
OyB9OwogCQk5NzIwNUFCNTEyMzkyOTEwMDBCMTczODAgLyogSW1hZ2VEb2N1bWVudC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzIwNUFCMTEyMzky
OTEwMDBCMTczODAgLyogSW1hZ2VEb2N1bWVudC5jcHAgKi87IH07CkBAIC0xMDE4Miw2ICsxMDE4
NCw5IEBACiAJCTk3MDU5OTc2MTA3RDk3NTIwMEE1MEE3QyAvKiBQb2xpY3lDaGVja2VyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBvbGljeUNoZWNrZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTcwQjcyODkxNDRGRkFDNjAwRjAwQTM3IC8qIEV2ZW50SW50
ZXJmYWNlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFdmVudEludGVyZmFj
ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTcwQjcyQTUxNDUwMDhFQjAwRjAw
QTM3IC8qIEV2ZW50SGVhZGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBF
dmVudEhlYWRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTcxMTQ2MDAxNEVG
MDA5QTAwNjc0RkQ5IC8qIE5hdmlnYXRvckdlb2xvY2F0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE5hdmlnYXRvckdlb2xvY2F0aW9uLmNwcDsgcGF0aCA9IE1v
ZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5NzExNDYwMTE0RUYwMDlBMDA2NzRGRDkgLyogTmF2aWdhdG9yR2Vv
bG9jYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTmF2aWdhdG9yR2Vv
bG9jYXRpb24uaDsgcGF0aCA9IE1vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRp
b24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTcxMTQ2MDIxNEVGMDA5QTAwNjc0
RkQ5IC8qIE5hdmlnYXRvckdlb2xvY2F0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBO
YXZpZ2F0b3JHZW9sb2NhdGlvbi5pZGw7IHBhdGggPSBNb2R1bGVzL2dlb2xvY2F0aW9uL05hdmln
YXRvckdlb2xvY2F0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTcyMDVB
QUQxMjM5MjhDQTAwQjE3MzgwIC8qIEZUUERpcmVjdG9yeURvY3VtZW50LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZUUERpcmVjdG9yeURvY3VtZW50LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTcyMDVBQUUxMjM5MjhDQTAwQjE3MzgwIC8qIEZU
UERpcmVjdG9yeURvY3VtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZU
UERpcmVjdG9yeURvY3VtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3MjA1
QUIxMTIzOTI5MTAwMEIxNzM4MCAvKiBJbWFnZURvY3VtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEltYWdlRG9jdW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTM0NTMsNiArMTM0NTgsNyBAQAogCQkJCUVERUM5ODAyMEFFRDdFMTcw
MDU5MTM3RiAvKiBXZWJDb3JlUHJlZml4LmggKi8sCiAJCQkJOTMwNzA2MTMwOUUwQ0E4MjAwQjE3
RkU0IC8qIERlcml2ZWRTb3VyY2VzLm1ha2UgKi8sCiAJCQkJOTNGMTlCMTkwODI0NUU1OTAwMUU5
QUJDIC8qIEluZm8ucGxpc3QgKi8sCisJCQkJOTcxMTQ1RkUxNEVGMDA2RTAwNjc0RkQ5IC8qIE1v
ZHVsZXMgKi8sCiAJCQkJMjlBODEyMDQwRkJCOUI0MTAwNTEwMjkzIC8qIGFjY2Vzc2liaWxpdHkg
Ki8sCiAJCQkJQkMxQTM3OTAwOTdDNkY5NzAwMTlGM0Q4IC8qIGJpbmRpbmdzICovLAogCQkJCTFB
NTY5Q0M0MEQ3RTJCNjAwMDdDMzk4MyAvKiBicmlkZ2UgKi8sCkBAIC0xNzA3MSw2ICsxNzA3Nywy
NCBAQAogCQkJdGFiV2lkdGggPSA0OwogCQkJdXNlc1RhYnMgPSAwOwogCQl9OworCQk5NzExNDVG
RTE0RUYwMDZFMDA2NzRGRDkgLyogTW9kdWxlcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOwor
CQkJY2hpbGRyZW4gPSAoCisJCQkJOTcxMTQ1RkYxNEVGMDA3OTAwNjc0RkQ5IC8qIGdlb2xvY2F0
aW9uICovLAorCQkJKTsKKwkJCW5hbWUgPSBNb2R1bGVzOworCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKKwkJfTsKKwkJOTcxMTQ1RkYxNEVGMDA3OTAwNjc0RkQ5IC8qIGdlb2xvY2F0aW9uICov
ID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk5NzExNDYwMDE0
RUYwMDlBMDA2NzRGRDkgLyogTmF2aWdhdG9yR2VvbG9jYXRpb24uY3BwICovLAorCQkJCTk3MTE0
NjAxMTRFRjAwOUEwMDY3NEZEOSAvKiBOYXZpZ2F0b3JHZW9sb2NhdGlvbi5oICovLAorCQkJCTk3
MTE0NjAyMTRFRjAwOUEwMDY3NEZEOSAvKiBOYXZpZ2F0b3JHZW9sb2NhdGlvbi5pZGwgKi8sCisJ
CQkpOworCQkJbmFtZSA9IGdlb2xvY2F0aW9uOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
KwkJfTsKIAkJOTc2RDZDNTcxMjJCOEExODAwMUZEMUY3IC8qIGZpbGVhcGkgKi8gPSB7CiAJCQlp
c2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMjMyNzQsNiArMjMyOTgsNyBAQAog
CQkJCTk3OUY0M0Q0MTA3NUU0NEEwMDAwRjgzQiAvKiBOYXZpZ2F0aW9uU2NoZWR1bGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBOUM2RTVBNjBENzQ2NDU4MDA2NDQyRTkgLyogTmF2aWdhdG9yLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlFMTI3MTlDNzBFRUVDMTY4MDBGNjEyMTMgLyogTmF2aWdhdG9y
QmFzZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTcxMTQ2MDQxNEVGMDA5QTAwNjc0RkQ5IC8qIE5h
dmlnYXRvckdlb2xvY2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5N0NDM0FFMzE0RThFNEEy
MDA4OTQ5ODggLyogTmF2aWdhdG9yU3VwcGxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOEEz
MDlDOUYxMjM5NTBCRTAwQ0I5MjA0IC8qIE5lc3RpbmdMZXZlbEluY3JlbWVudGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk2NTZEMzc0MzBBREJBNURFMDBBNDU1NEQgLyogTmV0c2NhcGVQbHVnSW5T
dHJlYW1Mb2FkZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMjY0MjcsNiArMjY0NTIsNyBAQAogCQkJ
CTk3OUY0M0QzMTA3NUU0NEEwMDAwRjgzQiAvKiBOYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUE5QzZFNUE1MEQ3NDY0NTgwMDY0NDJFOSAvKiBOYXZpZ2F0b3IuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJRTEyNzE5Q0EwRUVFQzIxMzAwRjYxMjEzIC8qIE5hdmlnYXRv
ckJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTcxMTQ2MDMxNEVGMDA5QTAwNjc0RkQ5IC8q
IE5hdmlnYXRvckdlb2xvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3Q0MzQUUyMTRF
OEU0QTIwMDg5NDk4OCAvKiBOYXZpZ2F0b3JTdXBwbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTVEODc0RjEzMEQxNjFEMzIwMDc5NkMzQiAvKiBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1OUMyN0YwNTEzOEQyOEMxMDA3OUI3RTIgLyogTmV0
d29ya1Jlc291cmNlc0RhdGEuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlci5jcHAJKHJldmlzaW9uIDEwODM2NykKKysrIFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0MzksOCArMjQzOSw3
IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNsb3NlQW5kUmVtb3ZlQ2hpbGQoRnIKICAgICBjaGlsZC0+
c2V0VmlldygwKTsKICAgICBpZiAoY2hpbGQtPm93bmVyRWxlbWVudCgpICYmIGNoaWxkLT5wYWdl
KCkpCiAgICAgICAgIGNoaWxkLT5wYWdlKCktPmRlY3JlbWVudEZyYW1lQ291bnQoKTsKLSAgICAv
LyBGSVhNRTogVGhlIHBhZ2UgaXNuJ3QgYmVpbmcgZGVzdHJveWVkLCBzbyBpdCdzIG5vdCByaWdo
dCB0byBjYWxsIGEgZnVuY3Rpb24gbmFtZWQgcGFnZURlc3Ryb3llZCgpLgotICAgIGNoaWxkLT5w
YWdlRGVzdHJveWVkKCk7CisgICAgY2hpbGQtPmRldGFjaEZyb21QYWdlKCk7CiAKICAgICBtX2Zy
YW1lLT50cmVlKCktPnJlbW92ZUNoaWxkKGNoaWxkKTsKIH0KQEAgLTI1MTgsOCArMjUxNyw3IEBA
IHZvaWQgRnJhbWVMb2FkZXI6OmRldGFjaEZyb21QYXJlbnQoKQogICAgICAgICBwYXJlbnQtPmxv
YWRlcigpLT5zY2hlZHVsZUNoZWNrQ29tcGxldGVkKCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAg
bV9mcmFtZS0+c2V0VmlldygwKTsKLSAgICAgICAgLy8gRklYTUU6IFRoZSBwYWdlIGlzbid0IGJl
aW5nIGRlc3Ryb3llZCwgc28gaXQncyBub3QgcmlnaHQgdG8gY2FsbCBhIGZ1bmN0aW9uIG5hbWVk
IHBhZ2VEZXN0cm95ZWQoKS4KLSAgICAgICAgbV9mcmFtZS0+cGFnZURlc3Ryb3llZCgpOworICAg
ICAgICBtX2ZyYW1lLT5kZXRhY2hGcm9tUGFnZSgpOwogICAgIH0KIH0KIApJbmRleDogU291cmNl
L1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmNwcAkocmV2aXNpb24gMTA4MzY3KQorKysgU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00ODAsNiArNDgwLDIxIEBAIHZv
aWQgRE9NV2luZG93OjpmcmFtZURlc3Ryb3llZCgpCiAgICAgY2xlYXIoKTsKIH0KIAordm9pZCBE
T01XaW5kb3c6OndpbGxEZXRhY2hQYWdlKCkKK3sKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmZyYW1lV2luZG93RGlzY2FyZGVkKG1fZnJhbWUsIHRoaXMpOworCisjaWYgRU5BQkxFKE5P
VElGSUNBVElPTlMpCisgICAgLy8gQ2xlYXJpbmcgTm90aWZpY2F0aW9ucyByZXF1ZXN0cyBpbnZv
bHZlcyBhY2Nlc3NpbmcgdGhlIGNsaWVudCBzbyBpdCBtdXN0IGJlIGRvbmUKKyAgICAvLyBiZWZv
cmUgdGhlIGZyYW1lIGlzIGRldGFjaGVkLgorICAgIHJlc2V0Tm90aWZpY2F0aW9ucygpOworI2Vu
ZGlmCisKKyAgICBIYXNoU2V0PERPTVdpbmRvd1Byb3BlcnR5Kj46Oml0ZXJhdG9yIHN0b3AgPSBt
X3Byb3BlcnRpZXMuZW5kKCk7CisgICAgZm9yIChIYXNoU2V0PERPTVdpbmRvd1Byb3BlcnR5Kj46
Oml0ZXJhdG9yIGl0ID0gbV9wcm9wZXJ0aWVzLmJlZ2luKCk7IGl0ICE9IHN0b3A7ICsraXQpCisg
ICAgICAgICgqaXQpLT53aWxsRGV0YWNoUGFnZSgpOworfQorCiB2b2lkIERPTVdpbmRvdzo6cmVn
aXN0ZXJQcm9wZXJ0eShET01XaW5kb3dQcm9wZXJ0eSogcHJvcGVydHkpCiB7CiAgICAgbV9wcm9w
ZXJ0aWVzLmFkZChwcm9wZXJ0eSk7CkBAIC03MzEsMjMgKzc0Niw2IEBAIHZvaWQgRE9NV2luZG93
OjpyZXNldE5vdGlmaWNhdGlvbnMoKQogfQogI2VuZGlmCiAKLXZvaWQgRE9NV2luZG93OjpwYWdl
RGVzdHJveWVkKCkKLXsKLSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lV2luZG93
RGlzY2FyZGVkKG1fZnJhbWUsIHRoaXMpOwotI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQotICAg
IC8vIENsZWFyaW5nIE5vdGlmaWNhdGlvbnMgcmVxdWVzdHMgaW52b2x2ZXMgYWNjZXNzaW5nIHRo
ZSBjbGllbnQgc28gaXQgbXVzdCBiZSBkb25lCi0gICAgLy8gYmVmb3JlIHRoZSBmcmFtZSBpcyBk
ZXRhY2hlZC4KLSAgICByZXNldE5vdGlmaWNhdGlvbnMoKTsKLSNlbmRpZgotfQotCi12b2lkIERP
TVdpbmRvdzo6cmVzZXRHZW9sb2NhdGlvbigpCi17Ci0gICAgLy8gR2VvbG9jYXRpb24gc2hvdWxk
IGNhbmNlbCBhY3Rpdml0aWVzIGFuZCBwZXJtaXNzaW9uIHJlcXVlc3RzIHdoZW4gdGhlIHBhZ2Ug
aXMgZGV0YWNoZWQuCi0gICAgaWYgKG1fbmF2aWdhdG9yKQotICAgICAgICBtX25hdmlnYXRvci0+
cmVzZXRHZW9sb2NhdGlvbigpOwotfQotCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiB2
b2lkIERPTVdpbmRvdzo6c2V0SURCRmFjdG9yeShQYXNzUmVmUHRyPElEQkZhY3Rvcnk+IGlkYkZh
Y3RvcnkpCiB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgJKHJldmlzaW9uIDEwODM2NykK
KysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgJKHdvcmtpbmcgY29weSkKQEAgLTky
LDggKzkyLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZpcnR1YWwgRE9NV2lu
ZG93KiB0b0RPTVdpbmRvdygpOwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBmcmFtZURlc3Ryb3ll
ZCgpIE9WRVJSSURFOwotCiAgICAgICAgIHZvaWQgcmVnaXN0ZXJQcm9wZXJ0eShET01XaW5kb3dQ
cm9wZXJ0eSopOwogICAgICAgICB2b2lkIHVucmVnaXN0ZXJQcm9wZXJ0eShET01XaW5kb3dQcm9w
ZXJ0eSopOwogCkBAIC0yMzEsOSArMjI5LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICB2b2lkIHByaW50RXJyb3JNZXNzYWdlKGNvbnN0IFN0cmluZyYpOwogICAgICAgICBTdHJpbmcg
Y3Jvc3NEb21haW5BY2Nlc3NFcnJvck1lc3NhZ2UoRE9NV2luZG93KiBhY3RpdmVXaW5kb3cpOwog
Ci0gICAgICAgIHZvaWQgcGFnZURlc3Ryb3llZCgpOwotICAgICAgICB2b2lkIHJlc2V0R2VvbG9j
YXRpb24oKTsKLQogICAgICAgICB2b2lkIHBvc3RNZXNzYWdlKFBhc3NSZWZQdHI8U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlPiBtZXNzYWdlLCBjb25zdCBNZXNzYWdlUG9ydEFycmF5KiwgY29uc3QgU3Ry
aW5nJiB0YXJnZXRPcmlnaW4sIERPTVdpbmRvdyogc291cmNlLCBFeGNlcHRpb25Db2RlJik7CiAg
ICAgICAgIC8vIEZJWE1FOiByZW1vdmUgdGhpcyB3aGVuIHdlIHVwZGF0ZSB0aGUgT2JqQyBiaW5k
aW5ncyAoYnVnICMyODc3NCkuCiAgICAgICAgIHZvaWQgcG9zdE1lc3NhZ2UoUGFzc1JlZlB0cjxT
ZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1lc3NhZ2UsIE1lc3NhZ2VQb3J0KiwgY29uc3QgU3RyaW5n
JiB0YXJnZXRPcmlnaW4sIERPTVdpbmRvdyogc291cmNlLCBFeGNlcHRpb25Db2RlJik7CkBAIC00
MTksNiArNDE0LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIHByaXZhdGU6CiAgICAgICAg
IGV4cGxpY2l0IERPTVdpbmRvdyhGcmFtZSopOwogCisgICAgICAgIHZpcnR1YWwgdm9pZCBmcmFt
ZURlc3Ryb3llZCgpIE9WRVJSSURFOworICAgICAgICB2aXJ0dWFsIHZvaWQgd2lsbERldGFjaFBh
Z2UoKSBPVkVSUklERTsKKwogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSB7
IHJlZigpOyB9CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgeyBkZXJl
ZigpOyB9CiAgICAgICAgIHZpcnR1YWwgRXZlbnRUYXJnZXREYXRhKiBldmVudFRhcmdldERhdGEo
KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93UHJvcGVydHkuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93UHJvcGVydHkuY3BwCShyZXZp
c2lvbiAxMDgzNjcpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd1Byb3BlcnR5LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDksNCArNDksOSBAQCB2b2lkIERPTVdpbmRvd1Byb3BlcnR5
OjpkaXNjb25uZWN0RnJhbWUoCiAgICAgbV9mcmFtZSA9IDA7CiB9CiAKK3ZvaWQgRE9NV2luZG93
UHJvcGVydHk6OndpbGxEZXRhY2hQYWdlKCkKK3sKKyAgICAvLyBTdWJjbGFzc2VzIHNob3VsZCBv
dmVycmlkZSB0aGlzIGZ1bmN0aW9uIHRvIGhhbmRsZSB0aGlzIG5vdGlmaWNhdGlvbi4KK30KKwog
fQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3dQcm9wZXJ0eS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93UHJvcGVydHkuaAkocmV2aXNpb24g
MTA4MzY3KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3dQcm9wZXJ0eS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMyw3ICszMyw5IEBAIGNsYXNzIEZyYW1lOwogY2xhc3MgRE9NV2luZG93
UHJvcGVydHkgewogcHVibGljOgogICAgIGV4cGxpY2l0IERPTVdpbmRvd1Byb3BlcnR5KEZyYW1l
Kik7CisKICAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdEZyYW1lKCk7CisgICAgdmlydHVhbCB2
b2lkIHdpbGxEZXRhY2hQYWdlKCk7CiAKICAgICBGcmFtZSogZnJhbWUoKSBjb25zdCB7IHJldHVy
biBtX2ZyYW1lOyB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCShyZXZpc2lvbiAxMDgzNjcp
CisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjYw
LDIxICs2NjAsMTkgQEAgRE9NV2luZG93KiBGcmFtZTo6ZG9tV2luZG93KCkgY29uc3QKICAgICBy
ZXR1cm4gbV9kb21XaW5kb3cuZ2V0KCk7CiB9CiAKLXZvaWQgRnJhbWU6OnBhZ2VEZXN0cm95ZWQo
KQordm9pZCBGcmFtZTo6d2lsbERldGFjaFBhZ2UoKQogewotICAgIC8vIEZJWE1FOiBSZW5hbWUg
dGhpcyBmdW5jdGlvbiwgc2luY2UgaXQncyBjYWxsZWQgbm90IG9ubHkgZnJvbSBQYWdlIGRlc3Ry
dWN0b3IsIGJ1dCBpbiBzZXZlcmFsIG90aGVyIGNhc2VzLgotICAgIC8vIFRoaXMgY2xlYW51cCBp
cyBuZWVkZWQgd2hlbmV2ZXIgd2UgcmVtb3ZlIGEgZnJhbWUgZnJvbSBwYWdlLgotCiAgICAgaWYg
KEZyYW1lKiBwYXJlbnQgPSB0cmVlKCktPnBhcmVudCgpKQogICAgICAgICBwYXJlbnQtPmxvYWRl
cigpLT5jaGVja0xvYWRDb21wbGV0ZSgpOwogCi0gICAgaWYgKG1fZG9tV2luZG93KSB7Ci0gICAg
ICAgIG1fZG9tV2luZG93LT5yZXNldEdlb2xvY2F0aW9uKCk7CiAjaWYgRU5BQkxFKE5PVElGSUNB
VElPTlMpCisgICAgaWYgKG1fZG9tV2luZG93KQogICAgICAgICBtX2RvbVdpbmRvdy0+cmVzZXRO
b3RpZmljYXRpb25zKCk7CiAjZW5kaWYKLSAgICAgICAgbV9kb21XaW5kb3ctPnBhZ2VEZXN0cm95
ZWQoKTsKLSAgICB9CisKKyAgICBIYXNoU2V0PEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlcio+Ojpp
dGVyYXRvciBzdG9wID0gbV9kZXN0cnVjdGlvbk9ic2VydmVycy5lbmQoKTsKKyAgICBmb3IgKEhh
c2hTZXQ8RnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyKj46Oml0ZXJhdG9yIGl0ID0gbV9kZXN0cnVj
dGlvbk9ic2VydmVycy5iZWdpbigpOyBpdCAhPSBzdG9wOyArK2l0KQorICAgICAgICAoKml0KS0+
d2lsbERldGFjaFBhZ2UoKTsKIAogICAgIC8vIEZJWE1FOiBJdCdzIHVuY2xlYXIgYXMgdG8gd2h5
IHRoaXMgaXMgY2FsbGVkIG1vcmUgdGhhbiBvbmNlLCBidXQgaXQgaXMsCiAgICAgLy8gc28gcGFn
ZSgpIGNvdWxkIGJlIE5VTEwuCkBAIC02ODMsOCArNjgxLDYgQEAgdm9pZCBGcmFtZTo6cGFnZURl
c3Ryb3llZCgpCiAKICAgICBzY3JpcHQoKS0+Y2xlYXJTY3JpcHRPYmplY3RzKCk7CiAgICAgc2Ny
aXB0KCktPnVwZGF0ZVBsYXRmb3JtU2NyaXB0T2JqZWN0cygpOwotCi0gICAgZGV0YWNoRnJvbVBh
Z2UoKTsKIH0KIAogdm9pZCBGcmFtZTo6ZGlzY29ubmVjdE93bmVyRWxlbWVudCgpCkBAIC03MTgs
MTcgKzcxNCwxNiBAQCB2b2lkIEZyYW1lOjp0cmFuc2ZlckNoaWxkRnJhbWVUb05ld0RvY3VtCiAg
ICAgICAgICAgICAgbV9wYWdlLT5kZWNyZW1lbnRGcmFtZUNvdW50KCk7CiAgICAgICAgIH0KIAot
ICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGlkZWFsbHkgYWxsb3cgZXhpc3RpbmcgR2VvbG9j
YXRpb24gYWN0aXZpdGllcyB0byBjb250aW51ZQotICAgICAgICAvLyB3aGVuIHRoZSBHZW9sb2Nh
dGlvbidzIGlmcmFtZSBpcyByZXBhcmVudGVkLgotICAgICAgICAvLyBTZWUgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU1NTc3Ci0gICAgICAgIC8vIGFuZCBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTI4NzcKICAgICAgICAgaWYgKG1fZG9t
V2luZG93KSB7Ci0gICAgICAgICAgICBtX2RvbVdpbmRvdy0+cmVzZXRHZW9sb2NhdGlvbigpOwog
I2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQogICAgICAgICAgICAgbV9kb21XaW5kb3ctPnJlc2V0
Tm90aWZpY2F0aW9ucygpOwogI2VuZGlmCiAgICAgICAgIH0KIAorICAgICAgICBIYXNoU2V0PEZy
YW1lRGVzdHJ1Y3Rpb25PYnNlcnZlcio+OjppdGVyYXRvciBzdG9wID0gbV9kZXN0cnVjdGlvbk9i
c2VydmVycy5lbmQoKTsKKyAgICAgICAgZm9yIChIYXNoU2V0PEZyYW1lRGVzdHJ1Y3Rpb25PYnNl
cnZlcio+OjppdGVyYXRvciBpdCA9IG1fZGVzdHJ1Y3Rpb25PYnNlcnZlcnMuYmVnaW4oKTsgaXQg
IT0gc3RvcDsgKytpdCkKKyAgICAgICAgICAgICgqaXQpLT53aWxsRGV0YWNoUGFnZSgpOworCiAg
ICAgICAgIG1fcGFnZSA9IG5ld1BhZ2U7CiAKICAgICAgICAgaWYgKG5ld1BhZ2UpCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZS5oCShyZXZpc2lvbiAxMDgzNjcpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lLmgJKHdvcmtpbmcgY29weSkKQEAgLTg5LDggKzg5LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICB2b2lkIGFkZERlc3RydWN0aW9uT2JzZXJ2ZXIoRnJhbWVEZXN0cnVjdGlvbk9i
c2VydmVyKik7CiAgICAgICAgIHZvaWQgcmVtb3ZlRGVzdHJ1Y3Rpb25PYnNlcnZlcihGcmFtZURl
c3RydWN0aW9uT2JzZXJ2ZXIqKTsKIAorICAgICAgICB2b2lkIHdpbGxEZXRhY2hQYWdlKCk7CiAg
ICAgICAgIHZvaWQgZGV0YWNoRnJvbVBhZ2UoKTsKLSAgICAgICAgdm9pZCBwYWdlRGVzdHJveWVk
KCk7CiAgICAgICAgIHZvaWQgZGlzY29ubmVjdE93bmVyRWxlbWVudCgpOwogCiAgICAgICAgIFBh
Z2UqIHBhZ2UoKSBjb25zdDsKQEAgLTM0OCw2ICszNDgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKICAgICBpbmxpbmUgdm9pZCBGcmFtZTo6ZGV0YWNoRnJvbVBhZ2UoKQogICAgIHsKKyAgICAg
ICAgd2lsbERldGFjaFBhZ2UoKTsKICAgICAgICAgbV9wYWdlID0gMDsKICAgICB9CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlci5jcHAJ
KHJldmlzaW9uIDEwODM2NykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVEZXN0cnVjdGlv
bk9ic2VydmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTgsNCArNTgsOSBAQCB2b2lkIEZyYW1l
RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6ZnJhbWVEZXN0CiAgICAgbV9mcmFtZSA9IDA7CiB9CiAKK3Zv
aWQgRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyOjp3aWxsRGV0YWNoUGFnZSgpCit7CisgICAgLy8g
U3ViY2xhc3NlcyBzaG91bGQgb3ZlcnJpZGUgdGhpcyBmdW5jdGlvbiB0byBoYW5kbGUgdGhpcyBu
b3RpZmljYXRpb24uCit9CisKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVEZXN0
cnVjdGlvbk9ic2VydmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZURlc3RydWN0aW9uT2JzZXJ2ZXIuaAkocmV2aXNpb24gMTA4MzY3KQorKysgU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzMs
NyArMzMsMTAgQEAgY2xhc3MgRnJhbWU7CiBjbGFzcyBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIg
ewogcHVibGljOgogICAgIGV4cGxpY2l0IEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlcihGcmFtZSop
OworCiAgICAgdmlydHVhbCB2b2lkIGZyYW1lRGVzdHJveWVkKCk7CisgICAgdmlydHVhbCB2b2lk
IHdpbGxEZXRhY2hQYWdlKCk7CisKICAgICBGcmFtZSogZnJhbWUoKSBjb25zdCB7IHJldHVybiBt
X2ZyYW1lOyB9CiAKIHByb3RlY3RlZDoKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdh
dG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5jcHAJ
KHJldmlzaW9uIDEwODM2NykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNjcsMTIgKzY3LDYgQEAgTmF2aWdhdG9yU3VwcGxlbWVudCogTmF2
aWdhdG9yOjpyZXF1aXJlUwogICAgIHJldHVybiBtX3N1cHBsaW1lbnRzLmdldChuYW1lLmltcGwo
KSk7CiB9CiAKLXZvaWQgTmF2aWdhdG9yOjpyZXNldEdlb2xvY2F0aW9uKCkKLXsKLSAgICBpZiAo
bV9nZW9sb2NhdGlvbikKLSAgICAgICAgbV9nZW9sb2NhdGlvbi0+cmVzZXQoKTsKLX0KLQogLy8g
SWYgdGhpcyBmdW5jdGlvbiByZXR1cm5zIHRydWUsIHdlIG5lZWQgdG8gaGlkZSB0aGUgc3Vic3Ry
aW5nICI0LiIgdGhhdCB3b3VsZCBvdGhlcndpc2UKIC8vIGFwcGVhciBpbiB0aGUgYXBwVmVyc2lv
biBzdHJpbmcuIFRoaXMgaXMgdG8gYXZvaWQgcHJvYmxlbXMgd2l0aCBvbGQgdmVyc2lvbnMgb2Yg
YQogLy8gbGlicmFyeSBjYWxsZWQgT3BlbkN1YmUgUXVpY2tNZW51LCB3aGljaCBhcyBvZiB0aGlz
IHdyaXRpbmcgaXMgc3RpbGwgYmVpbmcgdXNlZCBvbgpAQCAtMTUxLDEzICsxNDUsNiBAQCBib29s
IE5hdmlnYXRvcjo6amF2YUVuYWJsZWQoKSBjb25zdAogICAgIHJldHVybiBtX2ZyYW1lLT5zZXR0
aW5ncygpLT5pc0phdmFFbmFibGVkKCk7CiB9CiAKLUdlb2xvY2F0aW9uKiBOYXZpZ2F0b3I6Omdl
b2xvY2F0aW9uKCkgY29uc3QKLXsKLSAgICBpZiAoIW1fZ2VvbG9jYXRpb24pCi0gICAgICAgIG1f
Z2VvbG9jYXRpb24gPSBHZW9sb2NhdGlvbjo6Y3JlYXRlKG1fZnJhbWUpOwotICAgIHJldHVybiBt
X2dlb2xvY2F0aW9uLmdldCgpOwotfQotCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKIFBvaW50
ZXJMb2NrKiBOYXZpZ2F0b3I6OndlYmtpdFBvaW50ZXIoKSBjb25zdAogewpJbmRleDogU291cmNl
L1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
YWdlL05hdmlnYXRvci5oCShyZXZpc2lvbiAxMDgzNjcpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdl
L05hdmlnYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw2IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIGNsYXNzIERPTU1pbWVUeXBlQXJyYXk7CiBjbGFzcyBET01QbHVnaW5BcnJheTsK
IGNsYXNzIEZyYW1lOwotY2xhc3MgR2VvbG9jYXRpb247CiBjbGFzcyBQb2ludGVyTG9jazsKIGNs
YXNzIFBsdWdpbkRhdGE7CiAKQEAgLTQ1LDggKzQ0LDYgQEAgcHVibGljOgogICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPE5hdmlnYXRvcj4gY3JlYXRlKEZyYW1lKiBmcmFtZSkgeyByZXR1cm4gYWRvcHRS
ZWYobmV3IE5hdmlnYXRvcihmcmFtZSkpOyB9CiAgICAgdmlydHVhbCB+TmF2aWdhdG9yKCk7CiAK
LSAgICB2b2lkIHJlc2V0R2VvbG9jYXRpb24oKTsKLQogICAgIFN0cmluZyBhcHBWZXJzaW9uKCkg
Y29uc3Q7CiAgICAgU3RyaW5nIGxhbmd1YWdlKCkgY29uc3Q7CiAgICAgRE9NUGx1Z2luQXJyYXkq
IHBsdWdpbnMoKSBjb25zdDsKQEAgLTU2LDggKzUzLDYgQEAgcHVibGljOgogCiAgICAgdmlydHVh
bCBTdHJpbmcgdXNlckFnZW50KCkgY29uc3Q7CiAKLSAgICBHZW9sb2NhdGlvbiogZ2VvbG9jYXRp
b24oKSBjb25zdDsKLQogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgUG9pbnRlckxvY2sq
IHdlYmtpdFBvaW50ZXIoKSBjb25zdDsKICNlbmRpZgpAQCAtODAsNyArNzUsNiBAQCBwcml2YXRl
OgogCiAgICAgbXV0YWJsZSBSZWZQdHI8RE9NUGx1Z2luQXJyYXk+IG1fcGx1Z2luczsKICAgICBt
dXRhYmxlIFJlZlB0cjxET01NaW1lVHlwZUFycmF5PiBtX21pbWVUeXBlczsKLSAgICBtdXRhYmxl
IFJlZlB0cjxHZW9sb2NhdGlvbj4gbV9nZW9sb2NhdGlvbjsKICNpZiBFTkFCTEUoUE9JTlRFUl9M
T0NLKQogICAgIG11dGFibGUgUmVmUHRyPFBvaW50ZXJMb2NrPiBtX3BvaW50ZXI7CiAjZW5kaWYK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmlkbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5pZGwJKHJldmlzaW9uIDEwODM2NykKKysrIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmlkbAkod29ya2luZyBjb3B5KQpAQCAtNDAsMTAg
KzQwLDYgQEAgbW9kdWxlIHdpbmRvdyB7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJv
b2xlYW4gb25MaW5lOwogCi0jaWYgZGVmaW5lZChFTkFCTEVfR0VPTE9DQVRJT04pICYmIEVOQUJM
RV9HRU9MT0NBVElPTgotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW1Y4RW5hYmxlZEF0UnVu
dGltZV0gR2VvbG9jYXRpb24gZ2VvbG9jYXRpb247Ci0jZW5kaWYKLQogI2lmIGRlZmluZWQoRU5B
QkxFX1BPSU5URVJfTE9DSykgJiYgRU5BQkxFX1BPSU5URVJfTE9DSwogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgW1Y4RW5hYmxlZEF0UnVudGltZV0gUG9pbnRlckxvY2sgd2Via2l0UG9pbnRl
cjsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCShyZXZpc2lvbiAxMDgzNjcpCisrKyBT
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDAsNyArMjAw
LDcgQEAgUGFnZTo6flBhZ2UoKQogICAgIGFsbFBhZ2VzLT5yZW1vdmUodGhpcyk7CiAgICAgCiAg
ICAgZm9yIChGcmFtZSogZnJhbWUgPSBtYWluRnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUt
PnRyZWUoKS0+dHJhdmVyc2VOZXh0KCkpCi0gICAgICAgIGZyYW1lLT5wYWdlRGVzdHJveWVkKCk7
CisgICAgICAgIGZyYW1lLT5kZXRhY2hGcm9tUGFnZSgpOwogCiAgICAgbV9lZGl0b3JDbGllbnQt
PnBhZ2VEZXN0cm95ZWQoKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128028</attachid>
            <date>2012-02-21 13:04:56 -0800</date>
            <delta_ts>2012-02-21 13:20:09 -0800</delta_ts>
            <desc>should fix qt</desc>
            <filename>bug-78860-20120221130455.patch</filename>
            <type>text/plain</type>
            <size>42485</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwODM2NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUxIEBACisyMDEyLTAyLTIxICBBZGFtIEJh
cnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRnJhbWUgYW5kIE5hdmlnYXRvciBz
aG91bGRuJ3QgbmVlZCB0byB3b3JyeSBhYm91dCBHZW9sb2NhdGlvbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg4NjAKKworICAgICAgICBSZXZpZXdl
ZCBieSBFcmljIFNlaWRlbC4KKworICAgICAgICBUaGlzIHBhdGNoIHJlbW92ZXMgc29tZSBHZW9s
b2NhdGlvbi1zcGVjaWZpYyBjb2RlIGZyb20gRnJhbWUgYW5kCisgICAgICAgIE5hdmlnYXRvciBp
biBmYXZvciBvZiBvdXIgbmV3IHN1cHBsZW1lbnRhbCBtb2R1bGUgbWVjaGFuaXNtLiAgV2UncmUK
KyAgICAgICAgc3RpbGwgcmVmaW5pbmcgdGhlIG1vZHVsZSBzeXN0ZW0sIGJ1dCB3ZSBzZWVtIHRv
IGJlIGNvbnZlcmdpbmcgb24gYQorICAgICAgICBzaW1wbGUgT2JzZXJ2ZXIvU3VwcGxlbWVudCBk
ZXNpZ24uCisKKyAgICAgICAgSW4gYSBmdXR1cmUgcGF0Y2gsIEknbGwgbW92ZSB0aGUgcmVtYWlu
aW5nIEdlb2xvY2F0aW9uLXJlbGF0ZWQgZmlsZXMgaW4KKyAgICAgICAgV2ViQ29yZSBpbnRvIE1v
ZHVsZXMvZ2VvbG9jYXRpb24uICBUaGlzIHBhdGNoIGFwcGVhcnMgdG8gYmUgdGhlIGZpcnN0Cisg
ICAgICAgIHBhdGNoIHRoYXQgaW50cm9kdWNlcyBhIG1vZHVsZSB1c2VkIGJ5IGFsbCB0aGUgdmFy
aW91cyBidWlsZCBzeXN0ZW1zLAorICAgICAgICB3aGljaCBpcyB3aHkgdGhlcmUncyBhIGJpdCBt
b3JlIGJ1aWxkIHN5c3RlbSBvdmVyaGVhZCB0aGFuIHVzdWFsLgorCisgICAgICAgICogTW9kdWxl
cy9nZW9sb2NhdGlvbjogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZp
Z2F0b3JHZW9sb2NhdGlvbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6TmF2aWdhdG9yR2VvbG9jYXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdG9yR2VvbG9jYXRpb246On5OYXZpZ2F0b3JHZW9sb2Nh
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6cGFnZURlc3Ry
b3llZCk6CisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6ZnJvbSk6Cisg
ICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6Z2VvbG9jYXRpb24pOgorICAg
ICAgICAqIE1vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKE5hdmlnYXRvckdlb2xvY2F0aW9uKToKKyAg
ICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmlkbDogQWRk
ZWQuCisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgICogcGFnZS9ET01XaW5kb3cuaDoKKyAgICAgICAgKERPTVdpbmRvdyk6CisgICAgICAg
ICogcGFnZS9GcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6cGFnZURlc3Ryb3ll
ZCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6dHJhbnNmZXJDaGlsZEZyYW1lVG9OZXdEb2N1
bWVudCk6CisgICAgICAgICogcGFnZS9GcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyOjpwYWdlRGVzdHJveWVkKToK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBhZ2UvRnJhbWVEZXN0cnVjdGlvbk9ic2Vy
dmVyLmg6CisgICAgICAgIChGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIpOgorICAgICAgICAqIHBh
Z2UvTmF2aWdhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBhZ2UvTmF2
aWdhdG9yLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKE5hdmlnYXRvcik6CisgICAg
ICAgICogcGFnZS9OYXZpZ2F0b3IuaWRsOgorCiAyMDEyLTAyLTIxICBQaGlsaXBwZSBOb3JtYW5k
ICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBXZWJBdWRpbyBidWlsZCBp
cyBicm9rZW4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAxMDgzNjcpCisrKyBT
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYg
QEAKIFNFVChXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJDT1JFX0RJUn0i
CisgICAgIiR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvZ2VvbG9jYXRpb24iCiAgICAgIiR7V0VCQ09S
RV9ESVJ9L2FjY2Vzc2liaWxpdHkiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L2JpbmRpbmdzIgogICAg
ICIke1dFQkNPUkVfRElSfS9iaW5kaW5ncy9nZW5lcmljIgpAQCAtODcsNiArODgsNyBAQCBTRVQo
V2ViQ29yZV9JTkNMVURFX0RJUkVDVE9SSUVTCiApCiAKIFNFVChXZWJDb3JlX0lETF9JTkNMVURF
UworICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24KICAgICBiaW5kaW5ncy9nZW5lcmljCiAgICAgY3Nz
CiAgICAgZG9tCkBAIC0xMDUsNiArMTA3LDggQEAgU0VUKFdlYkNvcmVfSURMX0lOQ0xVREVTCiAp
CiAKIFNFVChXZWJDb3JlX0lETF9GSUxFUworICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdh
dG9yR2VvbG9jYXRpb24uaWRsCisKICAgICBjc3MvQ291bnRlci5pZGwKICAgICBjc3MvQ1NTQ2hh
cnNldFJ1bGUuaWRsCiAgICAgY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGwKQEAgLTQwMCw2ICs0MDQs
OCBAQCBTRVQoV2ViQ29yZV9JRExfRklMRVMKICkKIAogU0VUKFdlYkNvcmVfU09VUkNFUworICAg
IE1vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uY3BwCisKICAgICBhY2Nl
c3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5QVJJQUdyaWQuY3BwCiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRD
ZWxsLmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiAxMDgz
NjcpCisrKyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkp
CkBAIC0yOCw2ICsyOCw3IEBACiAKIFZQQVRIID0gXAogICAgICQoV2ViQ29yZSkgXAorICAgICQo
V2ViQ29yZSkvTW9kdWxlcy9nZW9sb2NhdGlvbiBcCiAgICAgJChXZWJDb3JlKS9iaW5kaW5ncy9n
ZW5lcmljIFwKICAgICAkKFdlYkNvcmUpL2JpbmRpbmdzL2pzIFwKICAgICAkKFdlYkNvcmUpL2Jp
bmRpbmdzL29iamMgXApAQCAtNTMsNiArNTQsNyBAQCBWUEFUSCA9IFwKICMKIAogQklORElOR19J
RExTID0gXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9s
b2NhdGlvbi5pZGwgXAogICAgICQoV2ViQ29yZSkvY3NzL0NTU0NoYXJzZXRSdWxlLmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9jc3MvQ1NTRm9udEZhY2VSdWxlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9j
c3MvQ1NTSW1wb3J0UnVsZS5pZGwgXApJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMucHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQko
cmV2aXNpb24gMTA4MzY3KQorKysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCSh3
b3JraW5nIGNvcHkpCkBAIC04Niw2ICs4Niw3IEBAIFNUWUxFU0hFRVRTX0VNQkVEID0gXAogICAg
ICQkUFdEL2Nzcy9tb2JpbGVUaGVtZVF0LmNzcwogCiBJRExfQklORElOR1MgKz0gXAorICAgICQk
UFdEL01vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaWRsIFwKICAgICAk
JFBXRC9jc3MvQ291bnRlci5pZGwgXAogICAgICQkUFdEL2Nzcy9DU1NDaGFyc2V0UnVsZS5pZGwg
XAogICAgICQkUFdEL2Nzcy9DU1NGb250RmFjZVJ1bGUuaWRsIFwKQEAgLTY4Miw2ICs2ODMsNyBA
QCBlbHNlOiBnZW5lcmF0b3IgPSBKUwogZ2VuZXJhdGVCaW5kaW5ncy5jb21tYW5kcyA9IHBlcmwg
LUkkJFBXRC9iaW5kaW5ncy9zY3JpcHRzICQkZ2VuZXJhdGVCaW5kaW5ncy5zY3JpcHQgXAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC0tZGVmaW5lcyBcIiQke0ZFQVRVUkVfREVGSU5FU19K
QVZBU0NSSVBUfVwiIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLWdlbmVyYXRvciAk
JGdlbmVyYXRvciBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS1pbmNsdWRlICQkUFdE
L01vZHVsZXMvZ2VvbG9jYXRpb24gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0taW5j
bHVkZSAkJFBXRC9kb20gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0taW5jbHVkZSAk
JFBXRC9maWxlYXBpIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLWluY2x1ZGUgJCRQ
V0QvaHRtbCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkocmV2aXNpb24gMTA4MzY3KQorKysg
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHdvcmtpbmcgY29weSkKQEAgLTExLDYgKzEx
LDcgQEAgd2ViY29yZV9jcHBmbGFncyArPSBcCiAJLUkkKHNyY2RpcikvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvaW5jbHVkZSBcCiAJLUkkKHNyY2RpcikvU291cmNlL1RoaXJkUGFydHkvQU5HTEUv
aW5jbHVkZS9HTFNMQU5HIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZSBcCisJLUkkKHNy
Y2RpcikvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbiBcCiAJLUkkKHNyY2Rpcikv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eSBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVy
aWMgXApAQCAtNzU4LDYgKzc1OSw3IEBAIERlcml2ZWRTb3VyY2VzL0FOR0xFL2dsc2xhbmdfdGFi
LmNwcDogU28KIERlcml2ZWRTb3VyY2VzL0FOR0xFL2dsc2xhbmdfdGFiLmg6IERlcml2ZWRTb3Vy
Y2VzL0FOR0xFL2dsc2xhbmdfdGFiLmNwcAogCiBJRExfUEFUSCA6PSBcCisgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL2dlb2xvY2F0aW9uIFwKICAgICAkKFdlYkNvcmUpL2JpbmRpbmdzL2pzIFwKICAg
ICAkKFdlYkNvcmUpL2NzcyBcCiAgICAgJChXZWJDb3JlKS9kb20gXApJbmRleDogU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCShyZXZpc2lvbiAxMDgzNjcpCisrKyBTb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC02NTAsNiArNjUwLDcgQEAgd2Vi
Y29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL1hQYXRoR3Jh
bW1hci5oCiAKIGRvbV9iaW5kaW5nX2lkbHMgKz0gXAorCSQoV2ViQ29yZSkvTW9kdWxlcy9nZW9s
b2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5pZGwgXAogCSQoV2ViQ29yZSkvY3NzL0NTU0No
YXJzZXRSdWxlLmlkbCBcCiAJJChXZWJDb3JlKS9jc3MvQ1NTRm9udEZhY2VSdWxlLmlkbCBcCiAJ
JChXZWJDb3JlKS9jc3MvQ1NTSW1wb3J0UnVsZS5pZGwgXApAQCAtOTUxLDYgKzk1Miw4IEBAIGRv
bV9iaW5kaW5nX2lkbHMgKz0gXAogCSQoV2ViQ29yZSkveG1sL1hTTFRQcm9jZXNzb3IuaWRsCiAK
IHdlYmNvcmVfc291cmNlcyArPSBcCisJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlv
bi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2Vv
bG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaCBcCiAJU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsLmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsLmggXAogCVNvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNwcCBcCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9UYXJnZXQucHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1Rhcmdl
dC5wcmkJKHJldmlzaW9uIDEwODM2NykKKysrIFNvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkJKHdv
cmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDggQEAgaW5jbHVkZV93ZWJpbnNwZWN0b3IgewogfQog
CiBTT1VSQ0VTICs9IFwKKyAgICBNb2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0
aW9uLmNwcCBcCisgICAgXAogICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUltYWdlTWFw
TGluay5jcHAgXAogICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbHMu
Y3BwIFwKICAgICBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdC5jcHAgXApJbmRl
eDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4JKHJldmlzaW9uIDEwODM2NykKKysrIFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluCSh3b3JraW5nIGNvcHkpCkBAIC02NzIsNiArNjcyLDcgQEAgX19aTjdX
ZWJDb3JlMjRGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXJEMgogX19aTjdXZWJDb3JlMjRGcmFtZURl
c3RydWN0aW9uT2JzZXJ2ZXJDMkVQTlNfNUZyYW1lRQogX19aTjdXZWJDb3JlMjRGcmFtZURlc3Ry
dWN0aW9uT2JzZXJ2ZXIxMm9ic2VydmVGcmFtZUVQTlNfNUZyYW1lRQogX19aTjdXZWJDb3JlMjRG
cmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIxNGZyYW1lRGVzdHJveWVkRXYKK19fWk43V2ViQ29yZTI0
RnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyMTR3aWxsRGV0YWNoUGFnZUV2CiBfX1pON1dlYkNvcmUy
NGtleUlkZW50aWZpZXJGb3JLZXlFdmVudEVQN05TRXZlbnQKIF9fWk43V2ViQ29yZTI0bm90aWZ5
SGlzdG9yeUl0ZW1DaGFuZ2VkRQogX19aTjdXZWJDb3JlMjVIaXN0b3J5UHJvcGVydHlMaXN0V3Jp
dGVyMTFyZWxlYXNlRGF0YUV2CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCShyZXZpc2lvbiAxMDgzNjcp
CisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTcyMCw2
ICs3MjAsNyBAQAogICAgICAgICAgICAgJ01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkLmlkbCcsCiAg
ICAgICAgICAgICAnTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWRMaXN0LmlkbCcsCiAgICAgICAgICAg
ICAnTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQuaWRsJywKKyAgICAgICAgICAgICdN
b2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmlkbCcsCiAgICAgICAgICAg
ICAnTW9kdWxlcy9pbmRleGVkZGIvRE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmlkbCcsCiAgICAg
ICAgICAgICAnTW9kdWxlcy9pbnRlbnRzL0RPTVdpbmRvd0ludGVudHMuaWRsJywKICAgICAgICAg
ICAgICdNb2R1bGVzL2ludGVudHMvSW50ZW50LmlkbCcsCkBAIC0xMjc3LDYgKzEyNzgsOCBAQAog
ICAgICAgICAgICAgJ01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkTGlzdC5oJywKICAgICAgICAgICAg
ICdNb2R1bGVzL2dhbWVwYWQvTmF2aWdhdG9yR2FtZXBhZC5jcHAnLAogICAgICAgICAgICAgJ01v
ZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0b3JHYW1lcGFkLmgnLAorICAgICAgICAgICAgJ01vZHVsZXMv
Z2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uY3BwJywKKyAgICAgICAgICAgICdNb2R1
bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmgnLAogICAgICAgICAgICAgJ01v
ZHVsZXMvaW5kZXhlZGRiL0RPTVdpbmRvd0luZGV4ZWREYXRhYmFzZS5jcHAnLAogICAgICAgICAg
ICAgJ01vZHVsZXMvaW5kZXhlZGRiL0RPTVdpbmRvd0luZGV4ZWREYXRhYmFzZS5oJywKICAgICAg
ICAgICAgICdNb2R1bGVzL2ludGVudHMvSW50ZW50LmNwcCcsCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnByaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnByaQko
cmV2aXNpb24gMTA4MzY3KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkJKHdvcmtpbmcg
Y29weSkKQEAgLTE4LDYgKzE4LDcgQEAgV0VCQ09SRV9HRU5FUkFURURfU09VUkNFU19ESVIgPSAk
JHtST09UXwogCiBJTkNMVURFUEFUSCArPSBcCiAgICAgJCRTT1VSQ0VfRElSIFwKKyAgICAkJFNP
VVJDRV9ESVIvTW9kdWxlcy9nZW9sb2NhdGlvbiBcCiAgICAgJCRTT1VSQ0VfRElSL2FjY2Vzc2li
aWxpdHkgXAogICAgICQkU09VUkNFX0RJUi9iaW5kaW5ncyBcCiAgICAgJCRTT1VSQ0VfRElSL2Jp
bmRpbmdzL2dlbmVyaWMgXApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlv
bi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5jcHAJKHJldmlzaW9uIDAp
CisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0
aW9uLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMiwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RQorICogQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICogTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWQorICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNICisgKiBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk5hdmlnYXRvckdlb2xvY2F0aW9uLmgiCisKKyNp
bmNsdWRlICJHZW9sb2NhdGlvbi5oIgorI2luY2x1ZGUgIk5hdmlnYXRvci5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK05hdmlnYXRvckdlb2xvY2F0aW9uOjpOYXZpZ2F0b3JHZW9sb2NhdGlv
bihGcmFtZSogZnJhbWUpCisgICAgOiBET01XaW5kb3dQcm9wZXJ0eShmcmFtZSkKK3sKK30KKwor
TmF2aWdhdG9yR2VvbG9jYXRpb246On5OYXZpZ2F0b3JHZW9sb2NhdGlvbigpCit7Cit9CisKK3Zv
aWQgTmF2aWdhdG9yR2VvbG9jYXRpb246OndpbGxEZXRhY2hQYWdlKCkKK3sKKyAgICAvLyBGSVhN
RTogV2Ugc2hvdWxkIGlkZWFsbHkgYWxsb3cgZXhpc3RpbmcgR2VvbG9jYXRpb24gYWN0aXZpdGll
cyB0byBjb250aW51ZQorICAgIC8vIHdoZW4gdGhlIEdlb2xvY2F0aW9uJ3MgaWZyYW1lIGlzIHJl
cGFyZW50ZWQuIChBc3N1bWluZyB3ZSBjb250aW51ZSB0bworICAgIC8vIHN1cHBvcnQgcmVwYXJl
bnRpbmcgaWZyYW1lcy4pCisgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD01NTU3NworICAgIC8vIGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTI4NzcKKyAgICBpZiAobV9nZW9sb2NhdGlvbikKKyAgICAgICAgbV9nZW9s
b2NhdGlvbi0+cmVzZXQoKTsKK30KKworTmF2aWdhdG9yR2VvbG9jYXRpb24qIE5hdmlnYXRvckdl
b2xvY2F0aW9uOjpmcm9tKE5hdmlnYXRvciogbmF2aWdhdG9yKQoreworICAgIERFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoIk5hdmlnYXRvckdlb2xvY2F0aW9uIikpOwor
ICAgIE5hdmlnYXRvckdlb2xvY2F0aW9uKiBzdXBwbGVtZW50ID0gc3RhdGljX2Nhc3Q8TmF2aWdh
dG9yR2VvbG9jYXRpb24qPihOYXZpZ2F0b3JTdXBwbGVtZW50Ojpmcm9tKG5hdmlnYXRvciwgbmFt
ZSkpOworICAgIGlmICghc3VwcGxlbWVudCkgeworICAgICAgICBzdXBwbGVtZW50ID0gbmV3IE5h
dmlnYXRvckdlb2xvY2F0aW9uKG5hdmlnYXRvci0+ZnJhbWUoKSk7CisgICAgICAgIHByb3ZpZGVU
byhuYXZpZ2F0b3IsIG5hbWUsIGFkb3B0UHRyKHN1cHBsZW1lbnQpKTsKKyAgICB9CisgICAgcmV0
dXJuIHN1cHBsZW1lbnQ7Cit9CisKK0dlb2xvY2F0aW9uKiBOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6
Z2VvbG9jYXRpb24oTmF2aWdhdG9yKiBuYXZpZ2F0b3IpCit7CisgICAgcmV0dXJuIE5hdmlnYXRv
ckdlb2xvY2F0aW9uOjpmcm9tKG5hdmlnYXRvciktPmdlb2xvY2F0aW9uKCk7Cit9CisKK0dlb2xv
Y2F0aW9uKiBOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6Z2VvbG9jYXRpb24oKSBjb25zdAoreworICAg
IGlmICghbV9nZW9sb2NhdGlvbikKKyAgICAgICAgbV9nZW9sb2NhdGlvbiA9IEdlb2xvY2F0aW9u
OjpjcmVhdGUoZnJhbWUoKSk7CisgICAgcmV0dXJuIG1fZ2VvbG9jYXRpb24uZ2V0KCk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2Vv
bG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmgJKHJldmlzaW9u
IDApCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xv
Y2F0aW9uLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UKKyAqIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAqIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSAorICogREFNQUdFLgorICovCisKKyNp
Zm5kZWYgTmF2aWdhdG9yR2VvbG9jYXRpb25faAorI2RlZmluZSBOYXZpZ2F0b3JHZW9sb2NhdGlv
bl9oCisKKyNpbmNsdWRlICJET01XaW5kb3dQcm9wZXJ0eS5oIgorI2luY2x1ZGUgIk5hdmlnYXRv
clN1cHBsZW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBGcmFtZTsKK2Ns
YXNzIEdlb2xvY2F0aW9uOworY2xhc3MgTmF2aWdhdG9yOworCitjbGFzcyBOYXZpZ2F0b3JHZW9s
b2NhdGlvbiA6IHB1YmxpYyBOYXZpZ2F0b3JTdXBwbGVtZW50LCBwdWJsaWMgRE9NV2luZG93UHJv
cGVydHkgeworcHVibGljOgorICAgIHZpcnR1YWwgfk5hdmlnYXRvckdlb2xvY2F0aW9uKCk7Cisg
ICAgc3RhdGljIE5hdmlnYXRvckdlb2xvY2F0aW9uKiBmcm9tKE5hdmlnYXRvciopOworCisgICAg
c3RhdGljIEdlb2xvY2F0aW9uKiBnZW9sb2NhdGlvbihOYXZpZ2F0b3IqKTsKKyAgICBHZW9sb2Nh
dGlvbiogZ2VvbG9jYXRpb24oKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBOYXZpZ2F0b3JHZW9s
b2NhdGlvbihGcmFtZSopOworCisgICAgdmlydHVhbCB2b2lkIHdpbGxEZXRhY2hQYWdlKCkgT1ZF
UlJJREU7CisKKyAgICBtdXRhYmxlIFJlZlB0cjxHZW9sb2NhdGlvbj4gbV9nZW9sb2NhdGlvbjsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIE5hdmlnYXRvckdlb2xv
Y2F0aW9uX2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdh
dG9yR2VvbG9jYXRpb24uaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Z2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaWRsCShyZXZpc2lvbiAwKQorKysgU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5pZGwJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICog
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAq
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAq
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworbW9kdWxlIHdpbmRvdyB7CisKKyAgICBp
bnRlcmZhY2UgWworICAgICAgICBDb25kaXRpb25hbD1HRU9MT0NBVElPTiwKKyAgICAgICAgU3Vw
cGxlbWVudGFsPU5hdmlnYXRvcgorICAgIF0gTmF2aWdhdG9yR2VvbG9jYXRpb24geworICAgICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIEdlb2xvY2F0aW9u
IGdlb2xvY2F0aW9uOworICAgIH07CisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwL1dlYkNvcmUuZ3lwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
L1dlYkNvcmUuZ3lwCShyZXZpc2lvbiAxMDgzNjcpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cC9XZWJDb3JlLmd5cAkod29ya2luZyBjb3B5KQpAQCAtNTIsNiArNTIsNyBAQAogICAgICAg
Jy4uLycsCiAgICAgICAnLi4vLi4nLAogICAgICAgJy4uL01vZHVsZXMvZ2FtZXBhZCcsCisgICAg
ICAnLi4vTW9kdWxlcy9nZW9sb2NhdGlvbicsCiAgICAgICAnLi4vTW9kdWxlcy9pbnRlbnRzJywK
ICAgICAgICcuLi9Nb2R1bGVzL2luZGV4ZWRkYicsCiAgICAgICAnLi4vYWNjZXNzaWJpbGl0eScs
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvago9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagko
cmV2aXNpb24gMTA4MzY3KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTI0MDUxLDYgKzI0MDUxLDIyIEBACiAJCQk8L0Zp
bGU+CiAJCTwvRmlsdGVyPgogCQk8RmlsdGVyCisJCQlOYW1lPSJNb2R1bGVzIgorCQkJPgorCQkJ
PEZpbHRlcgorCQkJCU5hbWU9Imdlb2xvY2F0aW9uIgorCQkJCT4KKwkJCQk8RmlsZQorCQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcZ2VvbG9jYXRpb25cTmF2aWdhdG9yR2VvbG9jYXRpb24u
Y3BwIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0i
Li5cTW9kdWxlc1xnZW9sb2NhdGlvblxOYXZpZ2F0b3JHZW9sb2NhdGlvbi5oIgorCQkJCQk+CisJ
CQkJPC9GaWxlPgorCQkJPC9GaWx0ZXI+CisJCTwvRmlsdGVyPgorCQk8RmlsdGVyCiAJCQlOYW1l
PSJhY2Nlc3NpYmlsaXR5IgogCQkJPgogCQkJPEZpbGUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmVDb21tb24udnNwcm9wcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlQ29tbW9uLnZzcHJvcHMJKHJldmlzaW9uIDEw
ODM2NykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmVDb21tb24udnNw
cm9wcwkod29ya2luZyBjb3B5KQpAQCAtNyw3ICs3LDcgQEAKIAk+CiAJPFRvb2wKIAkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKLQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iJnF1b3Q7
JChQcm9qZWN0RGlyKS4uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxhY2Nlc3NpYmlsaXR5
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxhY2Nlc3NpYmlsaXR5XHdpbiZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpLi5cYnJpZGdlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxicmlk
Z2VcYyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYnJpZGdlXGpzYyZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5cY3NzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxlZGl0aW5nJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxmaWxlYXBpJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cikuLlxyZW5kZXJpbmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHJlbmRlcmluZ1xtYXRo
bWwmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHJlbmRlcmluZ1xzdHlsZSZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpLi5ccmVuZGVyaW5nXHN2ZyZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
Li5cYmluZGluZ3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJpbmRpbmdzXGdlbmVyaWMm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJpbmRpbmdzXGpzJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxiaW5kaW5nc1xqc1xzcGVjaWFsaXphdGlvbiZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5cZG9tJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxkb21cZGVmYXVsdCZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpLi5caGlzdG9yeSZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
Li5caHRtbCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5caHRtbFxjYW52YXMmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXGh0bWxccGFyc2VyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpciku
LlxodG1sXHNoYWRvdyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5caW5zcGVjdG9yJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcikuLlxsb2FkZXImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4u
XGxvYWRlclxhcHBjYWNoZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbG9hZGVyXGFyY2hp
dmUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGxvYWRlclxhcmNoaXZlXGNmJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcikuLlxsb2FkZXJcY2FjaGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXGxvYWRlclxpY29uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxtYXRobWwmcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKS4uXG5vdGlmaWNhdGlvbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKS4uXHBhZ2UmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBhZ2VcYW5pbWF0aW9uJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwYWdlXHNjcm9sbGluZyZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpLi5ccGFnZVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3Jt
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxhbmltYXRpb24mcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXG1vY2smcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXHBsYXRmb3JtXHNxbCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cd2lu
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxuZXR3b3JrJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxuZXR3b3JrXHdpbiZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5ccGxhdGZvcm1cY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3Jt
XGdyYXBoaWNzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1xj
YSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3NcZmlsdGVycyZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3NcZmlsdGVyc1xhcm0m
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzXG9wZW50eXBlJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1x0cmFuc2Zvcm1zJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVx0ZXh0JnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxwbGF0Zm9ybVx0ZXh0XHRyYW5zY29kZXImcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5c
eG1sJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlx4bWxccGFyc2VyJnF1b3Q7OyZxdW90OyQo
Q29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcV2ViQ29yZVxEZXJpdmVkU291cmNlcyZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpLi5ccGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5c
cGx1Z2luc1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2Z1xhbmltYXRpb24mcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2Z1xncmFwaGljcyZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5cc3ZnXHByb3BlcnRpZXMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2Z1xn
cmFwaGljc1xmaWx0ZXJzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxzdmcmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXHRlc3RpbmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHdt
bCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cc3RvcmFnZSZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5cd2Vic29ja2V0cyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cd29ya2VycyZx
dW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcaW5jbHVkZSZxdW90OzsmcXVvdDsk
KENvbmZpZ3VyYXRpb25CdWlsZERpcilcaW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZxdW90OyQoQ29u
ZmlndXJhdGlvbkJ1aWxkRGlyKVxpbmNsdWRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQo
Q29uZmlndXJhdGlvbkJ1aWxkRGlyKVxpbmNsdWRlXHByaXZhdGVcSmF2YVNjcmlwdENvcmUmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXEZvcndhcmRpbmdIZWFkZXJzJnF1b3Q7OyZxdW90OyQo
V2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVz
RGlyKVxpbmNsdWRlXHByaXZhdGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGlu
Y2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmll
c0RpcilcaW5jbHVkZVxwdGhyZWFkcyZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0Rpcilc
aW5jbHVkZVxzcWxpdGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVc
SmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVc
emxpYiZxdW90OyIKKwkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iJnF1b3Q7JChQcm9q
ZWN0RGlyKS4uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxNb2R1bGVzXGdlb2xvY2F0aW9u
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxhY2Nlc3NpYmlsaXR5JnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcikuLlxhY2Nlc3NpYmlsaXR5XHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
Li5cYnJpZGdlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxicmlkZ2VcYyZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpLi5cYnJpZGdlXGpzYyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5c
Y3NzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxlZGl0aW5nJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxmaWxlYXBpJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxyZW5kZXJpbmcm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHJlbmRlcmluZ1xtYXRobWwmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKS4uXHJlbmRlcmluZ1xzdHlsZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
Li5ccmVuZGVyaW5nXHN2ZyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYmluZGluZ3MmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJpbmRpbmdzXGdlbmVyaWMmcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKS4uXGJpbmRpbmdzXGpzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxiaW5k
aW5nc1xqc1xzcGVjaWFsaXphdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cZG9tJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxkb21cZGVmYXVsdCZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5caGlzdG9yeSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5caHRtbCZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpLi5caHRtbFxjYW52YXMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXGh0bWxccGFyc2VyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxodG1sXHNoYWRvdyZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpLi5caW5zcGVjdG9yJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcikuLlxsb2FkZXImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGxvYWRlclxhcHBjYWNo
ZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbG9hZGVyXGFyY2hpdmUmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKS4uXGxvYWRlclxhcmNoaXZlXGNmJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cikuLlxsb2FkZXJcY2FjaGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGxvYWRlclxpY29u
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxtYXRobWwmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKS4uXG5vdGlmaWNhdGlvbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBhZ2UmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBhZ2VcYW5pbWF0aW9uJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxwYWdlXHNjcm9sbGluZyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGFn
ZVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcikuLlxwbGF0Zm9ybVxhbmltYXRpb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXHBsYXRmb3JtXG1vY2smcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXHNx
bCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cd2luJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcikuLlxwbGF0Zm9ybVxuZXR3b3JrJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpciku
LlxwbGF0Zm9ybVxuZXR3b3JrXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZv
cm1cY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1xjYSZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3NcZmlsdGVycyZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3NcZmlsdGVyc1xhcm0mcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzXG9wZW50eXBlJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1x0cmFuc2Zvcm1zJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxwbGF0Zm9ybVx0ZXh0JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0
Zm9ybVx0ZXh0XHRyYW5zY29kZXImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3Jt
XGdyYXBoaWNzXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ceG1sJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcikuLlx4bWxccGFyc2VyJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1
aWxkRGlyKVxvYmpcV2ViQ29yZVxEZXJpdmVkU291cmNlcyZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpLi5ccGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGx1Z2luc1x3aW4mcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2Z1xhbmltYXRpb24mcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKS4uXHN2Z1xncmFwaGljcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cc3ZnXHBy
b3BlcnRpZXMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2Z1xncmFwaGljc1xmaWx0ZXJz
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxzdmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXHRlc3RpbmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHdtbCZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5cc3RvcmFnZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cd2Vic29j
a2V0cyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cd29ya2VycyZxdW90OzsmcXVvdDskKENv
bmZpZ3VyYXRpb25CdWlsZERpcilcaW5jbHVkZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25C
dWlsZERpcilcaW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxk
RGlyKVxpbmNsdWRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1
aWxkRGlyKVxpbmNsdWRlXHByaXZhdGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKS4uXEZvcndhcmRpbmdIZWFkZXJzJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVz
RGlyKVxpbmNsdWRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXHBy
aXZhdGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVccHJpdmF0ZVxK
YXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZVxw
dGhyZWFkcyZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZVxzcWxpdGUm
cXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVcSmF2YVNjcmlwdENvcmUm
cXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVcemxpYiZxdW90OyIKIAkJ
UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Il9fV0lOMzJfXztESVNBQkxFXzNEX1JFTkRFUklORztX
RUJDT1JFX0NPTlRFWFRfTUVOVVMiCiAJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIyIgogCQlQcmVj
b21waWxlZEhlYWRlclRocm91Z2g9IldlYkNvcmVQcmVmaXguaCIKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDEw
ODM2NykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkod29ya2luZyBjb3B5KQpAQCAtMzMyMyw2ICszMzIzLDggQEAKIAkJOTcwNTk5N0ExMDdEOTc1
MjAwQTUwQTdDIC8qIFBvbGljeUNoZWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDk3MDU5OTc2MTA3RDk3NTIwMEE1MEE3QyAvKiBQb2xpY3lDaGVj
a2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
OTcwQjcyOEExNDRGRkFDNjAwRjAwQTM3IC8qIEV2ZW50SW50ZXJmYWNlcy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcwQjcyODkxNDRGRkFDNjAwRjAw
QTM3IC8qIEV2ZW50SW50ZXJmYWNlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTk3MEI3MkE2MTQ1MDA4RUIwMEYwMEEzNyAvKiBFdmVudEhlYWRl
cnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MEI3
MkE1MTQ1MDA4RUIwMEYwMEEzNyAvKiBFdmVudEhlYWRlcnMuaCAqLzsgfTsKKwkJOTcxMTQ2MDMx
NEVGMDA5QTAwNjc0RkQ5IC8qIE5hdmlnYXRvckdlb2xvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MTE0NjAwMTRFRjAwOUEwMDY3NEZE
OSAvKiBOYXZpZ2F0b3JHZW9sb2NhdGlvbi5jcHAgKi87IH07CisJCTk3MTE0NjA0MTRFRjAwOUEw
MDY3NEZEOSAvKiBOYXZpZ2F0b3JHZW9sb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcxMTQ2MDExNEVGMDA5QTAwNjc0RkQ5IC8qIE5hdmln
YXRvckdlb2xvY2F0aW9uLmggKi87IH07CiAJCTk3MjA1QUFGMTIzOTI4Q0EwMEIxNzM4MCAvKiBG
VFBEaXJlY3RvcnlEb2N1bWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5NzIwNUFBRDEyMzkyOENBMDBCMTczODAgLyogRlRQRGlyZWN0b3J5RG9j
dW1lbnQuY3BwICovOyB9OwogCQk5NzIwNUFCMDEyMzkyOENBMDBCMTczODAgLyogRlRQRGlyZWN0
b3J5RG9jdW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk3MjA1QUFFMTIzOTI4Q0EwMEIxNzM4MCAvKiBGVFBEaXJlY3RvcnlEb2N1bWVudC5oICov
OyB9OwogCQk5NzIwNUFCNTEyMzkyOTEwMDBCMTczODAgLyogSW1hZ2VEb2N1bWVudC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzIwNUFCMTEyMzky
OTEwMDBCMTczODAgLyogSW1hZ2VEb2N1bWVudC5jcHAgKi87IH07CkBAIC0xMDE4Miw2ICsxMDE4
NCw5IEBACiAJCTk3MDU5OTc2MTA3RDk3NTIwMEE1MEE3QyAvKiBQb2xpY3lDaGVja2VyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBvbGljeUNoZWNrZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTcwQjcyODkxNDRGRkFDNjAwRjAwQTM3IC8qIEV2ZW50SW50
ZXJmYWNlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFdmVudEludGVyZmFj
ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTcwQjcyQTUxNDUwMDhFQjAwRjAw
QTM3IC8qIEV2ZW50SGVhZGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBF
dmVudEhlYWRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTcxMTQ2MDAxNEVG
MDA5QTAwNjc0RkQ5IC8qIE5hdmlnYXRvckdlb2xvY2F0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE5hdmlnYXRvckdlb2xvY2F0aW9uLmNwcDsgcGF0aCA9IE1v
ZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5NzExNDYwMTE0RUYwMDlBMDA2NzRGRDkgLyogTmF2aWdhdG9yR2Vv
bG9jYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTmF2aWdhdG9yR2Vv
bG9jYXRpb24uaDsgcGF0aCA9IE1vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRp
b24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTcxMTQ2MDIxNEVGMDA5QTAwNjc0
RkQ5IC8qIE5hdmlnYXRvckdlb2xvY2F0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBO
YXZpZ2F0b3JHZW9sb2NhdGlvbi5pZGw7IHBhdGggPSBNb2R1bGVzL2dlb2xvY2F0aW9uL05hdmln
YXRvckdlb2xvY2F0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTcyMDVB
QUQxMjM5MjhDQTAwQjE3MzgwIC8qIEZUUERpcmVjdG9yeURvY3VtZW50LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZUUERpcmVjdG9yeURvY3VtZW50LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTcyMDVBQUUxMjM5MjhDQTAwQjE3MzgwIC8qIEZU
UERpcmVjdG9yeURvY3VtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZU
UERpcmVjdG9yeURvY3VtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3MjA1
QUIxMTIzOTI5MTAwMEIxNzM4MCAvKiBJbWFnZURvY3VtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEltYWdlRG9jdW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTM0NTMsNiArMTM0NTgsNyBAQAogCQkJCUVERUM5ODAyMEFFRDdFMTcw
MDU5MTM3RiAvKiBXZWJDb3JlUHJlZml4LmggKi8sCiAJCQkJOTMwNzA2MTMwOUUwQ0E4MjAwQjE3
RkU0IC8qIERlcml2ZWRTb3VyY2VzLm1ha2UgKi8sCiAJCQkJOTNGMTlCMTkwODI0NUU1OTAwMUU5
QUJDIC8qIEluZm8ucGxpc3QgKi8sCisJCQkJOTcxMTQ1RkUxNEVGMDA2RTAwNjc0RkQ5IC8qIE1v
ZHVsZXMgKi8sCiAJCQkJMjlBODEyMDQwRkJCOUI0MTAwNTEwMjkzIC8qIGFjY2Vzc2liaWxpdHkg
Ki8sCiAJCQkJQkMxQTM3OTAwOTdDNkY5NzAwMTlGM0Q4IC8qIGJpbmRpbmdzICovLAogCQkJCTFB
NTY5Q0M0MEQ3RTJCNjAwMDdDMzk4MyAvKiBicmlkZ2UgKi8sCkBAIC0xNzA3MSw2ICsxNzA3Nywy
NCBAQAogCQkJdGFiV2lkdGggPSA0OwogCQkJdXNlc1RhYnMgPSAwOwogCQl9OworCQk5NzExNDVG
RTE0RUYwMDZFMDA2NzRGRDkgLyogTW9kdWxlcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOwor
CQkJY2hpbGRyZW4gPSAoCisJCQkJOTcxMTQ1RkYxNEVGMDA3OTAwNjc0RkQ5IC8qIGdlb2xvY2F0
aW9uICovLAorCQkJKTsKKwkJCW5hbWUgPSBNb2R1bGVzOworCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKKwkJfTsKKwkJOTcxMTQ1RkYxNEVGMDA3OTAwNjc0RkQ5IC8qIGdlb2xvY2F0aW9uICov
ID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk5NzExNDYwMDE0
RUYwMDlBMDA2NzRGRDkgLyogTmF2aWdhdG9yR2VvbG9jYXRpb24uY3BwICovLAorCQkJCTk3MTE0
NjAxMTRFRjAwOUEwMDY3NEZEOSAvKiBOYXZpZ2F0b3JHZW9sb2NhdGlvbi5oICovLAorCQkJCTk3
MTE0NjAyMTRFRjAwOUEwMDY3NEZEOSAvKiBOYXZpZ2F0b3JHZW9sb2NhdGlvbi5pZGwgKi8sCisJ
CQkpOworCQkJbmFtZSA9IGdlb2xvY2F0aW9uOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
KwkJfTsKIAkJOTc2RDZDNTcxMjJCOEExODAwMUZEMUY3IC8qIGZpbGVhcGkgKi8gPSB7CiAJCQlp
c2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMjMyNzQsNiArMjMyOTgsNyBAQAog
CQkJCTk3OUY0M0Q0MTA3NUU0NEEwMDAwRjgzQiAvKiBOYXZpZ2F0aW9uU2NoZWR1bGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBOUM2RTVBNjBENzQ2NDU4MDA2NDQyRTkgLyogTmF2aWdhdG9yLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlFMTI3MTlDNzBFRUVDMTY4MDBGNjEyMTMgLyogTmF2aWdhdG9y
QmFzZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTcxMTQ2MDQxNEVGMDA5QTAwNjc0RkQ5IC8qIE5h
dmlnYXRvckdlb2xvY2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5N0NDM0FFMzE0RThFNEEy
MDA4OTQ5ODggLyogTmF2aWdhdG9yU3VwcGxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOEEz
MDlDOUYxMjM5NTBCRTAwQ0I5MjA0IC8qIE5lc3RpbmdMZXZlbEluY3JlbWVudGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk2NTZEMzc0MzBBREJBNURFMDBBNDU1NEQgLyogTmV0c2NhcGVQbHVnSW5T
dHJlYW1Mb2FkZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMjY0MjcsNiArMjY0NTIsNyBAQAogCQkJ
CTk3OUY0M0QzMTA3NUU0NEEwMDAwRjgzQiAvKiBOYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUE5QzZFNUE1MEQ3NDY0NTgwMDY0NDJFOSAvKiBOYXZpZ2F0b3IuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJRTEyNzE5Q0EwRUVFQzIxMzAwRjYxMjEzIC8qIE5hdmlnYXRv
ckJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTcxMTQ2MDMxNEVGMDA5QTAwNjc0RkQ5IC8q
IE5hdmlnYXRvckdlb2xvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3Q0MzQUUyMTRF
OEU0QTIwMDg5NDk4OCAvKiBOYXZpZ2F0b3JTdXBwbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTVEODc0RjEzMEQxNjFEMzIwMDc5NkMzQiAvKiBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1OUMyN0YwNTEzOEQyOEMxMDA3OUI3RTIgLyogTmV0
d29ya1Jlc291cmNlc0RhdGEuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlci5jcHAJKHJldmlzaW9uIDEwODM2NykKKysrIFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0MzksOCArMjQzOSw3
IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNsb3NlQW5kUmVtb3ZlQ2hpbGQoRnIKICAgICBjaGlsZC0+
c2V0VmlldygwKTsKICAgICBpZiAoY2hpbGQtPm93bmVyRWxlbWVudCgpICYmIGNoaWxkLT5wYWdl
KCkpCiAgICAgICAgIGNoaWxkLT5wYWdlKCktPmRlY3JlbWVudEZyYW1lQ291bnQoKTsKLSAgICAv
LyBGSVhNRTogVGhlIHBhZ2UgaXNuJ3QgYmVpbmcgZGVzdHJveWVkLCBzbyBpdCdzIG5vdCByaWdo
dCB0byBjYWxsIGEgZnVuY3Rpb24gbmFtZWQgcGFnZURlc3Ryb3llZCgpLgotICAgIGNoaWxkLT5w
YWdlRGVzdHJveWVkKCk7CisgICAgY2hpbGQtPmRldGFjaEZyb21QYWdlKCk7CiAKICAgICBtX2Zy
YW1lLT50cmVlKCktPnJlbW92ZUNoaWxkKGNoaWxkKTsKIH0KQEAgLTI1MTgsOCArMjUxNyw3IEBA
IHZvaWQgRnJhbWVMb2FkZXI6OmRldGFjaEZyb21QYXJlbnQoKQogICAgICAgICBwYXJlbnQtPmxv
YWRlcigpLT5zY2hlZHVsZUNoZWNrQ29tcGxldGVkKCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAg
bV9mcmFtZS0+c2V0VmlldygwKTsKLSAgICAgICAgLy8gRklYTUU6IFRoZSBwYWdlIGlzbid0IGJl
aW5nIGRlc3Ryb3llZCwgc28gaXQncyBub3QgcmlnaHQgdG8gY2FsbCBhIGZ1bmN0aW9uIG5hbWVk
IHBhZ2VEZXN0cm95ZWQoKS4KLSAgICAgICAgbV9mcmFtZS0+cGFnZURlc3Ryb3llZCgpOworICAg
ICAgICBtX2ZyYW1lLT5kZXRhY2hGcm9tUGFnZSgpOwogICAgIH0KIH0KIApJbmRleDogU291cmNl
L1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmNwcAkocmV2aXNpb24gMTA4MzY3KQorKysgU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00ODAsNiArNDgwLDIxIEBAIHZv
aWQgRE9NV2luZG93OjpmcmFtZURlc3Ryb3llZCgpCiAgICAgY2xlYXIoKTsKIH0KIAordm9pZCBE
T01XaW5kb3c6OndpbGxEZXRhY2hQYWdlKCkKK3sKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmZyYW1lV2luZG93RGlzY2FyZGVkKG1fZnJhbWUsIHRoaXMpOworCisjaWYgRU5BQkxFKE5P
VElGSUNBVElPTlMpCisgICAgLy8gQ2xlYXJpbmcgTm90aWZpY2F0aW9ucyByZXF1ZXN0cyBpbnZv
bHZlcyBhY2Nlc3NpbmcgdGhlIGNsaWVudCBzbyBpdCBtdXN0IGJlIGRvbmUKKyAgICAvLyBiZWZv
cmUgdGhlIGZyYW1lIGlzIGRldGFjaGVkLgorICAgIHJlc2V0Tm90aWZpY2F0aW9ucygpOworI2Vu
ZGlmCisKKyAgICBIYXNoU2V0PERPTVdpbmRvd1Byb3BlcnR5Kj46Oml0ZXJhdG9yIHN0b3AgPSBt
X3Byb3BlcnRpZXMuZW5kKCk7CisgICAgZm9yIChIYXNoU2V0PERPTVdpbmRvd1Byb3BlcnR5Kj46
Oml0ZXJhdG9yIGl0ID0gbV9wcm9wZXJ0aWVzLmJlZ2luKCk7IGl0ICE9IHN0b3A7ICsraXQpCisg
ICAgICAgICgqaXQpLT53aWxsRGV0YWNoUGFnZSgpOworfQorCiB2b2lkIERPTVdpbmRvdzo6cmVn
aXN0ZXJQcm9wZXJ0eShET01XaW5kb3dQcm9wZXJ0eSogcHJvcGVydHkpCiB7CiAgICAgbV9wcm9w
ZXJ0aWVzLmFkZChwcm9wZXJ0eSk7CkBAIC03MzEsMjMgKzc0Niw2IEBAIHZvaWQgRE9NV2luZG93
OjpyZXNldE5vdGlmaWNhdGlvbnMoKQogfQogI2VuZGlmCiAKLXZvaWQgRE9NV2luZG93OjpwYWdl
RGVzdHJveWVkKCkKLXsKLSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lV2luZG93
RGlzY2FyZGVkKG1fZnJhbWUsIHRoaXMpOwotI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQotICAg
IC8vIENsZWFyaW5nIE5vdGlmaWNhdGlvbnMgcmVxdWVzdHMgaW52b2x2ZXMgYWNjZXNzaW5nIHRo
ZSBjbGllbnQgc28gaXQgbXVzdCBiZSBkb25lCi0gICAgLy8gYmVmb3JlIHRoZSBmcmFtZSBpcyBk
ZXRhY2hlZC4KLSAgICByZXNldE5vdGlmaWNhdGlvbnMoKTsKLSNlbmRpZgotfQotCi12b2lkIERP
TVdpbmRvdzo6cmVzZXRHZW9sb2NhdGlvbigpCi17Ci0gICAgLy8gR2VvbG9jYXRpb24gc2hvdWxk
IGNhbmNlbCBhY3Rpdml0aWVzIGFuZCBwZXJtaXNzaW9uIHJlcXVlc3RzIHdoZW4gdGhlIHBhZ2Ug
aXMgZGV0YWNoZWQuCi0gICAgaWYgKG1fbmF2aWdhdG9yKQotICAgICAgICBtX25hdmlnYXRvci0+
cmVzZXRHZW9sb2NhdGlvbigpOwotfQotCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiB2
b2lkIERPTVdpbmRvdzo6c2V0SURCRmFjdG9yeShQYXNzUmVmUHRyPElEQkZhY3Rvcnk+IGlkYkZh
Y3RvcnkpCiB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgJKHJldmlzaW9uIDEwODM2NykK
KysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgJKHdvcmtpbmcgY29weSkKQEAgLTky
LDggKzkyLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZpcnR1YWwgRE9NV2lu
ZG93KiB0b0RPTVdpbmRvdygpOwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBmcmFtZURlc3Ryb3ll
ZCgpIE9WRVJSSURFOwotCiAgICAgICAgIHZvaWQgcmVnaXN0ZXJQcm9wZXJ0eShET01XaW5kb3dQ
cm9wZXJ0eSopOwogICAgICAgICB2b2lkIHVucmVnaXN0ZXJQcm9wZXJ0eShET01XaW5kb3dQcm9w
ZXJ0eSopOwogCkBAIC0yMzEsOSArMjI5LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICB2b2lkIHByaW50RXJyb3JNZXNzYWdlKGNvbnN0IFN0cmluZyYpOwogICAgICAgICBTdHJpbmcg
Y3Jvc3NEb21haW5BY2Nlc3NFcnJvck1lc3NhZ2UoRE9NV2luZG93KiBhY3RpdmVXaW5kb3cpOwog
Ci0gICAgICAgIHZvaWQgcGFnZURlc3Ryb3llZCgpOwotICAgICAgICB2b2lkIHJlc2V0R2VvbG9j
YXRpb24oKTsKLQogICAgICAgICB2b2lkIHBvc3RNZXNzYWdlKFBhc3NSZWZQdHI8U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlPiBtZXNzYWdlLCBjb25zdCBNZXNzYWdlUG9ydEFycmF5KiwgY29uc3QgU3Ry
aW5nJiB0YXJnZXRPcmlnaW4sIERPTVdpbmRvdyogc291cmNlLCBFeGNlcHRpb25Db2RlJik7CiAg
ICAgICAgIC8vIEZJWE1FOiByZW1vdmUgdGhpcyB3aGVuIHdlIHVwZGF0ZSB0aGUgT2JqQyBiaW5k
aW5ncyAoYnVnICMyODc3NCkuCiAgICAgICAgIHZvaWQgcG9zdE1lc3NhZ2UoUGFzc1JlZlB0cjxT
ZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1lc3NhZ2UsIE1lc3NhZ2VQb3J0KiwgY29uc3QgU3RyaW5n
JiB0YXJnZXRPcmlnaW4sIERPTVdpbmRvdyogc291cmNlLCBFeGNlcHRpb25Db2RlJik7CkBAIC00
MTksNiArNDE0LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIHByaXZhdGU6CiAgICAgICAg
IGV4cGxpY2l0IERPTVdpbmRvdyhGcmFtZSopOwogCisgICAgICAgIHZpcnR1YWwgdm9pZCBmcmFt
ZURlc3Ryb3llZCgpIE9WRVJSSURFOworICAgICAgICB2aXJ0dWFsIHZvaWQgd2lsbERldGFjaFBh
Z2UoKSBPVkVSUklERTsKKwogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSB7
IHJlZigpOyB9CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgeyBkZXJl
ZigpOyB9CiAgICAgICAgIHZpcnR1YWwgRXZlbnRUYXJnZXREYXRhKiBldmVudFRhcmdldERhdGEo
KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93UHJvcGVydHkuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93UHJvcGVydHkuY3BwCShyZXZp
c2lvbiAxMDgzNjcpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd1Byb3BlcnR5LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDksNCArNDksOSBAQCB2b2lkIERPTVdpbmRvd1Byb3BlcnR5
OjpkaXNjb25uZWN0RnJhbWUoCiAgICAgbV9mcmFtZSA9IDA7CiB9CiAKK3ZvaWQgRE9NV2luZG93
UHJvcGVydHk6OndpbGxEZXRhY2hQYWdlKCkKK3sKKyAgICAvLyBTdWJjbGFzc2VzIHNob3VsZCBv
dmVycmlkZSB0aGlzIGZ1bmN0aW9uIHRvIGhhbmRsZSB0aGlzIG5vdGlmaWNhdGlvbi4KK30KKwog
fQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3dQcm9wZXJ0eS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93UHJvcGVydHkuaAkocmV2aXNpb24g
MTA4MzY3KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3dQcm9wZXJ0eS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMyw3ICszMyw5IEBAIGNsYXNzIEZyYW1lOwogY2xhc3MgRE9NV2luZG93
UHJvcGVydHkgewogcHVibGljOgogICAgIGV4cGxpY2l0IERPTVdpbmRvd1Byb3BlcnR5KEZyYW1l
Kik7CisKICAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdEZyYW1lKCk7CisgICAgdmlydHVhbCB2
b2lkIHdpbGxEZXRhY2hQYWdlKCk7CiAKICAgICBGcmFtZSogZnJhbWUoKSBjb25zdCB7IHJldHVy
biBtX2ZyYW1lOyB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCShyZXZpc2lvbiAxMDgzNjcp
CisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjYw
LDIxICs2NjAsMTkgQEAgRE9NV2luZG93KiBGcmFtZTo6ZG9tV2luZG93KCkgY29uc3QKICAgICBy
ZXR1cm4gbV9kb21XaW5kb3cuZ2V0KCk7CiB9CiAKLXZvaWQgRnJhbWU6OnBhZ2VEZXN0cm95ZWQo
KQordm9pZCBGcmFtZTo6d2lsbERldGFjaFBhZ2UoKQogewotICAgIC8vIEZJWE1FOiBSZW5hbWUg
dGhpcyBmdW5jdGlvbiwgc2luY2UgaXQncyBjYWxsZWQgbm90IG9ubHkgZnJvbSBQYWdlIGRlc3Ry
dWN0b3IsIGJ1dCBpbiBzZXZlcmFsIG90aGVyIGNhc2VzLgotICAgIC8vIFRoaXMgY2xlYW51cCBp
cyBuZWVkZWQgd2hlbmV2ZXIgd2UgcmVtb3ZlIGEgZnJhbWUgZnJvbSBwYWdlLgotCiAgICAgaWYg
KEZyYW1lKiBwYXJlbnQgPSB0cmVlKCktPnBhcmVudCgpKQogICAgICAgICBwYXJlbnQtPmxvYWRl
cigpLT5jaGVja0xvYWRDb21wbGV0ZSgpOwogCi0gICAgaWYgKG1fZG9tV2luZG93KSB7Ci0gICAg
ICAgIG1fZG9tV2luZG93LT5yZXNldEdlb2xvY2F0aW9uKCk7CiAjaWYgRU5BQkxFKE5PVElGSUNB
VElPTlMpCisgICAgaWYgKG1fZG9tV2luZG93KQogICAgICAgICBtX2RvbVdpbmRvdy0+cmVzZXRO
b3RpZmljYXRpb25zKCk7CiAjZW5kaWYKLSAgICAgICAgbV9kb21XaW5kb3ctPnBhZ2VEZXN0cm95
ZWQoKTsKLSAgICB9CisKKyAgICBIYXNoU2V0PEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlcio+Ojpp
dGVyYXRvciBzdG9wID0gbV9kZXN0cnVjdGlvbk9ic2VydmVycy5lbmQoKTsKKyAgICBmb3IgKEhh
c2hTZXQ8RnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyKj46Oml0ZXJhdG9yIGl0ID0gbV9kZXN0cnVj
dGlvbk9ic2VydmVycy5iZWdpbigpOyBpdCAhPSBzdG9wOyArK2l0KQorICAgICAgICAoKml0KS0+
d2lsbERldGFjaFBhZ2UoKTsKIAogICAgIC8vIEZJWE1FOiBJdCdzIHVuY2xlYXIgYXMgdG8gd2h5
IHRoaXMgaXMgY2FsbGVkIG1vcmUgdGhhbiBvbmNlLCBidXQgaXQgaXMsCiAgICAgLy8gc28gcGFn
ZSgpIGNvdWxkIGJlIE5VTEwuCkBAIC02ODMsOCArNjgxLDYgQEAgdm9pZCBGcmFtZTo6cGFnZURl
c3Ryb3llZCgpCiAKICAgICBzY3JpcHQoKS0+Y2xlYXJTY3JpcHRPYmplY3RzKCk7CiAgICAgc2Ny
aXB0KCktPnVwZGF0ZVBsYXRmb3JtU2NyaXB0T2JqZWN0cygpOwotCi0gICAgZGV0YWNoRnJvbVBh
Z2UoKTsKIH0KIAogdm9pZCBGcmFtZTo6ZGlzY29ubmVjdE93bmVyRWxlbWVudCgpCkBAIC03MTgs
MTcgKzcxNCwxNiBAQCB2b2lkIEZyYW1lOjp0cmFuc2ZlckNoaWxkRnJhbWVUb05ld0RvY3VtCiAg
ICAgICAgICAgICAgbV9wYWdlLT5kZWNyZW1lbnRGcmFtZUNvdW50KCk7CiAgICAgICAgIH0KIAot
ICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGlkZWFsbHkgYWxsb3cgZXhpc3RpbmcgR2VvbG9j
YXRpb24gYWN0aXZpdGllcyB0byBjb250aW51ZQotICAgICAgICAvLyB3aGVuIHRoZSBHZW9sb2Nh
dGlvbidzIGlmcmFtZSBpcyByZXBhcmVudGVkLgotICAgICAgICAvLyBTZWUgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU1NTc3Ci0gICAgICAgIC8vIGFuZCBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTI4NzcKICAgICAgICAgaWYgKG1fZG9t
V2luZG93KSB7Ci0gICAgICAgICAgICBtX2RvbVdpbmRvdy0+cmVzZXRHZW9sb2NhdGlvbigpOwog
I2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQogICAgICAgICAgICAgbV9kb21XaW5kb3ctPnJlc2V0
Tm90aWZpY2F0aW9ucygpOwogI2VuZGlmCiAgICAgICAgIH0KIAorICAgICAgICBIYXNoU2V0PEZy
YW1lRGVzdHJ1Y3Rpb25PYnNlcnZlcio+OjppdGVyYXRvciBzdG9wID0gbV9kZXN0cnVjdGlvbk9i
c2VydmVycy5lbmQoKTsKKyAgICAgICAgZm9yIChIYXNoU2V0PEZyYW1lRGVzdHJ1Y3Rpb25PYnNl
cnZlcio+OjppdGVyYXRvciBpdCA9IG1fZGVzdHJ1Y3Rpb25PYnNlcnZlcnMuYmVnaW4oKTsgaXQg
IT0gc3RvcDsgKytpdCkKKyAgICAgICAgICAgICgqaXQpLT53aWxsRGV0YWNoUGFnZSgpOworCiAg
ICAgICAgIG1fcGFnZSA9IG5ld1BhZ2U7CiAKICAgICAgICAgaWYgKG5ld1BhZ2UpCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZS5oCShyZXZpc2lvbiAxMDgzNjcpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lLmgJKHdvcmtpbmcgY29weSkKQEAgLTg5LDggKzg5LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICB2b2lkIGFkZERlc3RydWN0aW9uT2JzZXJ2ZXIoRnJhbWVEZXN0cnVjdGlvbk9i
c2VydmVyKik7CiAgICAgICAgIHZvaWQgcmVtb3ZlRGVzdHJ1Y3Rpb25PYnNlcnZlcihGcmFtZURl
c3RydWN0aW9uT2JzZXJ2ZXIqKTsKIAorICAgICAgICB2b2lkIHdpbGxEZXRhY2hQYWdlKCk7CiAg
ICAgICAgIHZvaWQgZGV0YWNoRnJvbVBhZ2UoKTsKLSAgICAgICAgdm9pZCBwYWdlRGVzdHJveWVk
KCk7CiAgICAgICAgIHZvaWQgZGlzY29ubmVjdE93bmVyRWxlbWVudCgpOwogCiAgICAgICAgIFBh
Z2UqIHBhZ2UoKSBjb25zdDsKQEAgLTM0OCw2ICszNDgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKICAgICBpbmxpbmUgdm9pZCBGcmFtZTo6ZGV0YWNoRnJvbVBhZ2UoKQogICAgIHsKKyAgICAg
ICAgd2lsbERldGFjaFBhZ2UoKTsKICAgICAgICAgbV9wYWdlID0gMDsKICAgICB9CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlci5jcHAJ
KHJldmlzaW9uIDEwODM2NykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVEZXN0cnVjdGlv
bk9ic2VydmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTgsNCArNTgsOSBAQCB2b2lkIEZyYW1l
RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6ZnJhbWVEZXN0CiAgICAgbV9mcmFtZSA9IDA7CiB9CiAKK3Zv
aWQgRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyOjp3aWxsRGV0YWNoUGFnZSgpCit7CisgICAgLy8g
U3ViY2xhc3NlcyBzaG91bGQgb3ZlcnJpZGUgdGhpcyBmdW5jdGlvbiB0byBoYW5kbGUgdGhpcyBu
b3RpZmljYXRpb24uCit9CisKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVEZXN0
cnVjdGlvbk9ic2VydmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZURlc3RydWN0aW9uT2JzZXJ2ZXIuaAkocmV2aXNpb24gMTA4MzY3KQorKysgU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzMs
NyArMzMsMTAgQEAgY2xhc3MgRnJhbWU7CiBjbGFzcyBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIg
ewogcHVibGljOgogICAgIGV4cGxpY2l0IEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlcihGcmFtZSop
OworCiAgICAgdmlydHVhbCB2b2lkIGZyYW1lRGVzdHJveWVkKCk7CisgICAgdmlydHVhbCB2b2lk
IHdpbGxEZXRhY2hQYWdlKCk7CisKICAgICBGcmFtZSogZnJhbWUoKSBjb25zdCB7IHJldHVybiBt
X2ZyYW1lOyB9CiAKIHByb3RlY3RlZDoKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdh
dG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5jcHAJ
KHJldmlzaW9uIDEwODM2NykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNjcsMTIgKzY3LDYgQEAgTmF2aWdhdG9yU3VwcGxlbWVudCogTmF2
aWdhdG9yOjpyZXF1aXJlUwogICAgIHJldHVybiBtX3N1cHBsaW1lbnRzLmdldChuYW1lLmltcGwo
KSk7CiB9CiAKLXZvaWQgTmF2aWdhdG9yOjpyZXNldEdlb2xvY2F0aW9uKCkKLXsKLSAgICBpZiAo
bV9nZW9sb2NhdGlvbikKLSAgICAgICAgbV9nZW9sb2NhdGlvbi0+cmVzZXQoKTsKLX0KLQogLy8g
SWYgdGhpcyBmdW5jdGlvbiByZXR1cm5zIHRydWUsIHdlIG5lZWQgdG8gaGlkZSB0aGUgc3Vic3Ry
aW5nICI0LiIgdGhhdCB3b3VsZCBvdGhlcndpc2UKIC8vIGFwcGVhciBpbiB0aGUgYXBwVmVyc2lv
biBzdHJpbmcuIFRoaXMgaXMgdG8gYXZvaWQgcHJvYmxlbXMgd2l0aCBvbGQgdmVyc2lvbnMgb2Yg
YQogLy8gbGlicmFyeSBjYWxsZWQgT3BlbkN1YmUgUXVpY2tNZW51LCB3aGljaCBhcyBvZiB0aGlz
IHdyaXRpbmcgaXMgc3RpbGwgYmVpbmcgdXNlZCBvbgpAQCAtMTUxLDEzICsxNDUsNiBAQCBib29s
IE5hdmlnYXRvcjo6amF2YUVuYWJsZWQoKSBjb25zdAogICAgIHJldHVybiBtX2ZyYW1lLT5zZXR0
aW5ncygpLT5pc0phdmFFbmFibGVkKCk7CiB9CiAKLUdlb2xvY2F0aW9uKiBOYXZpZ2F0b3I6Omdl
b2xvY2F0aW9uKCkgY29uc3QKLXsKLSAgICBpZiAoIW1fZ2VvbG9jYXRpb24pCi0gICAgICAgIG1f
Z2VvbG9jYXRpb24gPSBHZW9sb2NhdGlvbjo6Y3JlYXRlKG1fZnJhbWUpOwotICAgIHJldHVybiBt
X2dlb2xvY2F0aW9uLmdldCgpOwotfQotCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKIFBvaW50
ZXJMb2NrKiBOYXZpZ2F0b3I6OndlYmtpdFBvaW50ZXIoKSBjb25zdAogewpJbmRleDogU291cmNl
L1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
YWdlL05hdmlnYXRvci5oCShyZXZpc2lvbiAxMDgzNjcpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdl
L05hdmlnYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw2IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIGNsYXNzIERPTU1pbWVUeXBlQXJyYXk7CiBjbGFzcyBET01QbHVnaW5BcnJheTsK
IGNsYXNzIEZyYW1lOwotY2xhc3MgR2VvbG9jYXRpb247CiBjbGFzcyBQb2ludGVyTG9jazsKIGNs
YXNzIFBsdWdpbkRhdGE7CiAKQEAgLTQ1LDggKzQ0LDYgQEAgcHVibGljOgogICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPE5hdmlnYXRvcj4gY3JlYXRlKEZyYW1lKiBmcmFtZSkgeyByZXR1cm4gYWRvcHRS
ZWYobmV3IE5hdmlnYXRvcihmcmFtZSkpOyB9CiAgICAgdmlydHVhbCB+TmF2aWdhdG9yKCk7CiAK
LSAgICB2b2lkIHJlc2V0R2VvbG9jYXRpb24oKTsKLQogICAgIFN0cmluZyBhcHBWZXJzaW9uKCkg
Y29uc3Q7CiAgICAgU3RyaW5nIGxhbmd1YWdlKCkgY29uc3Q7CiAgICAgRE9NUGx1Z2luQXJyYXkq
IHBsdWdpbnMoKSBjb25zdDsKQEAgLTU2LDggKzUzLDYgQEAgcHVibGljOgogCiAgICAgdmlydHVh
bCBTdHJpbmcgdXNlckFnZW50KCkgY29uc3Q7CiAKLSAgICBHZW9sb2NhdGlvbiogZ2VvbG9jYXRp
b24oKSBjb25zdDsKLQogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgUG9pbnRlckxvY2sq
IHdlYmtpdFBvaW50ZXIoKSBjb25zdDsKICNlbmRpZgpAQCAtODAsNyArNzUsNiBAQCBwcml2YXRl
OgogCiAgICAgbXV0YWJsZSBSZWZQdHI8RE9NUGx1Z2luQXJyYXk+IG1fcGx1Z2luczsKICAgICBt
dXRhYmxlIFJlZlB0cjxET01NaW1lVHlwZUFycmF5PiBtX21pbWVUeXBlczsKLSAgICBtdXRhYmxl
IFJlZlB0cjxHZW9sb2NhdGlvbj4gbV9nZW9sb2NhdGlvbjsKICNpZiBFTkFCTEUoUE9JTlRFUl9M
T0NLKQogICAgIG11dGFibGUgUmVmUHRyPFBvaW50ZXJMb2NrPiBtX3BvaW50ZXI7CiAjZW5kaWYK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmlkbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5pZGwJKHJldmlzaW9uIDEwODM2NykKKysrIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmlkbAkod29ya2luZyBjb3B5KQpAQCAtNDAsMTAg
KzQwLDYgQEAgbW9kdWxlIHdpbmRvdyB7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJv
b2xlYW4gb25MaW5lOwogCi0jaWYgZGVmaW5lZChFTkFCTEVfR0VPTE9DQVRJT04pICYmIEVOQUJM
RV9HRU9MT0NBVElPTgotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW1Y4RW5hYmxlZEF0UnVu
dGltZV0gR2VvbG9jYXRpb24gZ2VvbG9jYXRpb247Ci0jZW5kaWYKLQogI2lmIGRlZmluZWQoRU5B
QkxFX1BPSU5URVJfTE9DSykgJiYgRU5BQkxFX1BPSU5URVJfTE9DSwogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgW1Y4RW5hYmxlZEF0UnVudGltZV0gUG9pbnRlckxvY2sgd2Via2l0UG9pbnRl
cjsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCShyZXZpc2lvbiAxMDgzNjcpCisrKyBT
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDAsNyArMjAw
LDcgQEAgUGFnZTo6flBhZ2UoKQogICAgIGFsbFBhZ2VzLT5yZW1vdmUodGhpcyk7CiAgICAgCiAg
ICAgZm9yIChGcmFtZSogZnJhbWUgPSBtYWluRnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUt
PnRyZWUoKS0+dHJhdmVyc2VOZXh0KCkpCi0gICAgICAgIGZyYW1lLT5wYWdlRGVzdHJveWVkKCk7
CisgICAgICAgIGZyYW1lLT5kZXRhY2hGcm9tUGFnZSgpOwogCiAgICAgbV9lZGl0b3JDbGllbnQt
PnBhZ2VEZXN0cm95ZWQoKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128033</attachid>
            <date>2012-02-21 13:20:15 -0800</date>
            <delta_ts>2012-02-21 14:39:25 -0800</delta_ts>
            <desc>for EWSWS</desc>
            <filename>bug-78860-20120221132014.patch</filename>
            <type>text/plain</type>
            <size>60495</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwODM2NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUxIEBACisyMDEyLTAyLTIxICBBZGFtIEJh
cnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRnJhbWUgYW5kIE5hdmlnYXRvciBz
aG91bGRuJ3QgbmVlZCB0byB3b3JyeSBhYm91dCBHZW9sb2NhdGlvbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg4NjAKKworICAgICAgICBSZXZpZXdl
ZCBieSBFcmljIFNlaWRlbC4KKworICAgICAgICBUaGlzIHBhdGNoIHJlbW92ZXMgc29tZSBHZW9s
b2NhdGlvbi1zcGVjaWZpYyBjb2RlIGZyb20gRnJhbWUgYW5kCisgICAgICAgIE5hdmlnYXRvciBp
biBmYXZvciBvZiBvdXIgbmV3IHN1cHBsZW1lbnRhbCBtb2R1bGUgbWVjaGFuaXNtLiAgV2UncmUK
KyAgICAgICAgc3RpbGwgcmVmaW5pbmcgdGhlIG1vZHVsZSBzeXN0ZW0sIGJ1dCB3ZSBzZWVtIHRv
IGJlIGNvbnZlcmdpbmcgb24gYQorICAgICAgICBzaW1wbGUgT2JzZXJ2ZXIvU3VwcGxlbWVudCBk
ZXNpZ24uCisKKyAgICAgICAgSW4gYSBmdXR1cmUgcGF0Y2gsIEknbGwgbW92ZSB0aGUgcmVtYWlu
aW5nIEdlb2xvY2F0aW9uLXJlbGF0ZWQgZmlsZXMgaW4KKyAgICAgICAgV2ViQ29yZSBpbnRvIE1v
ZHVsZXMvZ2VvbG9jYXRpb24uICBUaGlzIHBhdGNoIGFwcGVhcnMgdG8gYmUgdGhlIGZpcnN0Cisg
ICAgICAgIHBhdGNoIHRoYXQgaW50cm9kdWNlcyBhIG1vZHVsZSB1c2VkIGJ5IGFsbCB0aGUgdmFy
aW91cyBidWlsZCBzeXN0ZW1zLAorICAgICAgICB3aGljaCBpcyB3aHkgdGhlcmUncyBhIGJpdCBt
b3JlIGJ1aWxkIHN5c3RlbSBvdmVyaGVhZCB0aGFuIHVzdWFsLgorCisgICAgICAgICogTW9kdWxl
cy9nZW9sb2NhdGlvbjogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZp
Z2F0b3JHZW9sb2NhdGlvbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6TmF2aWdhdG9yR2VvbG9jYXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdG9yR2VvbG9jYXRpb246On5OYXZpZ2F0b3JHZW9sb2Nh
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6cGFnZURlc3Ry
b3llZCk6CisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6ZnJvbSk6Cisg
ICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6Z2VvbG9jYXRpb24pOgorICAg
ICAgICAqIE1vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKE5hdmlnYXRvckdlb2xvY2F0aW9uKToKKyAg
ICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmlkbDogQWRk
ZWQuCisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgICogcGFnZS9ET01XaW5kb3cuaDoKKyAgICAgICAgKERPTVdpbmRvdyk6CisgICAgICAg
ICogcGFnZS9GcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6cGFnZURlc3Ryb3ll
ZCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6dHJhbnNmZXJDaGlsZEZyYW1lVG9OZXdEb2N1
bWVudCk6CisgICAgICAgICogcGFnZS9GcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyOjpwYWdlRGVzdHJveWVkKToK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBhZ2UvRnJhbWVEZXN0cnVjdGlvbk9ic2Vy
dmVyLmg6CisgICAgICAgIChGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIpOgorICAgICAgICAqIHBh
Z2UvTmF2aWdhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBhZ2UvTmF2
aWdhdG9yLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKE5hdmlnYXRvcik6CisgICAg
ICAgICogcGFnZS9OYXZpZ2F0b3IuaWRsOgorCiAyMDEyLTAyLTIxICBQaGlsaXBwZSBOb3JtYW5k
ICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBXZWJBdWRpbyBidWlsZCBp
cyBicm9rZW4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAxMDgzNjcpCisrKyBT
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYg
QEAKIFNFVChXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJDT1JFX0RJUn0i
CisgICAgIiR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvZ2VvbG9jYXRpb24iCiAgICAgIiR7V0VCQ09S
RV9ESVJ9L2FjY2Vzc2liaWxpdHkiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L2JpbmRpbmdzIgogICAg
ICIke1dFQkNPUkVfRElSfS9iaW5kaW5ncy9nZW5lcmljIgpAQCAtODcsNiArODgsNyBAQCBTRVQo
V2ViQ29yZV9JTkNMVURFX0RJUkVDVE9SSUVTCiApCiAKIFNFVChXZWJDb3JlX0lETF9JTkNMVURF
UworICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24KICAgICBiaW5kaW5ncy9nZW5lcmljCiAgICAgY3Nz
CiAgICAgZG9tCkBAIC0xMDUsNiArMTA3LDggQEAgU0VUKFdlYkNvcmVfSURMX0lOQ0xVREVTCiAp
CiAKIFNFVChXZWJDb3JlX0lETF9GSUxFUworICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdh
dG9yR2VvbG9jYXRpb24uaWRsCisKICAgICBjc3MvQ291bnRlci5pZGwKICAgICBjc3MvQ1NTQ2hh
cnNldFJ1bGUuaWRsCiAgICAgY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGwKQEAgLTQwMCw2ICs0MDQs
OCBAQCBTRVQoV2ViQ29yZV9JRExfRklMRVMKICkKIAogU0VUKFdlYkNvcmVfU09VUkNFUworICAg
IE1vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uY3BwCisKICAgICBhY2Nl
c3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5QVJJQUdyaWQuY3BwCiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRD
ZWxsLmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiAxMDgz
NjcpCisrKyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkp
CkBAIC0yOCw2ICsyOCw3IEBACiAKIFZQQVRIID0gXAogICAgICQoV2ViQ29yZSkgXAorICAgICQo
V2ViQ29yZSkvTW9kdWxlcy9nZW9sb2NhdGlvbiBcCiAgICAgJChXZWJDb3JlKS9iaW5kaW5ncy9n
ZW5lcmljIFwKICAgICAkKFdlYkNvcmUpL2JpbmRpbmdzL2pzIFwKICAgICAkKFdlYkNvcmUpL2Jp
bmRpbmdzL29iamMgXApAQCAtNTMsNiArNTQsNyBAQCBWUEFUSCA9IFwKICMKIAogQklORElOR19J
RExTID0gXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9s
b2NhdGlvbi5pZGwgXAogICAgICQoV2ViQ29yZSkvY3NzL0NTU0NoYXJzZXRSdWxlLmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9jc3MvQ1NTRm9udEZhY2VSdWxlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9j
c3MvQ1NTSW1wb3J0UnVsZS5pZGwgXApJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMucHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQko
cmV2aXNpb24gMTA4MzY3KQorKysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCSh3
b3JraW5nIGNvcHkpCkBAIC04Niw2ICs4Niw3IEBAIFNUWUxFU0hFRVRTX0VNQkVEID0gXAogICAg
ICQkUFdEL2Nzcy9tb2JpbGVUaGVtZVF0LmNzcwogCiBJRExfQklORElOR1MgKz0gXAorICAgICQk
UFdEL01vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaWRsIFwKICAgICAk
JFBXRC9jc3MvQ291bnRlci5pZGwgXAogICAgICQkUFdEL2Nzcy9DU1NDaGFyc2V0UnVsZS5pZGwg
XAogICAgICQkUFdEL2Nzcy9DU1NGb250RmFjZVJ1bGUuaWRsIFwKQEAgLTY4Miw2ICs2ODMsNyBA
QCBlbHNlOiBnZW5lcmF0b3IgPSBKUwogZ2VuZXJhdGVCaW5kaW5ncy5jb21tYW5kcyA9IHBlcmwg
LUkkJFBXRC9iaW5kaW5ncy9zY3JpcHRzICQkZ2VuZXJhdGVCaW5kaW5ncy5zY3JpcHQgXAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC0tZGVmaW5lcyBcIiQke0ZFQVRVUkVfREVGSU5FU19K
QVZBU0NSSVBUfVwiIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLWdlbmVyYXRvciAk
JGdlbmVyYXRvciBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS1pbmNsdWRlICQkUFdE
L01vZHVsZXMvZ2VvbG9jYXRpb24gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0taW5j
bHVkZSAkJFBXRC9kb20gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0taW5jbHVkZSAk
JFBXRC9maWxlYXBpIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLWluY2x1ZGUgJCRQ
V0QvaHRtbCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkocmV2aXNpb24gMTA4MzY3KQorKysg
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHdvcmtpbmcgY29weSkKQEAgLTExLDYgKzEx
LDcgQEAgd2ViY29yZV9jcHBmbGFncyArPSBcCiAJLUkkKHNyY2RpcikvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvaW5jbHVkZSBcCiAJLUkkKHNyY2RpcikvU291cmNlL1RoaXJkUGFydHkvQU5HTEUv
aW5jbHVkZS9HTFNMQU5HIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZSBcCisJLUkkKHNy
Y2RpcikvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbiBcCiAJLUkkKHNyY2Rpcikv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eSBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVy
aWMgXApAQCAtNzU4LDYgKzc1OSw3IEBAIERlcml2ZWRTb3VyY2VzL0FOR0xFL2dsc2xhbmdfdGFi
LmNwcDogU28KIERlcml2ZWRTb3VyY2VzL0FOR0xFL2dsc2xhbmdfdGFiLmg6IERlcml2ZWRTb3Vy
Y2VzL0FOR0xFL2dsc2xhbmdfdGFiLmNwcAogCiBJRExfUEFUSCA6PSBcCisgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL2dlb2xvY2F0aW9uIFwKICAgICAkKFdlYkNvcmUpL2JpbmRpbmdzL2pzIFwKICAg
ICAkKFdlYkNvcmUpL2NzcyBcCiAgICAgJChXZWJDb3JlKS9kb20gXApJbmRleDogU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCShyZXZpc2lvbiAxMDgzNjcpCisrKyBTb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC02NTAsNiArNjUwLDcgQEAgd2Vi
Y29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL1hQYXRoR3Jh
bW1hci5oCiAKIGRvbV9iaW5kaW5nX2lkbHMgKz0gXAorCSQoV2ViQ29yZSkvTW9kdWxlcy9nZW9s
b2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5pZGwgXAogCSQoV2ViQ29yZSkvY3NzL0NTU0No
YXJzZXRSdWxlLmlkbCBcCiAJJChXZWJDb3JlKS9jc3MvQ1NTRm9udEZhY2VSdWxlLmlkbCBcCiAJ
JChXZWJDb3JlKS9jc3MvQ1NTSW1wb3J0UnVsZS5pZGwgXApAQCAtOTUxLDYgKzk1Miw4IEBAIGRv
bV9iaW5kaW5nX2lkbHMgKz0gXAogCSQoV2ViQ29yZSkveG1sL1hTTFRQcm9jZXNzb3IuaWRsCiAK
IHdlYmNvcmVfc291cmNlcyArPSBcCisJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlv
bi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2Vv
bG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaCBcCiAJU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsLmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsLmggXAogCVNvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNwcCBcCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9UYXJnZXQucHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1Rhcmdl
dC5wcmkJKHJldmlzaW9uIDEwODM2NykKKysrIFNvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkJKHdv
cmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDggQEAgaW5jbHVkZV93ZWJpbnNwZWN0b3IgewogfQog
CiBTT1VSQ0VTICs9IFwKKyAgICBNb2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0
aW9uLmNwcCBcCisgICAgXAogICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUltYWdlTWFw
TGluay5jcHAgXAogICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbHMu
Y3BwIFwKICAgICBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdC5jcHAgXApJbmRl
eDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4JKHJldmlzaW9uIDEwODM2NykKKysrIFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluCSh3b3JraW5nIGNvcHkpCkBAIC02NzIsNiArNjcyLDcgQEAgX19aTjdX
ZWJDb3JlMjRGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXJEMgogX19aTjdXZWJDb3JlMjRGcmFtZURl
c3RydWN0aW9uT2JzZXJ2ZXJDMkVQTlNfNUZyYW1lRQogX19aTjdXZWJDb3JlMjRGcmFtZURlc3Ry
dWN0aW9uT2JzZXJ2ZXIxMm9ic2VydmVGcmFtZUVQTlNfNUZyYW1lRQogX19aTjdXZWJDb3JlMjRG
cmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIxNGZyYW1lRGVzdHJveWVkRXYKK19fWk43V2ViQ29yZTI0
RnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyMTR3aWxsRGV0YWNoUGFnZUV2CiBfX1pON1dlYkNvcmUy
NGtleUlkZW50aWZpZXJGb3JLZXlFdmVudEVQN05TRXZlbnQKIF9fWk43V2ViQ29yZTI0bm90aWZ5
SGlzdG9yeUl0ZW1DaGFuZ2VkRQogX19aTjdXZWJDb3JlMjVIaXN0b3J5UHJvcGVydHlMaXN0V3Jp
dGVyMTFyZWxlYXNlRGF0YUV2CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCShyZXZpc2lvbiAxMDgzNjcp
CisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTcyMCw2
ICs3MjAsNyBAQAogICAgICAgICAgICAgJ01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkLmlkbCcsCiAg
ICAgICAgICAgICAnTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWRMaXN0LmlkbCcsCiAgICAgICAgICAg
ICAnTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQuaWRsJywKKyAgICAgICAgICAgICdN
b2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmlkbCcsCiAgICAgICAgICAg
ICAnTW9kdWxlcy9pbmRleGVkZGIvRE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmlkbCcsCiAgICAg
ICAgICAgICAnTW9kdWxlcy9pbnRlbnRzL0RPTVdpbmRvd0ludGVudHMuaWRsJywKICAgICAgICAg
ICAgICdNb2R1bGVzL2ludGVudHMvSW50ZW50LmlkbCcsCkBAIC0xMjc3LDYgKzEyNzgsOCBAQAog
ICAgICAgICAgICAgJ01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkTGlzdC5oJywKICAgICAgICAgICAg
ICdNb2R1bGVzL2dhbWVwYWQvTmF2aWdhdG9yR2FtZXBhZC5jcHAnLAogICAgICAgICAgICAgJ01v
ZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0b3JHYW1lcGFkLmgnLAorICAgICAgICAgICAgJ01vZHVsZXMv
Z2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uY3BwJywKKyAgICAgICAgICAgICdNb2R1
bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmgnLAogICAgICAgICAgICAgJ01v
ZHVsZXMvaW5kZXhlZGRiL0RPTVdpbmRvd0luZGV4ZWREYXRhYmFzZS5jcHAnLAogICAgICAgICAg
ICAgJ01vZHVsZXMvaW5kZXhlZGRiL0RPTVdpbmRvd0luZGV4ZWREYXRhYmFzZS5oJywKICAgICAg
ICAgICAgICdNb2R1bGVzL2ludGVudHMvSW50ZW50LmNwcCcsCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnByaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnByaQko
cmV2aXNpb24gMTA4MzY3KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkJKHdvcmtpbmcg
Y29weSkKQEAgLTE4LDYgKzE4LDcgQEAgV0VCQ09SRV9HRU5FUkFURURfU09VUkNFU19ESVIgPSAk
JHtST09UXwogCiBJTkNMVURFUEFUSCArPSBcCiAgICAgJCRTT1VSQ0VfRElSIFwKKyAgICAkJFNP
VVJDRV9ESVIvTW9kdWxlcy9nZW9sb2NhdGlvbiBcCiAgICAgJCRTT1VSQ0VfRElSL2FjY2Vzc2li
aWxpdHkgXAogICAgICQkU09VUkNFX0RJUi9iaW5kaW5ncyBcCiAgICAgJCRTT1VSQ0VfRElSL2Jp
bmRpbmdzL2dlbmVyaWMgXApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlv
bi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5jcHAJKHJldmlzaW9uIDAp
CisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0
aW9uLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMiwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RQorICogQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICogTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWQorICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNICisgKiBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk5hdmlnYXRvckdlb2xvY2F0aW9uLmgiCisKKyNp
bmNsdWRlICJHZW9sb2NhdGlvbi5oIgorI2luY2x1ZGUgIk5hdmlnYXRvci5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK05hdmlnYXRvckdlb2xvY2F0aW9uOjpOYXZpZ2F0b3JHZW9sb2NhdGlv
bihGcmFtZSogZnJhbWUpCisgICAgOiBET01XaW5kb3dQcm9wZXJ0eShmcmFtZSkKK3sKK30KKwor
TmF2aWdhdG9yR2VvbG9jYXRpb246On5OYXZpZ2F0b3JHZW9sb2NhdGlvbigpCit7Cit9CisKK3Zv
aWQgTmF2aWdhdG9yR2VvbG9jYXRpb246OndpbGxEZXRhY2hQYWdlKCkKK3sKKyAgICAvLyBGSVhN
RTogV2Ugc2hvdWxkIGlkZWFsbHkgYWxsb3cgZXhpc3RpbmcgR2VvbG9jYXRpb24gYWN0aXZpdGll
cyB0byBjb250aW51ZQorICAgIC8vIHdoZW4gdGhlIEdlb2xvY2F0aW9uJ3MgaWZyYW1lIGlzIHJl
cGFyZW50ZWQuIChBc3N1bWluZyB3ZSBjb250aW51ZSB0bworICAgIC8vIHN1cHBvcnQgcmVwYXJl
bnRpbmcgaWZyYW1lcy4pCisgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD01NTU3NworICAgIC8vIGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTI4NzcKKyAgICBpZiAobV9nZW9sb2NhdGlvbikKKyAgICAgICAgbV9nZW9s
b2NhdGlvbi0+cmVzZXQoKTsKK30KKworTmF2aWdhdG9yR2VvbG9jYXRpb24qIE5hdmlnYXRvckdl
b2xvY2F0aW9uOjpmcm9tKE5hdmlnYXRvciogbmF2aWdhdG9yKQoreworICAgIERFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoIk5hdmlnYXRvckdlb2xvY2F0aW9uIikpOwor
ICAgIE5hdmlnYXRvckdlb2xvY2F0aW9uKiBzdXBwbGVtZW50ID0gc3RhdGljX2Nhc3Q8TmF2aWdh
dG9yR2VvbG9jYXRpb24qPihOYXZpZ2F0b3JTdXBwbGVtZW50Ojpmcm9tKG5hdmlnYXRvciwgbmFt
ZSkpOworICAgIGlmICghc3VwcGxlbWVudCkgeworICAgICAgICBzdXBwbGVtZW50ID0gbmV3IE5h
dmlnYXRvckdlb2xvY2F0aW9uKG5hdmlnYXRvci0+ZnJhbWUoKSk7CisgICAgICAgIHByb3ZpZGVU
byhuYXZpZ2F0b3IsIG5hbWUsIGFkb3B0UHRyKHN1cHBsZW1lbnQpKTsKKyAgICB9CisgICAgcmV0
dXJuIHN1cHBsZW1lbnQ7Cit9CisKK0dlb2xvY2F0aW9uKiBOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6
Z2VvbG9jYXRpb24oTmF2aWdhdG9yKiBuYXZpZ2F0b3IpCit7CisgICAgcmV0dXJuIE5hdmlnYXRv
ckdlb2xvY2F0aW9uOjpmcm9tKG5hdmlnYXRvciktPmdlb2xvY2F0aW9uKCk7Cit9CisKK0dlb2xv
Y2F0aW9uKiBOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6Z2VvbG9jYXRpb24oKSBjb25zdAoreworICAg
IGlmICghbV9nZW9sb2NhdGlvbikKKyAgICAgICAgbV9nZW9sb2NhdGlvbiA9IEdlb2xvY2F0aW9u
OjpjcmVhdGUoZnJhbWUoKSk7CisgICAgcmV0dXJuIG1fZ2VvbG9jYXRpb24uZ2V0KCk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2Vv
bG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmgJKHJldmlzaW9u
IDApCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xv
Y2F0aW9uLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UKKyAqIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAqIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSAorICogREFNQUdFLgorICovCisKKyNp
Zm5kZWYgTmF2aWdhdG9yR2VvbG9jYXRpb25faAorI2RlZmluZSBOYXZpZ2F0b3JHZW9sb2NhdGlv
bl9oCisKKyNpbmNsdWRlICJET01XaW5kb3dQcm9wZXJ0eS5oIgorI2luY2x1ZGUgIk5hdmlnYXRv
clN1cHBsZW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBGcmFtZTsKK2Ns
YXNzIEdlb2xvY2F0aW9uOworY2xhc3MgTmF2aWdhdG9yOworCitjbGFzcyBOYXZpZ2F0b3JHZW9s
b2NhdGlvbiA6IHB1YmxpYyBOYXZpZ2F0b3JTdXBwbGVtZW50LCBwdWJsaWMgRE9NV2luZG93UHJv
cGVydHkgeworcHVibGljOgorICAgIHZpcnR1YWwgfk5hdmlnYXRvckdlb2xvY2F0aW9uKCk7Cisg
ICAgc3RhdGljIE5hdmlnYXRvckdlb2xvY2F0aW9uKiBmcm9tKE5hdmlnYXRvciopOworCisgICAg
c3RhdGljIEdlb2xvY2F0aW9uKiBnZW9sb2NhdGlvbihOYXZpZ2F0b3IqKTsKKyAgICBHZW9sb2Nh
dGlvbiogZ2VvbG9jYXRpb24oKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBOYXZpZ2F0b3JHZW9s
b2NhdGlvbihGcmFtZSopOworCisgICAgdmlydHVhbCB2b2lkIHdpbGxEZXRhY2hQYWdlKCkgT1ZF
UlJJREU7CisKKyAgICBtdXRhYmxlIFJlZlB0cjxHZW9sb2NhdGlvbj4gbV9nZW9sb2NhdGlvbjsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIE5hdmlnYXRvckdlb2xv
Y2F0aW9uX2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdh
dG9yR2VvbG9jYXRpb24uaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Z2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaWRsCShyZXZpc2lvbiAwKQorKysgU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5pZGwJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICog
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAq
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAq
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworbW9kdWxlIHdpbmRvdyB7CisKKyAgICBp
bnRlcmZhY2UgWworICAgICAgICBDb25kaXRpb25hbD1HRU9MT0NBVElPTiwKKyAgICAgICAgU3Vw
cGxlbWVudGFsPU5hdmlnYXRvcgorICAgIF0gTmF2aWdhdG9yR2VvbG9jYXRpb24geworICAgICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIEdlb2xvY2F0aW9u
IGdlb2xvY2F0aW9uOworICAgIH07CisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwL1dlYkNvcmUuZ3lwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
L1dlYkNvcmUuZ3lwCShyZXZpc2lvbiAxMDgzNjcpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cC9XZWJDb3JlLmd5cAkod29ya2luZyBjb3B5KQpAQCAtNTIsNiArNTIsNyBAQAogICAgICAg
Jy4uLycsCiAgICAgICAnLi4vLi4nLAogICAgICAgJy4uL01vZHVsZXMvZ2FtZXBhZCcsCisgICAg
ICAnLi4vTW9kdWxlcy9nZW9sb2NhdGlvbicsCiAgICAgICAnLi4vTW9kdWxlcy9pbnRlbnRzJywK
ICAgICAgICcuLi9Nb2R1bGVzL2luZGV4ZWRkYicsCiAgICAgICAnLi4vYWNjZXNzaWJpbGl0eScs
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvago9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagko
cmV2aXNpb24gMTA4MzY3KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTI0MDUxLDYgKzI0MDUxLDIyIEBACiAJCQk8L0Zp
bGU+CiAJCTwvRmlsdGVyPgogCQk8RmlsdGVyCisJCQlOYW1lPSJNb2R1bGVzIgorCQkJPgorCQkJ
PEZpbHRlcgorCQkJCU5hbWU9Imdlb2xvY2F0aW9uIgorCQkJCT4KKwkJCQk8RmlsZQorCQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcZ2VvbG9jYXRpb25cTmF2aWdhdG9yR2VvbG9jYXRpb24u
Y3BwIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0i
Li5cTW9kdWxlc1xnZW9sb2NhdGlvblxOYXZpZ2F0b3JHZW9sb2NhdGlvbi5oIgorCQkJCQk+CisJ
CQkJPC9GaWxlPgorCQkJPC9GaWx0ZXI+CisJCTwvRmlsdGVyPgorCQk8RmlsdGVyCiAJCQlOYW1l
PSJhY2Nlc3NpYmlsaXR5IgogCQkJPgogCQkJPEZpbGUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmVDb21tb24udnNwcm9wcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlQ29tbW9uLnZzcHJvcHMJKHJldmlzaW9uIDEw
ODM2NykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmVDb21tb24udnNw
cm9wcwkod29ya2luZyBjb3B5KQpAQCAtNyw3ICs3LDcgQEAKIAk+CiAJPFRvb2wKIAkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKLQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iJnF1b3Q7
JChQcm9qZWN0RGlyKS4uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxhY2Nlc3NpYmlsaXR5
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxhY2Nlc3NpYmlsaXR5XHdpbiZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpLi5cYnJpZGdlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxicmlk
Z2VcYyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYnJpZGdlXGpzYyZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5cY3NzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxlZGl0aW5nJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxmaWxlYXBpJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cikuLlxyZW5kZXJpbmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHJlbmRlcmluZ1xtYXRo
bWwmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHJlbmRlcmluZ1xzdHlsZSZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpLi5ccmVuZGVyaW5nXHN2ZyZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
Li5cYmluZGluZ3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJpbmRpbmdzXGdlbmVyaWMm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJpbmRpbmdzXGpzJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxiaW5kaW5nc1xqc1xzcGVjaWFsaXphdGlvbiZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5cZG9tJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxkb21cZGVmYXVsdCZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpLi5caGlzdG9yeSZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
Li5caHRtbCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5caHRtbFxjYW52YXMmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXGh0bWxccGFyc2VyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpciku
LlxodG1sXHNoYWRvdyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5caW5zcGVjdG9yJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcikuLlxsb2FkZXImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4u
XGxvYWRlclxhcHBjYWNoZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbG9hZGVyXGFyY2hp
dmUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGxvYWRlclxhcmNoaXZlXGNmJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcikuLlxsb2FkZXJcY2FjaGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXGxvYWRlclxpY29uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxtYXRobWwmcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKS4uXG5vdGlmaWNhdGlvbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKS4uXHBhZ2UmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBhZ2VcYW5pbWF0aW9uJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwYWdlXHNjcm9sbGluZyZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpLi5ccGFnZVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3Jt
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxhbmltYXRpb24mcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXG1vY2smcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXHBsYXRmb3JtXHNxbCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cd2lu
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxuZXR3b3JrJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxuZXR3b3JrXHdpbiZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5ccGxhdGZvcm1cY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3Jt
XGdyYXBoaWNzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1xj
YSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3NcZmlsdGVycyZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3NcZmlsdGVyc1xhcm0m
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzXG9wZW50eXBlJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1x0cmFuc2Zvcm1zJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVx0ZXh0JnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxwbGF0Zm9ybVx0ZXh0XHRyYW5zY29kZXImcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5c
eG1sJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlx4bWxccGFyc2VyJnF1b3Q7OyZxdW90OyQo
Q29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcV2ViQ29yZVxEZXJpdmVkU291cmNlcyZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpLi5ccGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5c
cGx1Z2luc1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2Z1xhbmltYXRpb24mcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2Z1xncmFwaGljcyZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5cc3ZnXHByb3BlcnRpZXMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2Z1xn
cmFwaGljc1xmaWx0ZXJzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxzdmcmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXHRlc3RpbmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHdt
bCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cc3RvcmFnZSZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5cd2Vic29ja2V0cyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cd29ya2VycyZx
dW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcaW5jbHVkZSZxdW90OzsmcXVvdDsk
KENvbmZpZ3VyYXRpb25CdWlsZERpcilcaW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZxdW90OyQoQ29u
ZmlndXJhdGlvbkJ1aWxkRGlyKVxpbmNsdWRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQo
Q29uZmlndXJhdGlvbkJ1aWxkRGlyKVxpbmNsdWRlXHByaXZhdGVcSmF2YVNjcmlwdENvcmUmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXEZvcndhcmRpbmdIZWFkZXJzJnF1b3Q7OyZxdW90OyQo
V2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVz
RGlyKVxpbmNsdWRlXHByaXZhdGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGlu
Y2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmll
c0RpcilcaW5jbHVkZVxwdGhyZWFkcyZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0Rpcilc
aW5jbHVkZVxzcWxpdGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVc
SmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVc
emxpYiZxdW90OyIKKwkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iJnF1b3Q7JChQcm9q
ZWN0RGlyKS4uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxNb2R1bGVzXGdlb2xvY2F0aW9u
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxhY2Nlc3NpYmlsaXR5JnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcikuLlxhY2Nlc3NpYmlsaXR5XHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
Li5cYnJpZGdlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxicmlkZ2VcYyZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpLi5cYnJpZGdlXGpzYyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5c
Y3NzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxlZGl0aW5nJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxmaWxlYXBpJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxyZW5kZXJpbmcm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHJlbmRlcmluZ1xtYXRobWwmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKS4uXHJlbmRlcmluZ1xzdHlsZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
Li5ccmVuZGVyaW5nXHN2ZyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYmluZGluZ3MmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJpbmRpbmdzXGdlbmVyaWMmcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKS4uXGJpbmRpbmdzXGpzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxiaW5k
aW5nc1xqc1xzcGVjaWFsaXphdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cZG9tJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxkb21cZGVmYXVsdCZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5caGlzdG9yeSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5caHRtbCZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpLi5caHRtbFxjYW52YXMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXGh0bWxccGFyc2VyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxodG1sXHNoYWRvdyZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpLi5caW5zcGVjdG9yJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcikuLlxsb2FkZXImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGxvYWRlclxhcHBjYWNo
ZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbG9hZGVyXGFyY2hpdmUmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKS4uXGxvYWRlclxhcmNoaXZlXGNmJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cikuLlxsb2FkZXJcY2FjaGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGxvYWRlclxpY29u
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxtYXRobWwmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKS4uXG5vdGlmaWNhdGlvbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBhZ2UmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBhZ2VcYW5pbWF0aW9uJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxwYWdlXHNjcm9sbGluZyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGFn
ZVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcikuLlxwbGF0Zm9ybVxhbmltYXRpb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXHBsYXRmb3JtXG1vY2smcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXHNx
bCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cd2luJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcikuLlxwbGF0Zm9ybVxuZXR3b3JrJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpciku
LlxwbGF0Zm9ybVxuZXR3b3JrXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZv
cm1cY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1xjYSZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3NcZmlsdGVycyZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3NcZmlsdGVyc1xhcm0mcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzXG9wZW50eXBlJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1x0cmFuc2Zvcm1zJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxwbGF0Zm9ybVx0ZXh0JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0
Zm9ybVx0ZXh0XHRyYW5zY29kZXImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3Jt
XGdyYXBoaWNzXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ceG1sJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcikuLlx4bWxccGFyc2VyJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1
aWxkRGlyKVxvYmpcV2ViQ29yZVxEZXJpdmVkU291cmNlcyZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpLi5ccGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGx1Z2luc1x3aW4mcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2Z1xhbmltYXRpb24mcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKS4uXHN2Z1xncmFwaGljcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cc3ZnXHBy
b3BlcnRpZXMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2Z1xncmFwaGljc1xmaWx0ZXJz
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxzdmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXHRlc3RpbmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHdtbCZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5cc3RvcmFnZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cd2Vic29j
a2V0cyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cd29ya2VycyZxdW90OzsmcXVvdDskKENv
bmZpZ3VyYXRpb25CdWlsZERpcilcaW5jbHVkZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25C
dWlsZERpcilcaW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxk
RGlyKVxpbmNsdWRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1
aWxkRGlyKVxpbmNsdWRlXHByaXZhdGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKS4uXEZvcndhcmRpbmdIZWFkZXJzJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVz
RGlyKVxpbmNsdWRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXHBy
aXZhdGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVccHJpdmF0ZVxK
YXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZVxw
dGhyZWFkcyZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZVxzcWxpdGUm
cXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVcSmF2YVNjcmlwdENvcmUm
cXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVcemxpYiZxdW90OyIKIAkJ
UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Il9fV0lOMzJfXztESVNBQkxFXzNEX1JFTkRFUklORztX
RUJDT1JFX0NPTlRFWFRfTUVOVVMiCiAJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIyIgogCQlQcmVj
b21waWxlZEhlYWRlclRocm91Z2g9IldlYkNvcmVQcmVmaXguaCIKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDEw
ODM2NykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkod29ya2luZyBjb3B5KQpAQCAtMzMyMyw2ICszMzIzLDggQEAKIAkJOTcwNTk5N0ExMDdEOTc1
MjAwQTUwQTdDIC8qIFBvbGljeUNoZWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDk3MDU5OTc2MTA3RDk3NTIwMEE1MEE3QyAvKiBQb2xpY3lDaGVj
a2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
OTcwQjcyOEExNDRGRkFDNjAwRjAwQTM3IC8qIEV2ZW50SW50ZXJmYWNlcy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcwQjcyODkxNDRGRkFDNjAwRjAw
QTM3IC8qIEV2ZW50SW50ZXJmYWNlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTk3MEI3MkE2MTQ1MDA4RUIwMEYwMEEzNyAvKiBFdmVudEhlYWRl
cnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MEI3
MkE1MTQ1MDA4RUIwMEYwMEEzNyAvKiBFdmVudEhlYWRlcnMuaCAqLzsgfTsKKwkJOTcxMTQ2MDMx
NEVGMDA5QTAwNjc0RkQ5IC8qIE5hdmlnYXRvckdlb2xvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MTE0NjAwMTRFRjAwOUEwMDY3NEZE
OSAvKiBOYXZpZ2F0b3JHZW9sb2NhdGlvbi5jcHAgKi87IH07CisJCTk3MTE0NjA0MTRFRjAwOUEw
MDY3NEZEOSAvKiBOYXZpZ2F0b3JHZW9sb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcxMTQ2MDExNEVGMDA5QTAwNjc0RkQ5IC8qIE5hdmln
YXRvckdlb2xvY2F0aW9uLmggKi87IH07CiAJCTk3MjA1QUFGMTIzOTI4Q0EwMEIxNzM4MCAvKiBG
VFBEaXJlY3RvcnlEb2N1bWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5NzIwNUFBRDEyMzkyOENBMDBCMTczODAgLyogRlRQRGlyZWN0b3J5RG9j
dW1lbnQuY3BwICovOyB9OwogCQk5NzIwNUFCMDEyMzkyOENBMDBCMTczODAgLyogRlRQRGlyZWN0
b3J5RG9jdW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk3MjA1QUFFMTIzOTI4Q0EwMEIxNzM4MCAvKiBGVFBEaXJlY3RvcnlEb2N1bWVudC5oICov
OyB9OwogCQk5NzIwNUFCNTEyMzkyOTEwMDBCMTczODAgLyogSW1hZ2VEb2N1bWVudC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzIwNUFCMTEyMzky
OTEwMDBCMTczODAgLyogSW1hZ2VEb2N1bWVudC5jcHAgKi87IH07CkBAIC0xMDE4Miw2ICsxMDE4
NCw5IEBACiAJCTk3MDU5OTc2MTA3RDk3NTIwMEE1MEE3QyAvKiBQb2xpY3lDaGVja2VyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBvbGljeUNoZWNrZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTcwQjcyODkxNDRGRkFDNjAwRjAwQTM3IC8qIEV2ZW50SW50
ZXJmYWNlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFdmVudEludGVyZmFj
ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTcwQjcyQTUxNDUwMDhFQjAwRjAw
QTM3IC8qIEV2ZW50SGVhZGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBF
dmVudEhlYWRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTcxMTQ2MDAxNEVG
MDA5QTAwNjc0RkQ5IC8qIE5hdmlnYXRvckdlb2xvY2F0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE5hdmlnYXRvckdlb2xvY2F0aW9uLmNwcDsgcGF0aCA9IE1v
ZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5NzExNDYwMTE0RUYwMDlBMDA2NzRGRDkgLyogTmF2aWdhdG9yR2Vv
bG9jYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTmF2aWdhdG9yR2Vv
bG9jYXRpb24uaDsgcGF0aCA9IE1vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRp
b24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTcxMTQ2MDIxNEVGMDA5QTAwNjc0
RkQ5IC8qIE5hdmlnYXRvckdlb2xvY2F0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBO
YXZpZ2F0b3JHZW9sb2NhdGlvbi5pZGw7IHBhdGggPSBNb2R1bGVzL2dlb2xvY2F0aW9uL05hdmln
YXRvckdlb2xvY2F0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTcyMDVB
QUQxMjM5MjhDQTAwQjE3MzgwIC8qIEZUUERpcmVjdG9yeURvY3VtZW50LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZUUERpcmVjdG9yeURvY3VtZW50LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTcyMDVBQUUxMjM5MjhDQTAwQjE3MzgwIC8qIEZU
UERpcmVjdG9yeURvY3VtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZU
UERpcmVjdG9yeURvY3VtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3MjA1
QUIxMTIzOTI5MTAwMEIxNzM4MCAvKiBJbWFnZURvY3VtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEltYWdlRG9jdW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTM0NTMsNiArMTM0NTgsNyBAQAogCQkJCUVERUM5ODAyMEFFRDdFMTcw
MDU5MTM3RiAvKiBXZWJDb3JlUHJlZml4LmggKi8sCiAJCQkJOTMwNzA2MTMwOUUwQ0E4MjAwQjE3
RkU0IC8qIERlcml2ZWRTb3VyY2VzLm1ha2UgKi8sCiAJCQkJOTNGMTlCMTkwODI0NUU1OTAwMUU5
QUJDIC8qIEluZm8ucGxpc3QgKi8sCisJCQkJOTcxMTQ1RkUxNEVGMDA2RTAwNjc0RkQ5IC8qIE1v
ZHVsZXMgKi8sCiAJCQkJMjlBODEyMDQwRkJCOUI0MTAwNTEwMjkzIC8qIGFjY2Vzc2liaWxpdHkg
Ki8sCiAJCQkJQkMxQTM3OTAwOTdDNkY5NzAwMTlGM0Q4IC8qIGJpbmRpbmdzICovLAogCQkJCTFB
NTY5Q0M0MEQ3RTJCNjAwMDdDMzk4MyAvKiBicmlkZ2UgKi8sCkBAIC0xNzA3MSw2ICsxNzA3Nywy
NCBAQAogCQkJdGFiV2lkdGggPSA0OwogCQkJdXNlc1RhYnMgPSAwOwogCQl9OworCQk5NzExNDVG
RTE0RUYwMDZFMDA2NzRGRDkgLyogTW9kdWxlcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOwor
CQkJY2hpbGRyZW4gPSAoCisJCQkJOTcxMTQ1RkYxNEVGMDA3OTAwNjc0RkQ5IC8qIGdlb2xvY2F0
aW9uICovLAorCQkJKTsKKwkJCW5hbWUgPSBNb2R1bGVzOworCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKKwkJfTsKKwkJOTcxMTQ1RkYxNEVGMDA3OTAwNjc0RkQ5IC8qIGdlb2xvY2F0aW9uICov
ID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk5NzExNDYwMDE0
RUYwMDlBMDA2NzRGRDkgLyogTmF2aWdhdG9yR2VvbG9jYXRpb24uY3BwICovLAorCQkJCTk3MTE0
NjAxMTRFRjAwOUEwMDY3NEZEOSAvKiBOYXZpZ2F0b3JHZW9sb2NhdGlvbi5oICovLAorCQkJCTk3
MTE0NjAyMTRFRjAwOUEwMDY3NEZEOSAvKiBOYXZpZ2F0b3JHZW9sb2NhdGlvbi5pZGwgKi8sCisJ
CQkpOworCQkJbmFtZSA9IGdlb2xvY2F0aW9uOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
KwkJfTsKIAkJOTc2RDZDNTcxMjJCOEExODAwMUZEMUY3IC8qIGZpbGVhcGkgKi8gPSB7CiAJCQlp
c2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMjMyNzQsNiArMjMyOTgsNyBAQAog
CQkJCTk3OUY0M0Q0MTA3NUU0NEEwMDAwRjgzQiAvKiBOYXZpZ2F0aW9uU2NoZWR1bGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBOUM2RTVBNjBENzQ2NDU4MDA2NDQyRTkgLyogTmF2aWdhdG9yLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlFMTI3MTlDNzBFRUVDMTY4MDBGNjEyMTMgLyogTmF2aWdhdG9y
QmFzZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTcxMTQ2MDQxNEVGMDA5QTAwNjc0RkQ5IC8qIE5h
dmlnYXRvckdlb2xvY2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5N0NDM0FFMzE0RThFNEEy
MDA4OTQ5ODggLyogTmF2aWdhdG9yU3VwcGxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOEEz
MDlDOUYxMjM5NTBCRTAwQ0I5MjA0IC8qIE5lc3RpbmdMZXZlbEluY3JlbWVudGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk2NTZEMzc0MzBBREJBNURFMDBBNDU1NEQgLyogTmV0c2NhcGVQbHVnSW5T
dHJlYW1Mb2FkZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMjY0MjcsNiArMjY0NTIsNyBAQAogCQkJ
CTk3OUY0M0QzMTA3NUU0NEEwMDAwRjgzQiAvKiBOYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUE5QzZFNUE1MEQ3NDY0NTgwMDY0NDJFOSAvKiBOYXZpZ2F0b3IuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJRTEyNzE5Q0EwRUVFQzIxMzAwRjYxMjEzIC8qIE5hdmlnYXRv
ckJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTcxMTQ2MDMxNEVGMDA5QTAwNjc0RkQ5IC8q
IE5hdmlnYXRvckdlb2xvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3Q0MzQUUyMTRF
OEU0QTIwMDg5NDk4OCAvKiBOYXZpZ2F0b3JTdXBwbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTVEODc0RjEzMEQxNjFEMzIwMDc5NkMzQiAvKiBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1OUMyN0YwNTEzOEQyOEMxMDA3OUI3RTIgLyogTmV0
d29ya1Jlc291cmNlc0RhdGEuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0J
KHJldmlzaW9uIDEwODM2NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckdPYmplY3QucG0JKHdvcmtpbmcgY29weSkKQEAgLTQxOCw3ICs0MTgsNyBAQCBz
dWIgR2VuZXJhdGVQcm9wZXJ0eSB7CiAgICAgICAgIHB1c2goQHR4dEdldFByb3BzLCAiICAgICAg
ICBnX3ZhbHVlX3Rha2Vfc3RyaW5nKHZhbHVlLCBjb252ZXJ0VG9VVEY4U3RyaW5nKCR7Z2V0dGVy
RnVuY3Rpb25OYW1lfSgiIC4gam9pbigiLCAiLCBAZ2V0dGVyQXJndW1lbnRzKSAuICIpKSk7XG4i
KTsKICAgICAgICAgJGRvbmUgPSAxOwogICAgIH0gZWxzaWYgKCRndHlwZSBlcSAib2JqZWN0Iikg
ewotICAgICAgICBwdXNoKEB0eHRHZXRQcm9wcywgIiAgICAgICAgUmVmUHRyPFdlYkNvcmU6OiR7
cHJvcFR5cGV9PiBwdHIgPSBjb3JlU2VsZi0+JHtnZXRQcm9wTmFtZUZ1bmN0aW9ufSgiIC4gKEB7
JGF0dHJpYnV0ZS0+Z2V0dGVyRXhjZXB0aW9uc30gPyAiZWMiIDogIiIpIC4gIik7XG4iKTsKKyAg
ICAgICAgcHVzaChAdHh0R2V0UHJvcHMsICIgICAgICAgIFJlZlB0cjxXZWJDb3JlOjoke3Byb3BU
eXBlfT4gcHRyID0gJHtnZXR0ZXJGdW5jdGlvbk5hbWV9KCIgLiBqb2luKCIsICIsIEBnZXR0ZXJB
cmd1bWVudHMpIC4gIik7XG4iKTsKICAgICAgICAgcHVzaChAdHh0R2V0UHJvcHMsICIgICAgICAg
IGdfdmFsdWVfc2V0X29iamVjdCh2YWx1ZSwgV2ViS2l0OjpraXQocHRyLmdldCgpKSk7XG4iKTsK
ICAgICAgICAgJGRvbmUgPSAxOwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9UZXN0U3VwcGxlbWVudGFsLmlkbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdFN1cHBsZW1lbnRhbC5pZGwJKHJldmlz
aW9uIDEwODM2NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0
U3VwcGxlbWVudGFsLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQCBtb2R1bGUg
dGVzdCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgc3VwcGxlbWVudGFs
U3RyMTsKICAgICAgICAgYXR0cmlidXRlIERPTVN0cmluZyBzdXBwbGVtZW50YWxTdHIyOwogICAg
ICAgICBhdHRyaWJ1dGUgW0N1c3RvbUdldHRlciwgQ3VzdG9tU2V0dGVyXSBET01TdHJpbmcgc3Vw
cGxlbWVudGFsU3RyMzsKKyAgICAgICAgYXR0cmlidXRlIE5vZGUgc3VwcGxlbWVudGFsTm9kZTsK
IAogICAgICAgICB2b2lkIHN1cHBsZW1lbnRhbE1ldGhvZDEoKTsKICAgICAgICAgW0NhbGxXaXRo
PVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIFRlc3RPYmogc3VwcGxlbWVudGFsTWV0aG9kMihpbiBE
T01TdHJpbmcgc3RyQXJnLCBpbiBUZXN0T2JqIG9iakFyZykgcmFpc2VzKERPTUV4Y2VwdGlvbik7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRl
c3RJbnRlcmZhY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdEludGVyZmFjZS5jcHAJKHJldmlzaW9uIDEwODM2NykK
KysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdElu
dGVyZmFjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1LDggKzI1LDEwIEBACiAjaW5jbHVkZSAi
V2ViRE9NVGVzdEludGVyZmFjZS5oIgogCiAjaW5jbHVkZSAiS1VSTC5oIgorI2luY2x1ZGUgIk5v
ZGUuaCIKICNpbmNsdWRlICJUZXN0SW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiVGVzdFN1cHBsZW1l
bnRhbC5oIgorI2luY2x1ZGUgIldlYkRPTU5vZGUuaCIKICNpbmNsdWRlICJXZWJET01TdHJpbmcu
aCIKICNpbmNsdWRlICJXZWJFeGNlcHRpb25IYW5kbGVyLmgiCiAjaW5jbHVkZSAid3RmL3RleHQv
QXRvbWljU3RyaW5nLmgiCkBAIC0xMDYsNiArMTA4LDI0IEBAIHZvaWQgV2ViRE9NVGVzdEludGVy
ZmFjZTo6c2V0U3VwcGxlbWVudGEKIH0KIAogI2VuZGlmCisjaWYgRU5BQkxFKENvbmRpdGlvbjEx
KSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCitXZWJET01Ob2RlIFdlYkRPTVRlc3RJbnRlcmZhY2U6
OnN1cHBsZW1lbnRhbE5vZGUoKSBjb25zdAoreworICAgIGlmICghaW1wbCgpKQorICAgICAgICBy
ZXR1cm4gV2ViRE9NTm9kZSgpOworCisgICAgcmV0dXJuIHRvV2ViS2l0KFdURjo6Z2V0UHRyKFRl
c3RTdXBwbGVtZW50YWw6OnN1cHBsZW1lbnRhbE5vZGUoaW1wbCgpKSkpOworfQorCit2b2lkIFdl
YkRPTVRlc3RJbnRlcmZhY2U6OnNldFN1cHBsZW1lbnRhbE5vZGUoY29uc3QgV2ViRE9NTm9kZSYg
bmV3U3VwcGxlbWVudGFsTm9kZSkKK3sKKyAgICBpZiAoIWltcGwoKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgVGVzdFN1cHBsZW1lbnRhbDo6c2V0U3VwcGxlbWVudGFsTm9kZShpbXBsKCksIHRv
V2ViQ29yZShuZXdTdXBwbGVtZW50YWxOb2RlKSk7Cit9CisKKyNlbmRpZgogCiAjaWYgRU5BQkxF
KENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCiB2b2lkIFdlYkRPTVRlc3RJbnRl
cmZhY2U6OnN1cHBsZW1lbnRhbE1ldGhvZDEoKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0SW50ZXJmYWNlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0SW50ZXJm
YWNlLmgJKHJldmlzaW9uIDEwODM2NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9DUFAvV2ViRE9NVGVzdEludGVyZmFjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2
ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFRlc3RJbnRlcmZhY2U7CiB9Owog
CitjbGFzcyBXZWJET01Ob2RlOwogCiBjbGFzcyBXZWJET01UZXN0SW50ZXJmYWNlIDogcHVibGlj
IFdlYkRPTU9iamVjdCB7CiBwdWJsaWM6CkBAIC01OCw2ICs1OSwxMCBAQCBwdWJsaWM6CiAgICAg
V2ViRE9NU3RyaW5nIHN1cHBsZW1lbnRhbFN0cjIoKSBjb25zdDsKICAgICB2b2lkIHNldFN1cHBs
ZW1lbnRhbFN0cjIoY29uc3QgV2ViRE9NU3RyaW5nJik7CiAjZW5kaWYKKyNpZiBFTkFCTEUoQ29u
ZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKKyAgICBXZWJET01Ob2RlIHN1cHBsZW1l
bnRhbE5vZGUoKSBjb25zdDsKKyAgICB2b2lkIHNldFN1cHBsZW1lbnRhbE5vZGUoY29uc3QgV2Vi
RE9NTm9kZSYpOworI2VuZGlmCiAKICAgICB2b2lkIHN1cHBsZW1lbnRhbE1ldGhvZDEoKTsKIApJ
bmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0
RE9NVGVzdEludGVyZmFjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdEludGVyZmFjZS5jcHAJKHJldmlz
aW9uIDEwODM2NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2Jq
ZWN0L1dlYktpdERPTVRlc3RJbnRlcmZhY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCwxMSAr
MjgsMTQgQEAKICNpbmNsdWRlICJET01PYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkV4Y2VwdGlv
bkNvZGUuaCIKICNpbmNsdWRlICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKKyNpbmNsdWRlICJO
b2RlLmgiCiAjaW5jbHVkZSAiVGVzdEludGVyZmFjZS5oIgogI2luY2x1ZGUgIlRlc3RPYmouaCIK
ICNpbmNsdWRlICJUZXN0U3VwcGxlbWVudGFsLmgiCiAjaW5jbHVkZSAiV2ViS2l0RE9NQmluZGlu
Zy5oIgogI2luY2x1ZGUgImdvYmplY3QvQ29udmVydFRvVVRGOFN0cmluZy5oIgorI2luY2x1ZGUg
IndlYmtpdC9XZWJLaXRET01Ob2RlLmgiCisjaW5jbHVkZSAid2Via2l0L1dlYktpdERPTU5vZGVQ
cml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0L1dlYktpdERPTVRlc3RJbnRlcmZhY2UuaCIKICNp
bmNsdWRlICJ3ZWJraXQvV2ViS2l0RE9NVGVzdEludGVyZmFjZVByaXZhdGUuaCIKICNpbmNsdWRl
ICJ3ZWJraXQvV2ViS2l0RE9NVGVzdE9iai5oIgpAQCAtMTM1LDYgKzEzOCwzOCBAQCB3ZWJraXRf
ZG9tX3Rlc3RfaW50ZXJmYWNlX3NldF9zdXBwbGVtZW50CiAjZW5kaWYgLyogRU5BQkxFKENvbmRp
dGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpICovCiB9CiAKK1dlYktpdERPTU5vZGUqCit3
ZWJraXRfZG9tX3Rlc3RfaW50ZXJmYWNlX2dldF9zdXBwbGVtZW50YWxfbm9kZShXZWJLaXRET01U
ZXN0SW50ZXJmYWNlKiBzZWxmKQoreworI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxF
KENvbmRpdGlvbjEyKQorICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHNlbGYsIDApOworICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBXZWJDb3JlOjpUZXN0SW50
ZXJmYWNlICogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBQYXNzUmVmUHRyPFdlYkNv
cmU6Ok5vZGU+IGdfcmVzID0gV1RGOjpnZXRQdHIoVGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVu
dGFsTm9kZShpdGVtKSk7CisgICAgV2ViS2l0RE9NTm9kZSogcmVzID0gV2ViS2l0OjpraXQoZ19y
ZXMuZ2V0KCkpOworICAgIHJldHVybiByZXM7CisjZWxzZQorICAgIHJldHVybiBOVUxMOworI2Vu
ZGlmIC8qIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKSAqLworfQor
Cit2b2lkCit3ZWJraXRfZG9tX3Rlc3RfaW50ZXJmYWNlX3NldF9zdXBwbGVtZW50YWxfbm9kZShX
ZWJLaXRET01UZXN0SW50ZXJmYWNlKiBzZWxmLCBXZWJLaXRET01Ob2RlKiB2YWx1ZSkKK3sKKyNp
ZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKKyAgICBnX3JldHVy
bl9pZl9mYWlsKHNlbGYpOworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKKyAgICBXZWJDb3JlOjpUZXN0SW50ZXJmYWNlICogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxm
KTsKKyAgICBnX3JldHVybl9pZl9mYWlsKHZhbHVlKTsKKyAgICBXZWJDb3JlOjpOb2RlICogY29u
dmVydGVkX3ZhbHVlID0gTlVMTDsKKyAgICBpZiAodmFsdWUgIT0gTlVMTCkgeworICAgICAgICBj
b252ZXJ0ZWRfdmFsdWUgPSBXZWJLaXQ6OmNvcmUodmFsdWUpOworICAgICAgICBnX3JldHVybl9p
Zl9mYWlsKGNvbnZlcnRlZF92YWx1ZSk7CisgICAgfQorICAgIFRlc3RTdXBwbGVtZW50YWw6OnNl
dFN1cHBsZW1lbnRhbE5vZGUoaXRlbSwgY29udmVydGVkX3ZhbHVlKTsKKyNlbmRpZiAvKiBFTkFC
TEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikgKi8KK30KKwogCiBHX0RFRklO
RV9UWVBFKFdlYktpdERPTVRlc3RJbnRlcmZhY2UsIHdlYmtpdF9kb21fdGVzdF9pbnRlcmZhY2Us
IFdFQktJVF9UWVBFX0RPTV9PQkpFQ1QpCiAKQEAgLTE1OSw2ICsxOTQsOSBAQCBlbnVtIHsKICNp
ZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKICAgICBQUk9QX1NV
UFBMRU1FTlRBTF9TVFIyLAogI2VuZGlmIC8qIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxF
KENvbmRpdGlvbjEyKSAqLworI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRp
dGlvbjEyKQorICAgIFBST1BfU1VQUExFTUVOVEFMX05PREUsCisjZW5kaWYgLyogRU5BQkxFKENv
bmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpICovCiB9OwogCiAKQEAgLTIxOCw2ICsy
NTYsMTQgQEAgc3RhdGljIHZvaWQgd2Via2l0X2RvbV90ZXN0X2ludGVyZmFjZV9nZQogICAgICAg
ICBicmVhazsKICAgICB9CiAjZW5kaWYgLyogRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUo
Q29uZGl0aW9uMTIpICovCisjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0
aW9uMTIpCisgICAgY2FzZSBQUk9QX1NVUFBMRU1FTlRBTF9OT0RFOgorICAgIHsKKyAgICAgICAg
UmVmUHRyPFdlYkNvcmU6Ok5vZGU+IHB0ciA9IFRlc3RTdXBwbGVtZW50YWw6OnN1cHBsZW1lbnRh
bE5vZGUoY29yZVNlbGYpOworICAgICAgICBnX3ZhbHVlX3NldF9vYmplY3QodmFsdWUsIFdlYktp
dDo6a2l0KHB0ci5nZXQoKSkpOworICAgICAgICBicmVhazsKKyAgICB9CisjZW5kaWYgLyogRU5B
QkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpICovCiAgICAgZGVmYXVsdDoK
ICAgICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcF9p
ZCwgcHNwZWMpOwogICAgICAgICBicmVhazsKQEAgLTI1OCw2ICszMDQsMTUgQEAgc3RhdGljIHZv
aWQgd2Via2l0X2RvbV90ZXN0X2ludGVyZmFjZV9jbAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiwgLyogZGVmYXVsdCAqLwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBX
RUJLSVRfUEFSQU1fUkVBRFdSSVRFKSk7CiAjZW5kaWYgLyogRU5BQkxFKENvbmRpdGlvbjExKSB8
fCBFTkFCTEUoQ29uZGl0aW9uMTIpICovCisjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFC
TEUoQ29uZGl0aW9uMTIpCisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnb2Jq
ZWN0Q2xhc3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9QX1NVUFBM
RU1FTlRBTF9OT0RFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJh
bV9zcGVjX29iamVjdCgic3VwcGxlbWVudGFsLW5vZGUiLCAvKiBuYW1lICovCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXN0X2lu
dGVyZmFjZV9zdXBwbGVtZW50YWwtbm9kZSIsIC8qIHNob3J0IGRlc2NyaXB0aW9uICovCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJy
ZWFkLXdyaXRlICBXZWJLaXRET01Ob2RlKiBUZXN0SW50ZXJmYWNlLnN1cHBsZW1lbnRhbC1ub2Rl
IiwgLyogbG9uZ2VyIC0gY291bGQgZG8gd2l0aCBzb21lIGV4dHJhIGRvYyBzdHVmZiBoZXJlICov
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFdFQktJVF9UWVBFX0RPTV9OT0RFLCAvKiBnb2JqZWN0IHR5cGUgKi8KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0VCS0lUX1BB
UkFNX1JFQURXUklURSkpOworI2VuZGlmIC8qIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxF
KENvbmRpdGlvbjEyKSAqLwogCiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RJbnRlcmZhY2UuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01U
ZXN0SW50ZXJmYWNlLmgJKHJldmlzaW9uIDEwODM2NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RJbnRlcmZhY2UuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTAwLDYgKzEwMCwyNyBAQCB3ZWJraXRfZG9tX3Rlc3RfaW50ZXJmYWNlX2dl
dF9zdXBwbGVtZW50CiBXRUJLSVRfQVBJIHZvaWQKIHdlYmtpdF9kb21fdGVzdF9pbnRlcmZhY2Vf
c2V0X3N1cHBsZW1lbnRhbF9zdHIyKFdlYktpdERPTVRlc3RJbnRlcmZhY2UqIHNlbGYsIGNvbnN0
IGdjaGFyKiB2YWx1ZSk7CiAKKy8qKgorICogd2Via2l0X2RvbV90ZXN0X2ludGVyZmFjZV9nZXRf
c3VwcGxlbWVudGFsX25vZGU6CisgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdEludGVyZmFjZQor
ICoKKyAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKToKKyAqCisqKi8KK1dFQktJVF9BUEkgV2Vi
S2l0RE9NTm9kZSoKK3dlYmtpdF9kb21fdGVzdF9pbnRlcmZhY2VfZ2V0X3N1cHBsZW1lbnRhbF9u
b2RlKFdlYktpdERPTVRlc3RJbnRlcmZhY2UqIHNlbGYpOworCisvKioKKyAqIHdlYmtpdF9kb21f
dGVzdF9pbnRlcmZhY2Vfc2V0X3N1cHBsZW1lbnRhbF9ub2RlOgorICogQHNlbGY6IEEgI1dlYktp
dERPTVRlc3RJbnRlcmZhY2UKKyAqIEB2YWx1ZTogQSAjV2ViS2l0RE9NTm9kZQorICoKKyAqIFJl
dHVybnM6ICh0cmFuc2ZlciBub25lKToKKyAqCisqKi8KK1dFQktJVF9BUEkgdm9pZAord2Via2l0
X2RvbV90ZXN0X2ludGVyZmFjZV9zZXRfc3VwcGxlbWVudGFsX25vZGUoV2ViS2l0RE9NVGVzdElu
dGVyZmFjZSogc2VsZiwgV2ViS2l0RE9NTm9kZSogdmFsdWUpOworCiBHX0VORF9ERUNMUwogCiAj
ZW5kaWYgLyogV2ViS2l0RE9NVGVzdEludGVyZmFjZV9oICovCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJm
YWNlLmNwcAkocmV2aXNpb24gMTA4MzY3KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDEw
ICszNSwxNSBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KIAogI2lmIEVOQUJMRShDb25kaXRp
b24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQorI2luY2x1ZGUgIkpTTm9kZS5oIgogI2luY2x1
ZGUgIktVUkwuaCIKICNpbmNsdWRlIDxydW50aW1lL0pTU3RyaW5nLmg+CiAjZW5kaWYKIAorI2lm
IEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQorI2luY2x1ZGUgIk5v
ZGUuaCIKKyNlbmRpZgorCiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CkBAIC01NywxMSArNjIsMTQgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVz
dEludGVyZgogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQog
ICAgIHsgInN1cHBsZW1lbnRhbFN0cjMiLCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRh
bFN0cjMpLCAoaW50cHRyX3Qpc2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMywgTm9J
bnRyaW5zaWMgfSwKICNlbmRpZgorI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENv
bmRpdGlvbjEyKQorICAgIHsgInN1cHBsZW1lbnRhbE5vZGUiLCBEb250RGVsZXRlLCAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEludGVyZmFj
ZVN1cHBsZW1lbnRhbE5vZGUpLCAoaW50cHRyX3Qpc2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVu
dGFsTm9kZSwgTm9JbnRyaW5zaWMgfSwKKyNlbmRpZgogICAgIHsgImNvbnN0cnVjdG9yIiwgRG9u
dEVudW0gfCBSZWFkT25seSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0
VmFsdWVGdW5jPihqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkwLCBOb0lu
dHJpbnNpYyB9LAogICAgIHsgMCwgMCwgMCwgMCwgTm9JbnRyaW5zaWMgfQogfTsKIAotc3RhdGlj
IGNvbnN0IEhhc2hUYWJsZSBKU1Rlc3RJbnRlcmZhY2VUYWJsZSA9IHsgOSwgNywgSlNUZXN0SW50
ZXJmYWNlVGFibGVWYWx1ZXMsIDAgfTsKK3N0YXRpYyBjb25zdCBIYXNoVGFibGUgSlNUZXN0SW50
ZXJmYWNlVGFibGUgPSB7IDE2LCAxNSwgSlNUZXN0SW50ZXJmYWNlVGFibGVWYWx1ZXMsIDAgfTsK
IC8qIEhhc2ggdGFibGUgZm9yIGNvbnN0cnVjdG9yICovCiAKIHN0YXRpYyBjb25zdCBIYXNoVGFi
bGVWYWx1ZSBKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvclRhYmxlVmFsdWVzW10gPQpAQCAtMjU3
LDYgKzI2NSwxOCBAQCBKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjMoCiAK
ICNlbmRpZgogCisjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIp
CitKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbE5vZGUoRXhlY1N0YXRlKiBleGVj
LCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJikKK3sKKyAgICBKU1Rlc3RJbnRl
cmZhY2UqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RJbnRlcmZhY2UqPihhc09iamVj
dChzbG90QmFzZSkpOworICAgIFVOVVNFRF9QQVJBTShleGVjKTsKKyAgICBUZXN0SW50ZXJmYWNl
KiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdEludGVyZmFjZSo+KGNhc3RlZFRoaXMtPmltcGwoKSk7
CisgICAgSlNWYWx1ZSByZXN1bHQgPSB0b0pTKGV4ZWMsIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVj
dCgpLCBXVEY6OmdldFB0cihUZXN0U3VwcGxlbWVudGFsOjpzdXBwbGVtZW50YWxOb2RlKGltcGwp
KSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworI2VuZGlmCisKIEpTVmFsdWUganNUZXN0SW50
ZXJmYWNlQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25z
dCBJZGVudGlmaWVyJikKIHsKICAgICBKU1Rlc3RJbnRlcmZhY2UqIGRvbU9iamVjdCA9IHN0YXRp
Y19jYXN0PEpTVGVzdEludGVyZmFjZSo+KGFzT2JqZWN0KHNsb3RCYXNlKSk7CkBAIC0yOTAsNiAr
MzEwLDE2IEBAIHZvaWQgc2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMygKIAogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKK3Zv
aWQgc2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsTm9kZShFeGVjU3RhdGUqIGV4ZWMsIEpT
T2JqZWN0KiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQoreworICAgIEpTVGVzdEludGVyZmFj
ZSogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdEludGVyZmFjZSo+KHRoaXNPYmplY3Qp
OworICAgIFRlc3RJbnRlcmZhY2UqIGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0SW50ZXJmYWNlKj4o
Y2FzdGVkVGhpcy0+aW1wbCgpKTsKKyAgICBUZXN0U3VwcGxlbWVudGFsOjpzZXRTdXBwbGVtZW50
YWxOb2RlKGltcGwsIHRvTm9kZSh2YWx1ZSkpOworfQorCisjZW5kaWYKKwogSlNWYWx1ZSBKU1Rl
c3RJbnRlcmZhY2U6OmdldENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCkKIHsKICAgICByZXR1cm4gZ2V0RE9NQ29uc3RydWN0b3I8SlNUZXN0
SW50ZXJmYWNlQ29uc3RydWN0b3I+KGV4ZWMsIHN0YXRpY19jYXN0PEpTRE9NR2xvYmFsT2JqZWN0
Kj4oZ2xvYmFsT2JqZWN0KSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5oCShyZXZpc2lvbiAxMDgz
NjcpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50
ZXJmYWNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTE1OSw2ICsxNTksOCBAQCBKU0M6OkpTVmFsdWUg
anNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsCiB2b2lkIHNldEpTVGVzdEludGVyZmFjZVN1cHBs
ZW1lbnRhbFN0cjIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpKU1ZhbHVl
KTsKIEpTQzo6SlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIzKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6OklkZW50aWZpZXImKTsKIHZvaWQgc2V0
SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNP
YmplY3QqLCBKU0M6OkpTVmFsdWUpOworSlNDOjpKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVN1cHBs
ZW1lbnRhbE5vZGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6SWRl
bnRpZmllciYpOwordm9pZCBzZXRKU1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxOb2RlKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6SlNWYWx1ZSk7CiBKU0M6OkpTVmFsdWUg
anNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUs
IGNvbnN0IEpTQzo6SWRlbnRpZmllciYpOwogLy8gQ29uc3RhbnRzCiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RJbnRlcmZhY2UuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01U
ZXN0SW50ZXJmYWNlLmgJKHJldmlzaW9uIDEwODM2NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RJbnRlcmZhY2UuaAkod29ya2luZyBjb3B5KQpA
QCAtMjgsNiArMjgsNyBAQAogCiAjaWYgV0VCS0lUX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gV0VC
S0lUX1ZFUlNJT05fTEFURVNUCiAKK0BjbGFzcyBET01Ob2RlOwogQGNsYXNzIERPTVRlc3RPYmo7
CiBAY2xhc3MgTlNTdHJpbmc7CiAKQEAgLTUzLDYgKzU0LDEwIEBAIGVudW0gewogLSAoTlNTdHJp
bmcgKilzdXBwbGVtZW50YWxTdHIzOwogLSAodm9pZClzZXRTdXBwbGVtZW50YWxTdHIzOihOU1N0
cmluZyAqKW5ld1N1cHBsZW1lbnRhbFN0cjM7CiAjZW5kaWYKKyNpZiBFTkFCTEUoQ29uZGl0aW9u
MTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKKy0gKERPTU5vZGUgKilzdXBwbGVtZW50YWxOb2Rl
OworLSAodm9pZClzZXRTdXBwbGVtZW50YWxOb2RlOihET01Ob2RlICopbmV3U3VwcGxlbWVudGFs
Tm9kZTsKKyNlbmRpZgogLSAodm9pZClzdXBwbGVtZW50YWxNZXRob2QxOwogLSAoRE9NVGVzdE9i
aiAqKXN1cHBsZW1lbnRhbE1ldGhvZDI6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVz
dE9iaiAqKW9iakFyZzsKIC0gKHZvaWQpc3VwcGxlbWVudGFsTWV0aG9kMzsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RJbnRlcmZhY2UubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMv
RE9NVGVzdEludGVyZmFjZS5tbQkocmV2aXNpb24gMTA4MzY3KQorKysgU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdEludGVyZmFjZS5tbQkod29ya2luZyBj
b3B5KQpAQCAtNDMsNiArNDMsNyBAQAogI2ltcG9ydCAiRXhjZXB0aW9uSGFuZGxlcnMuaCIKICNp
bXBvcnQgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIgogI2ltcG9ydCAiS1VSTC5oIgorI2ltcG9y
dCAiTm9kZS5oIgogI2ltcG9ydCAiVGVzdEludGVyZmFjZS5oIgogI2ltcG9ydCAiVGVzdE9iai5o
IgogI2ltcG9ydCAiVGVzdFN1cHBsZW1lbnRhbC5oIgpAQCAtMTA4LDYgKzEwOSwyMiBAQCAtICh2
b2lkKXNldFN1cHBsZW1lbnRhbFN0cjM6KE5TU3RyaW5nICopCiB9CiAjZW5kaWYKIAorI2lmIEVO
QUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQorLSAoRE9NTm9kZSAqKXN1
cHBsZW1lbnRhbE5vZGUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3Rh
dGU7CisgICAgcmV0dXJuIGtpdChXVEY6OmdldFB0cihUZXN0U3VwcGxlbWVudGFsOjpzdXBwbGVt
ZW50YWxOb2RlKElNUEwpKSk7Cit9CisKKy0gKHZvaWQpc2V0U3VwcGxlbWVudGFsTm9kZTooRE9N
Tm9kZSAqKW5ld1N1cHBsZW1lbnRhbE5vZGUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWRO
dWxsU3RhdGUgc3RhdGU7CisgICAgQVNTRVJUKG5ld1N1cHBsZW1lbnRhbE5vZGUpOworCisgICAg
VGVzdFN1cHBsZW1lbnRhbDo6c2V0U3VwcGxlbWVudGFsTm9kZShJTVBMLCBjb3JlKG5ld1N1cHBs
ZW1lbnRhbE5vZGUpKTsKK30KKyNlbmRpZgorCiAKICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8
IEVOQUJMRShDb25kaXRpb24xMikKIC0gKHZvaWQpc3VwcGxlbWVudGFsTWV0aG9kMQpJbmRleDog
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4
L1Y4VGVzdEludGVyZmFjZS5jcHAJKHJldmlzaW9uIDEwODM2NykKKysrIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJbnRlcmZhY2UuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiVjhCaW5kaW5nU3RhdGUuaCIKICNpbmNs
dWRlICJWOERPTVdyYXBwZXIuaCIKICNpbmNsdWRlICJWOElzb2xhdGVkQ29udGV4dC5oIgorI2lu
Y2x1ZGUgIlY4Tm9kZS5oIgogI2luY2x1ZGUgIlY4UHJveHkuaCIKICNpbmNsdWRlICJWOFRlc3RP
YmouaCIKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CkBAIC04Myw2ICs4NCwzMCBAQCBzdGF0aWMg
dm9pZCBzdXBwbGVtZW50YWxTdHIyQXR0clNldHRlcih2CiAKICNpZiBFTkFCTEUoQ29uZGl0aW9u
MTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKIAorc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiBzdXBwbGVtZW50YWxOb2RlQXR0ckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwg
Y29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKK3sKKyAgICBJTkNfU1RBVFMoIkRPTS5UZXN0
SW50ZXJmYWNlLnN1cHBsZW1lbnRhbE5vZGUuX2dldCIpOworICAgIFRlc3RJbnRlcmZhY2UqIGlt
cCA9IFY4VGVzdEludGVyZmFjZTo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CisgICAgcmV0dXJu
IHRvVjgoVGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsTm9kZShpbXApKTsKK30KKworI2Vu
ZGlmIC8vIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQorCisjaWYg
RU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCisKK3N0YXRpYyB2b2lk
IHN1cHBsZW1lbnRhbE5vZGVBdHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2
ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykK
K3sKKyAgICBJTkNfU1RBVFMoIkRPTS5UZXN0SW50ZXJmYWNlLnN1cHBsZW1lbnRhbE5vZGUuX3Nl
dCIpOworICAgIFRlc3RJbnRlcmZhY2UqIGltcCA9IFY4VGVzdEludGVyZmFjZTo6dG9OYXRpdmUo
aW5mby5Ib2xkZXIoKSk7CisgICAgTm9kZSogdiA9IFY4Tm9kZTo6SGFzSW5zdGFuY2UodmFsdWUp
ID8gVjhOb2RlOjp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KHZhbHVlKSkg
OiAwOworICAgIFRlc3RTdXBwbGVtZW50YWw6OnNldFN1cHBsZW1lbnRhbE5vZGUoaW1wLCBXVEY6
OmdldFB0cih2KSk7CisgICAgcmV0dXJuOworfQorCisjZW5kaWYgLy8gRU5BQkxFKENvbmRpdGlv
bjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCisKKyNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8
IEVOQUJMRShDb25kaXRpb24xMikKKwogc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBzdXBw
bGVtZW50YWxNZXRob2QxQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAg
ICBJTkNfU1RBVFMoIkRPTS5UZXN0SW50ZXJmYWNlLnN1cHBsZW1lbnRhbE1ldGhvZDEiKTsKQEAg
LTEzNSw2ICsxNjAsMTAgQEAgc3RhdGljIGNvbnN0IEJhdGNoZWRBdHRyaWJ1dGUgVGVzdEludGVy
ZgogICAgIC8vIEF0dHJpYnV0ZSAnc3VwcGxlbWVudGFsU3RyMycgKFR5cGU6ICdhdHRyaWJ1dGUn
IEV4dEF0dHI6ICdDdXN0b21TZXR0ZXIgQ3VzdG9tR2V0dGVyIENvbmRpdGlvbmFsIEltcGxlbWVu
dGVkQnknKQogICAgIHsic3VwcGxlbWVudGFsU3RyMyIsIFY4VGVzdEludGVyZmFjZTo6c3VwcGxl
bWVudGFsU3RyM0FjY2Vzc29yR2V0dGVyLCBWOFRlc3RJbnRlcmZhY2U6OnN1cHBsZW1lbnRhbFN0
cjNBY2Nlc3NvclNldHRlciwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNz
Q29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+
KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCiAjZW5kaWYgLy8gRU5BQkxFKENvbmRp
dGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCisjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8
fCBFTkFCTEUoQ29uZGl0aW9uMTIpCisgICAgLy8gQXR0cmlidXRlICdzdXBwbGVtZW50YWxOb2Rl
JyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJ0NvbmRpdGlvbmFsIEltcGxlbWVudGVkQnkn
KQorICAgIHsic3VwcGxlbWVudGFsTm9kZSIsIFRlc3RJbnRlcmZhY2VJbnRlcm5hbDo6c3VwcGxl
bWVudGFsTm9kZUF0dHJHZXR0ZXIsIFRlc3RJbnRlcmZhY2VJbnRlcm5hbDo6c3VwcGxlbWVudGFs
Tm9kZUF0dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0Nv
bnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2
ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAorI2VuZGlmIC8vIEVOQUJMRShDb25kaXRp
b24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQogfTsKIAogc3RhdGljIGNvbnN0IEJhdGNoZWRD
YWxsYmFjayBUZXN0SW50ZXJmYWNlQ2FsbGJhY2tzW10gPSB7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlci5jcHAJKHJldmlzaW9uIDEwODM2NykKKysrIFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0MzksOCArMjQzOSw3
IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNsb3NlQW5kUmVtb3ZlQ2hpbGQoRnIKICAgICBjaGlsZC0+
c2V0VmlldygwKTsKICAgICBpZiAoY2hpbGQtPm93bmVyRWxlbWVudCgpICYmIGNoaWxkLT5wYWdl
KCkpCiAgICAgICAgIGNoaWxkLT5wYWdlKCktPmRlY3JlbWVudEZyYW1lQ291bnQoKTsKLSAgICAv
LyBGSVhNRTogVGhlIHBhZ2UgaXNuJ3QgYmVpbmcgZGVzdHJveWVkLCBzbyBpdCdzIG5vdCByaWdo
dCB0byBjYWxsIGEgZnVuY3Rpb24gbmFtZWQgcGFnZURlc3Ryb3llZCgpLgotICAgIGNoaWxkLT5w
YWdlRGVzdHJveWVkKCk7CisgICAgY2hpbGQtPmRldGFjaEZyb21QYWdlKCk7CiAKICAgICBtX2Zy
YW1lLT50cmVlKCktPnJlbW92ZUNoaWxkKGNoaWxkKTsKIH0KQEAgLTI1MTgsOCArMjUxNyw3IEBA
IHZvaWQgRnJhbWVMb2FkZXI6OmRldGFjaEZyb21QYXJlbnQoKQogICAgICAgICBwYXJlbnQtPmxv
YWRlcigpLT5zY2hlZHVsZUNoZWNrQ29tcGxldGVkKCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAg
bV9mcmFtZS0+c2V0VmlldygwKTsKLSAgICAgICAgLy8gRklYTUU6IFRoZSBwYWdlIGlzbid0IGJl
aW5nIGRlc3Ryb3llZCwgc28gaXQncyBub3QgcmlnaHQgdG8gY2FsbCBhIGZ1bmN0aW9uIG5hbWVk
IHBhZ2VEZXN0cm95ZWQoKS4KLSAgICAgICAgbV9mcmFtZS0+cGFnZURlc3Ryb3llZCgpOworICAg
ICAgICBtX2ZyYW1lLT5kZXRhY2hGcm9tUGFnZSgpOwogICAgIH0KIH0KIApJbmRleDogU291cmNl
L1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmNwcAkocmV2aXNpb24gMTA4MzY3KQorKysgU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00ODAsNiArNDgwLDIxIEBAIHZv
aWQgRE9NV2luZG93OjpmcmFtZURlc3Ryb3llZCgpCiAgICAgY2xlYXIoKTsKIH0KIAordm9pZCBE
T01XaW5kb3c6OndpbGxEZXRhY2hQYWdlKCkKK3sKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmZyYW1lV2luZG93RGlzY2FyZGVkKG1fZnJhbWUsIHRoaXMpOworCisjaWYgRU5BQkxFKE5P
VElGSUNBVElPTlMpCisgICAgLy8gQ2xlYXJpbmcgTm90aWZpY2F0aW9ucyByZXF1ZXN0cyBpbnZv
bHZlcyBhY2Nlc3NpbmcgdGhlIGNsaWVudCBzbyBpdCBtdXN0IGJlIGRvbmUKKyAgICAvLyBiZWZv
cmUgdGhlIGZyYW1lIGlzIGRldGFjaGVkLgorICAgIHJlc2V0Tm90aWZpY2F0aW9ucygpOworI2Vu
ZGlmCisKKyAgICBIYXNoU2V0PERPTVdpbmRvd1Byb3BlcnR5Kj46Oml0ZXJhdG9yIHN0b3AgPSBt
X3Byb3BlcnRpZXMuZW5kKCk7CisgICAgZm9yIChIYXNoU2V0PERPTVdpbmRvd1Byb3BlcnR5Kj46
Oml0ZXJhdG9yIGl0ID0gbV9wcm9wZXJ0aWVzLmJlZ2luKCk7IGl0ICE9IHN0b3A7ICsraXQpCisg
ICAgICAgICgqaXQpLT53aWxsRGV0YWNoUGFnZSgpOworfQorCiB2b2lkIERPTVdpbmRvdzo6cmVn
aXN0ZXJQcm9wZXJ0eShET01XaW5kb3dQcm9wZXJ0eSogcHJvcGVydHkpCiB7CiAgICAgbV9wcm9w
ZXJ0aWVzLmFkZChwcm9wZXJ0eSk7CkBAIC03MzEsMjMgKzc0Niw2IEBAIHZvaWQgRE9NV2luZG93
OjpyZXNldE5vdGlmaWNhdGlvbnMoKQogfQogI2VuZGlmCiAKLXZvaWQgRE9NV2luZG93OjpwYWdl
RGVzdHJveWVkKCkKLXsKLSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lV2luZG93
RGlzY2FyZGVkKG1fZnJhbWUsIHRoaXMpOwotI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQotICAg
IC8vIENsZWFyaW5nIE5vdGlmaWNhdGlvbnMgcmVxdWVzdHMgaW52b2x2ZXMgYWNjZXNzaW5nIHRo
ZSBjbGllbnQgc28gaXQgbXVzdCBiZSBkb25lCi0gICAgLy8gYmVmb3JlIHRoZSBmcmFtZSBpcyBk
ZXRhY2hlZC4KLSAgICByZXNldE5vdGlmaWNhdGlvbnMoKTsKLSNlbmRpZgotfQotCi12b2lkIERP
TVdpbmRvdzo6cmVzZXRHZW9sb2NhdGlvbigpCi17Ci0gICAgLy8gR2VvbG9jYXRpb24gc2hvdWxk
IGNhbmNlbCBhY3Rpdml0aWVzIGFuZCBwZXJtaXNzaW9uIHJlcXVlc3RzIHdoZW4gdGhlIHBhZ2Ug
aXMgZGV0YWNoZWQuCi0gICAgaWYgKG1fbmF2aWdhdG9yKQotICAgICAgICBtX25hdmlnYXRvci0+
cmVzZXRHZW9sb2NhdGlvbigpOwotfQotCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiB2
b2lkIERPTVdpbmRvdzo6c2V0SURCRmFjdG9yeShQYXNzUmVmUHRyPElEQkZhY3Rvcnk+IGlkYkZh
Y3RvcnkpCiB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgJKHJldmlzaW9uIDEwODM2NykK
KysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgJKHdvcmtpbmcgY29weSkKQEAgLTky
LDggKzkyLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZpcnR1YWwgRE9NV2lu
ZG93KiB0b0RPTVdpbmRvdygpOwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBmcmFtZURlc3Ryb3ll
ZCgpIE9WRVJSSURFOwotCiAgICAgICAgIHZvaWQgcmVnaXN0ZXJQcm9wZXJ0eShET01XaW5kb3dQ
cm9wZXJ0eSopOwogICAgICAgICB2b2lkIHVucmVnaXN0ZXJQcm9wZXJ0eShET01XaW5kb3dQcm9w
ZXJ0eSopOwogCkBAIC0yMzEsOSArMjI5LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICB2b2lkIHByaW50RXJyb3JNZXNzYWdlKGNvbnN0IFN0cmluZyYpOwogICAgICAgICBTdHJpbmcg
Y3Jvc3NEb21haW5BY2Nlc3NFcnJvck1lc3NhZ2UoRE9NV2luZG93KiBhY3RpdmVXaW5kb3cpOwog
Ci0gICAgICAgIHZvaWQgcGFnZURlc3Ryb3llZCgpOwotICAgICAgICB2b2lkIHJlc2V0R2VvbG9j
YXRpb24oKTsKLQogICAgICAgICB2b2lkIHBvc3RNZXNzYWdlKFBhc3NSZWZQdHI8U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlPiBtZXNzYWdlLCBjb25zdCBNZXNzYWdlUG9ydEFycmF5KiwgY29uc3QgU3Ry
aW5nJiB0YXJnZXRPcmlnaW4sIERPTVdpbmRvdyogc291cmNlLCBFeGNlcHRpb25Db2RlJik7CiAg
ICAgICAgIC8vIEZJWE1FOiByZW1vdmUgdGhpcyB3aGVuIHdlIHVwZGF0ZSB0aGUgT2JqQyBiaW5k
aW5ncyAoYnVnICMyODc3NCkuCiAgICAgICAgIHZvaWQgcG9zdE1lc3NhZ2UoUGFzc1JlZlB0cjxT
ZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1lc3NhZ2UsIE1lc3NhZ2VQb3J0KiwgY29uc3QgU3RyaW5n
JiB0YXJnZXRPcmlnaW4sIERPTVdpbmRvdyogc291cmNlLCBFeGNlcHRpb25Db2RlJik7CkBAIC00
MTksNiArNDE0LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIHByaXZhdGU6CiAgICAgICAg
IGV4cGxpY2l0IERPTVdpbmRvdyhGcmFtZSopOwogCisgICAgICAgIHZpcnR1YWwgdm9pZCBmcmFt
ZURlc3Ryb3llZCgpIE9WRVJSSURFOworICAgICAgICB2aXJ0dWFsIHZvaWQgd2lsbERldGFjaFBh
Z2UoKSBPVkVSUklERTsKKwogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSB7
IHJlZigpOyB9CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgeyBkZXJl
ZigpOyB9CiAgICAgICAgIHZpcnR1YWwgRXZlbnRUYXJnZXREYXRhKiBldmVudFRhcmdldERhdGEo
KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93UHJvcGVydHkuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93UHJvcGVydHkuY3BwCShyZXZp
c2lvbiAxMDgzNjcpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd1Byb3BlcnR5LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDksNCArNDksOSBAQCB2b2lkIERPTVdpbmRvd1Byb3BlcnR5
OjpkaXNjb25uZWN0RnJhbWUoCiAgICAgbV9mcmFtZSA9IDA7CiB9CiAKK3ZvaWQgRE9NV2luZG93
UHJvcGVydHk6OndpbGxEZXRhY2hQYWdlKCkKK3sKKyAgICAvLyBTdWJjbGFzc2VzIHNob3VsZCBv
dmVycmlkZSB0aGlzIGZ1bmN0aW9uIHRvIGhhbmRsZSB0aGlzIG5vdGlmaWNhdGlvbi4KK30KKwog
fQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3dQcm9wZXJ0eS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93UHJvcGVydHkuaAkocmV2aXNpb24g
MTA4MzY3KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3dQcm9wZXJ0eS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMyw3ICszMyw5IEBAIGNsYXNzIEZyYW1lOwogY2xhc3MgRE9NV2luZG93
UHJvcGVydHkgewogcHVibGljOgogICAgIGV4cGxpY2l0IERPTVdpbmRvd1Byb3BlcnR5KEZyYW1l
Kik7CisKICAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdEZyYW1lKCk7CisgICAgdmlydHVhbCB2
b2lkIHdpbGxEZXRhY2hQYWdlKCk7CiAKICAgICBGcmFtZSogZnJhbWUoKSBjb25zdCB7IHJldHVy
biBtX2ZyYW1lOyB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCShyZXZpc2lvbiAxMDgzNjcp
CisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjYw
LDIxICs2NjAsMTkgQEAgRE9NV2luZG93KiBGcmFtZTo6ZG9tV2luZG93KCkgY29uc3QKICAgICBy
ZXR1cm4gbV9kb21XaW5kb3cuZ2V0KCk7CiB9CiAKLXZvaWQgRnJhbWU6OnBhZ2VEZXN0cm95ZWQo
KQordm9pZCBGcmFtZTo6d2lsbERldGFjaFBhZ2UoKQogewotICAgIC8vIEZJWE1FOiBSZW5hbWUg
dGhpcyBmdW5jdGlvbiwgc2luY2UgaXQncyBjYWxsZWQgbm90IG9ubHkgZnJvbSBQYWdlIGRlc3Ry
dWN0b3IsIGJ1dCBpbiBzZXZlcmFsIG90aGVyIGNhc2VzLgotICAgIC8vIFRoaXMgY2xlYW51cCBp
cyBuZWVkZWQgd2hlbmV2ZXIgd2UgcmVtb3ZlIGEgZnJhbWUgZnJvbSBwYWdlLgotCiAgICAgaWYg
KEZyYW1lKiBwYXJlbnQgPSB0cmVlKCktPnBhcmVudCgpKQogICAgICAgICBwYXJlbnQtPmxvYWRl
cigpLT5jaGVja0xvYWRDb21wbGV0ZSgpOwogCi0gICAgaWYgKG1fZG9tV2luZG93KSB7Ci0gICAg
ICAgIG1fZG9tV2luZG93LT5yZXNldEdlb2xvY2F0aW9uKCk7CiAjaWYgRU5BQkxFKE5PVElGSUNB
VElPTlMpCisgICAgaWYgKG1fZG9tV2luZG93KQogICAgICAgICBtX2RvbVdpbmRvdy0+cmVzZXRO
b3RpZmljYXRpb25zKCk7CiAjZW5kaWYKLSAgICAgICAgbV9kb21XaW5kb3ctPnBhZ2VEZXN0cm95
ZWQoKTsKLSAgICB9CisKKyAgICBIYXNoU2V0PEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlcio+Ojpp
dGVyYXRvciBzdG9wID0gbV9kZXN0cnVjdGlvbk9ic2VydmVycy5lbmQoKTsKKyAgICBmb3IgKEhh
c2hTZXQ8RnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyKj46Oml0ZXJhdG9yIGl0ID0gbV9kZXN0cnVj
dGlvbk9ic2VydmVycy5iZWdpbigpOyBpdCAhPSBzdG9wOyArK2l0KQorICAgICAgICAoKml0KS0+
d2lsbERldGFjaFBhZ2UoKTsKIAogICAgIC8vIEZJWE1FOiBJdCdzIHVuY2xlYXIgYXMgdG8gd2h5
IHRoaXMgaXMgY2FsbGVkIG1vcmUgdGhhbiBvbmNlLCBidXQgaXQgaXMsCiAgICAgLy8gc28gcGFn
ZSgpIGNvdWxkIGJlIE5VTEwuCkBAIC02ODMsOCArNjgxLDYgQEAgdm9pZCBGcmFtZTo6cGFnZURl
c3Ryb3llZCgpCiAKICAgICBzY3JpcHQoKS0+Y2xlYXJTY3JpcHRPYmplY3RzKCk7CiAgICAgc2Ny
aXB0KCktPnVwZGF0ZVBsYXRmb3JtU2NyaXB0T2JqZWN0cygpOwotCi0gICAgZGV0YWNoRnJvbVBh
Z2UoKTsKIH0KIAogdm9pZCBGcmFtZTo6ZGlzY29ubmVjdE93bmVyRWxlbWVudCgpCkBAIC03MTgs
MTcgKzcxNCwxNiBAQCB2b2lkIEZyYW1lOjp0cmFuc2ZlckNoaWxkRnJhbWVUb05ld0RvY3VtCiAg
ICAgICAgICAgICAgbV9wYWdlLT5kZWNyZW1lbnRGcmFtZUNvdW50KCk7CiAgICAgICAgIH0KIAot
ICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGlkZWFsbHkgYWxsb3cgZXhpc3RpbmcgR2VvbG9j
YXRpb24gYWN0aXZpdGllcyB0byBjb250aW51ZQotICAgICAgICAvLyB3aGVuIHRoZSBHZW9sb2Nh
dGlvbidzIGlmcmFtZSBpcyByZXBhcmVudGVkLgotICAgICAgICAvLyBTZWUgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU1NTc3Ci0gICAgICAgIC8vIGFuZCBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTI4NzcKICAgICAgICAgaWYgKG1fZG9t
V2luZG93KSB7Ci0gICAgICAgICAgICBtX2RvbVdpbmRvdy0+cmVzZXRHZW9sb2NhdGlvbigpOwog
I2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQogICAgICAgICAgICAgbV9kb21XaW5kb3ctPnJlc2V0
Tm90aWZpY2F0aW9ucygpOwogI2VuZGlmCiAgICAgICAgIH0KIAorICAgICAgICBIYXNoU2V0PEZy
YW1lRGVzdHJ1Y3Rpb25PYnNlcnZlcio+OjppdGVyYXRvciBzdG9wID0gbV9kZXN0cnVjdGlvbk9i
c2VydmVycy5lbmQoKTsKKyAgICAgICAgZm9yIChIYXNoU2V0PEZyYW1lRGVzdHJ1Y3Rpb25PYnNl
cnZlcio+OjppdGVyYXRvciBpdCA9IG1fZGVzdHJ1Y3Rpb25PYnNlcnZlcnMuYmVnaW4oKTsgaXQg
IT0gc3RvcDsgKytpdCkKKyAgICAgICAgICAgICgqaXQpLT53aWxsRGV0YWNoUGFnZSgpOworCiAg
ICAgICAgIG1fcGFnZSA9IG5ld1BhZ2U7CiAKICAgICAgICAgaWYgKG5ld1BhZ2UpCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZS5oCShyZXZpc2lvbiAxMDgzNjcpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lLmgJKHdvcmtpbmcgY29weSkKQEAgLTg5LDggKzg5LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICB2b2lkIGFkZERlc3RydWN0aW9uT2JzZXJ2ZXIoRnJhbWVEZXN0cnVjdGlvbk9i
c2VydmVyKik7CiAgICAgICAgIHZvaWQgcmVtb3ZlRGVzdHJ1Y3Rpb25PYnNlcnZlcihGcmFtZURl
c3RydWN0aW9uT2JzZXJ2ZXIqKTsKIAorICAgICAgICB2b2lkIHdpbGxEZXRhY2hQYWdlKCk7CiAg
ICAgICAgIHZvaWQgZGV0YWNoRnJvbVBhZ2UoKTsKLSAgICAgICAgdm9pZCBwYWdlRGVzdHJveWVk
KCk7CiAgICAgICAgIHZvaWQgZGlzY29ubmVjdE93bmVyRWxlbWVudCgpOwogCiAgICAgICAgIFBh
Z2UqIHBhZ2UoKSBjb25zdDsKQEAgLTM0OCw2ICszNDgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKICAgICBpbmxpbmUgdm9pZCBGcmFtZTo6ZGV0YWNoRnJvbVBhZ2UoKQogICAgIHsKKyAgICAg
ICAgd2lsbERldGFjaFBhZ2UoKTsKICAgICAgICAgbV9wYWdlID0gMDsKICAgICB9CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlci5jcHAJ
KHJldmlzaW9uIDEwODM2NykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVEZXN0cnVjdGlv
bk9ic2VydmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTgsNCArNTgsOSBAQCB2b2lkIEZyYW1l
RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6ZnJhbWVEZXN0CiAgICAgbV9mcmFtZSA9IDA7CiB9CiAKK3Zv
aWQgRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyOjp3aWxsRGV0YWNoUGFnZSgpCit7CisgICAgLy8g
U3ViY2xhc3NlcyBzaG91bGQgb3ZlcnJpZGUgdGhpcyBmdW5jdGlvbiB0byBoYW5kbGUgdGhpcyBu
b3RpZmljYXRpb24uCit9CisKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVEZXN0
cnVjdGlvbk9ic2VydmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZURlc3RydWN0aW9uT2JzZXJ2ZXIuaAkocmV2aXNpb24gMTA4MzY3KQorKysgU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzMs
NyArMzMsMTAgQEAgY2xhc3MgRnJhbWU7CiBjbGFzcyBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIg
ewogcHVibGljOgogICAgIGV4cGxpY2l0IEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlcihGcmFtZSop
OworCiAgICAgdmlydHVhbCB2b2lkIGZyYW1lRGVzdHJveWVkKCk7CisgICAgdmlydHVhbCB2b2lk
IHdpbGxEZXRhY2hQYWdlKCk7CisKICAgICBGcmFtZSogZnJhbWUoKSBjb25zdCB7IHJldHVybiBt
X2ZyYW1lOyB9CiAKIHByb3RlY3RlZDoKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdh
dG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5jcHAJ
KHJldmlzaW9uIDEwODM2NykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNjcsMTIgKzY3LDYgQEAgTmF2aWdhdG9yU3VwcGxlbWVudCogTmF2
aWdhdG9yOjpyZXF1aXJlUwogICAgIHJldHVybiBtX3N1cHBsaW1lbnRzLmdldChuYW1lLmltcGwo
KSk7CiB9CiAKLXZvaWQgTmF2aWdhdG9yOjpyZXNldEdlb2xvY2F0aW9uKCkKLXsKLSAgICBpZiAo
bV9nZW9sb2NhdGlvbikKLSAgICAgICAgbV9nZW9sb2NhdGlvbi0+cmVzZXQoKTsKLX0KLQogLy8g
SWYgdGhpcyBmdW5jdGlvbiByZXR1cm5zIHRydWUsIHdlIG5lZWQgdG8gaGlkZSB0aGUgc3Vic3Ry
aW5nICI0LiIgdGhhdCB3b3VsZCBvdGhlcndpc2UKIC8vIGFwcGVhciBpbiB0aGUgYXBwVmVyc2lv
biBzdHJpbmcuIFRoaXMgaXMgdG8gYXZvaWQgcHJvYmxlbXMgd2l0aCBvbGQgdmVyc2lvbnMgb2Yg
YQogLy8gbGlicmFyeSBjYWxsZWQgT3BlbkN1YmUgUXVpY2tNZW51LCB3aGljaCBhcyBvZiB0aGlz
IHdyaXRpbmcgaXMgc3RpbGwgYmVpbmcgdXNlZCBvbgpAQCAtMTUxLDEzICsxNDUsNiBAQCBib29s
IE5hdmlnYXRvcjo6amF2YUVuYWJsZWQoKSBjb25zdAogICAgIHJldHVybiBtX2ZyYW1lLT5zZXR0
aW5ncygpLT5pc0phdmFFbmFibGVkKCk7CiB9CiAKLUdlb2xvY2F0aW9uKiBOYXZpZ2F0b3I6Omdl
b2xvY2F0aW9uKCkgY29uc3QKLXsKLSAgICBpZiAoIW1fZ2VvbG9jYXRpb24pCi0gICAgICAgIG1f
Z2VvbG9jYXRpb24gPSBHZW9sb2NhdGlvbjo6Y3JlYXRlKG1fZnJhbWUpOwotICAgIHJldHVybiBt
X2dlb2xvY2F0aW9uLmdldCgpOwotfQotCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKIFBvaW50
ZXJMb2NrKiBOYXZpZ2F0b3I6OndlYmtpdFBvaW50ZXIoKSBjb25zdAogewpJbmRleDogU291cmNl
L1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
YWdlL05hdmlnYXRvci5oCShyZXZpc2lvbiAxMDgzNjcpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdl
L05hdmlnYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw2IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIGNsYXNzIERPTU1pbWVUeXBlQXJyYXk7CiBjbGFzcyBET01QbHVnaW5BcnJheTsK
IGNsYXNzIEZyYW1lOwotY2xhc3MgR2VvbG9jYXRpb247CiBjbGFzcyBQb2ludGVyTG9jazsKIGNs
YXNzIFBsdWdpbkRhdGE7CiAKQEAgLTQ1LDggKzQ0LDYgQEAgcHVibGljOgogICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPE5hdmlnYXRvcj4gY3JlYXRlKEZyYW1lKiBmcmFtZSkgeyByZXR1cm4gYWRvcHRS
ZWYobmV3IE5hdmlnYXRvcihmcmFtZSkpOyB9CiAgICAgdmlydHVhbCB+TmF2aWdhdG9yKCk7CiAK
LSAgICB2b2lkIHJlc2V0R2VvbG9jYXRpb24oKTsKLQogICAgIFN0cmluZyBhcHBWZXJzaW9uKCkg
Y29uc3Q7CiAgICAgU3RyaW5nIGxhbmd1YWdlKCkgY29uc3Q7CiAgICAgRE9NUGx1Z2luQXJyYXkq
IHBsdWdpbnMoKSBjb25zdDsKQEAgLTU2LDggKzUzLDYgQEAgcHVibGljOgogCiAgICAgdmlydHVh
bCBTdHJpbmcgdXNlckFnZW50KCkgY29uc3Q7CiAKLSAgICBHZW9sb2NhdGlvbiogZ2VvbG9jYXRp
b24oKSBjb25zdDsKLQogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgUG9pbnRlckxvY2sq
IHdlYmtpdFBvaW50ZXIoKSBjb25zdDsKICNlbmRpZgpAQCAtODAsNyArNzUsNiBAQCBwcml2YXRl
OgogCiAgICAgbXV0YWJsZSBSZWZQdHI8RE9NUGx1Z2luQXJyYXk+IG1fcGx1Z2luczsKICAgICBt
dXRhYmxlIFJlZlB0cjxET01NaW1lVHlwZUFycmF5PiBtX21pbWVUeXBlczsKLSAgICBtdXRhYmxl
IFJlZlB0cjxHZW9sb2NhdGlvbj4gbV9nZW9sb2NhdGlvbjsKICNpZiBFTkFCTEUoUE9JTlRFUl9M
T0NLKQogICAgIG11dGFibGUgUmVmUHRyPFBvaW50ZXJMb2NrPiBtX3BvaW50ZXI7CiAjZW5kaWYK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmlkbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5pZGwJKHJldmlzaW9uIDEwODM2NykKKysrIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmlkbAkod29ya2luZyBjb3B5KQpAQCAtNDAsMTAg
KzQwLDYgQEAgbW9kdWxlIHdpbmRvdyB7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJv
b2xlYW4gb25MaW5lOwogCi0jaWYgZGVmaW5lZChFTkFCTEVfR0VPTE9DQVRJT04pICYmIEVOQUJM
RV9HRU9MT0NBVElPTgotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW1Y4RW5hYmxlZEF0UnVu
dGltZV0gR2VvbG9jYXRpb24gZ2VvbG9jYXRpb247Ci0jZW5kaWYKLQogI2lmIGRlZmluZWQoRU5B
QkxFX1BPSU5URVJfTE9DSykgJiYgRU5BQkxFX1BPSU5URVJfTE9DSwogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgW1Y4RW5hYmxlZEF0UnVudGltZV0gUG9pbnRlckxvY2sgd2Via2l0UG9pbnRl
cjsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCShyZXZpc2lvbiAxMDgzNjcpCisrKyBT
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDAsNyArMjAw
LDcgQEAgUGFnZTo6flBhZ2UoKQogICAgIGFsbFBhZ2VzLT5yZW1vdmUodGhpcyk7CiAgICAgCiAg
ICAgZm9yIChGcmFtZSogZnJhbWUgPSBtYWluRnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUt
PnRyZWUoKS0+dHJhdmVyc2VOZXh0KCkpCi0gICAgICAgIGZyYW1lLT5wYWdlRGVzdHJveWVkKCk7
CisgICAgICAgIGZyYW1lLT5kZXRhY2hGcm9tUGFnZSgpOwogCiAgICAgbV9lZGl0b3JDbGllbnQt
PnBhZ2VEZXN0cm95ZWQoKTsKIApJbmRleDogU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVm
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgkocmV2aXNpb24g
MTA4MzY3KQorKysgU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCSh3b3JraW5nIGNvcHkp
CkBAIC0yMDEsMyArMjAxLDQgQEAgRVhQT1JUUwogICAgICAgICA/dXBkYXRlTGF5b3V0SWdub3Jl
UGVuZGluZ1N0eWxlc2hlZXRzQERvY3VtZW50QFdlYkNvcmVAQFFBRVhYWgogICAgICAgICA/dXNl
clByZWZlcnJlZExhbmd1YWdlc0BXZWJDb3JlQEBZQT9BVj8kVmVjdG9yQFZTdHJpbmdAV1RGQEAk
MEFAQFdURkBAWFoKICAgICAgICAgP3ZpZXdARG9jdW1lbnRAV2ViQ29yZUBAUUJFUEFWRnJhbWVW
aWV3QDJAWFoKKyAgICAgICAgP3dpbGxEZXRhY2hQYWdlQEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZl
ckBXZWJDb3JlQEBVQUVYWFoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128047</attachid>
            <date>2012-02-21 14:39:36 -0800</date>
            <delta_ts>2012-02-21 14:40:40 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-78860-20120221143935.patch</filename>
            <type>text/plain</type>
            <size>88689</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwODM4OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU0IEBACisyMDEyLTAyLTIxICBBZGFtIEJh
cnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRnJhbWUgYW5kIE5hdmlnYXRvciBz
aG91bGRuJ3QgbmVlZCB0byB3b3JyeSBhYm91dCBHZW9sb2NhdGlvbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg4NjAKKworICAgICAgICBSZXZpZXdl
ZCBieSBFcmljIFNlaWRlbC4KKworICAgICAgICBUaGlzIHBhdGNoIHJlbW92ZXMgc29tZSBHZW9s
b2NhdGlvbi1zcGVjaWZpYyBjb2RlIGZyb20gRnJhbWUgYW5kCisgICAgICAgIE5hdmlnYXRvciBp
biBmYXZvciBvZiBvdXIgbmV3IHN1cHBsZW1lbnRhbCBtb2R1bGUgbWVjaGFuaXNtLiAgV2UncmUK
KyAgICAgICAgc3RpbGwgcmVmaW5pbmcgdGhlIG1vZHVsZSBzeXN0ZW0sIGJ1dCB3ZSBzZWVtIHRv
IGJlIGNvbnZlcmdpbmcgb24gYQorICAgICAgICBzaW1wbGUgT2JzZXJ2ZXIvU3VwcGxlbWVudCBk
ZXNpZ24uCisKKyAgICAgICAgSW4gYSBmdXR1cmUgcGF0Y2gsIEknbGwgbW92ZSB0aGUgcmVtYWlu
aW5nIEdlb2xvY2F0aW9uLXJlbGF0ZWQgZmlsZXMgaW4KKyAgICAgICAgV2ViQ29yZSBpbnRvIE1v
ZHVsZXMvZ2VvbG9jYXRpb24uICBUaGlzIHBhdGNoIGFwcGVhcnMgdG8gYmUgdGhlIGZpcnN0Cisg
ICAgICAgIHBhdGNoIHRoYXQgaW50cm9kdWNlcyBhIG1vZHVsZSB1c2VkIGJ5IGFsbCB0aGUgdmFy
aW91cyBidWlsZCBzeXN0ZW1zLAorICAgICAgICB3aGljaCBpcyB3aHkgdGhlcmUncyBhIGJpdCBt
b3JlIGJ1aWxkIHN5c3RlbSBvdmVyaGVhZCB0aGFuIHVzdWFsLgorCisgICAgICAgICogTW9kdWxl
cy9nZW9sb2NhdGlvbjogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZp
Z2F0b3JHZW9sb2NhdGlvbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6TmF2aWdhdG9yR2VvbG9jYXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdG9yR2VvbG9jYXRpb246On5OYXZpZ2F0b3JHZW9sb2Nh
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6cGFnZURlc3Ry
b3llZCk6CisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6ZnJvbSk6Cisg
ICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6Z2VvbG9jYXRpb24pOgorICAg
ICAgICAqIE1vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKE5hdmlnYXRvckdlb2xvY2F0aW9uKToKKyAg
ICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmlkbDogQWRk
ZWQuCisgICAgICAgICAgICAtIEkndmUgdGVtcG9yYXJpbHkgZGlzYWJsZWQgdGhpcyBBUEkgZm9y
IEdPYmplY3QgYmVjYXVzZSBpdCBnZW5lcmF0ZXMKKyAgICAgICAgICAgICAgYSBzdHJhbmdlIGNv
bXBpbGUgZXJyb3IuICBPbmNlIEkgbGFuZCB0aGlzIHBhdGNoLCBJJ2xsIHNwZW5kIHNvbWUKKyAg
ICAgICAgICAgICAgbW9yZSB0aW1lIGZpeGluZyB0aGUgY29tcGlsZSBlcnJvci4KKyAgICAgICAg
KiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwYWdl
L0RPTVdpbmRvdy5oOgorICAgICAgICAoRE9NV2luZG93KToKKyAgICAgICAgKiBwYWdlL0ZyYW1l
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpwYWdlRGVzdHJveWVkKToKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lOjp0cmFuc2ZlckNoaWxkRnJhbWVUb05ld0RvY3VtZW50KToKKyAgICAg
ICAgKiBwYWdlL0ZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXI6OnBhZ2VEZXN0cm95ZWQpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgICogcGFnZS9GcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuaDoKKyAgICAg
ICAgKEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlcik6CisgICAgICAgICogcGFnZS9OYXZpZ2F0b3Iu
Y3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGFnZS9OYXZpZ2F0b3IuaDoKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoTmF2aWdhdG9yKToKKyAgICAgICAgKiBwYWdlL05h
dmlnYXRvci5pZGw6CisKIDIwMTItMDItMjEgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBh
cHBsZS5jb20+CiAKICAgICAgICAgU2V0IFJlZmVycmVyIGhlYWRlciBmb3IgbWVkaWEgZG93bmxv
YWRzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMTA4Mzg5KQorKysgU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw2IEBACiBT
RVQoV2ViQ29yZV9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCQ09SRV9ESVJ9IgorICAg
ICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL2dlb2xvY2F0aW9uIgogICAgICIke1dFQkNPUkVfRElS
fS9hY2Nlc3NpYmlsaXR5IgogICAgICIke1dFQkNPUkVfRElSfS9iaW5kaW5ncyIKICAgICAiJHtX
RUJDT1JFX0RJUn0vYmluZGluZ3MvZ2VuZXJpYyIKQEAgLTg3LDYgKzg4LDcgQEAgU0VUKFdlYkNv
cmVfSU5DTFVERV9ESVJFQ1RPUklFUwogKQogCiBTRVQoV2ViQ29yZV9JRExfSU5DTFVERVMKKyAg
ICBNb2R1bGVzL2dlb2xvY2F0aW9uCiAgICAgYmluZGluZ3MvZ2VuZXJpYwogICAgIGNzcwogICAg
IGRvbQpAQCAtMTA1LDYgKzEwNyw4IEBAIFNFVChXZWJDb3JlX0lETF9JTkNMVURFUwogKQogCiBT
RVQoV2ViQ29yZV9JRExfRklMRVMKKyAgICBNb2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdl
b2xvY2F0aW9uLmlkbAorCiAgICAgY3NzL0NvdW50ZXIuaWRsCiAgICAgY3NzL0NTU0NoYXJzZXRS
dWxlLmlkbAogICAgIGNzcy9DU1NGb250RmFjZVJ1bGUuaWRsCkBAIC00MDAsNiArNDA0LDggQEAg
U0VUKFdlYkNvcmVfSURMX0ZJTEVTCiApCiAKIFNFVChXZWJDb3JlX1NPVVJDRVMKKyAgICBNb2R1
bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmNwcAorCiAgICAgYWNjZXNzaWJp
bGl0eS9BWE9iamVjdENhY2hlLmNwcAogICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFS
SUFHcmlkLmNwcAogICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5j
cHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gMTA4Mzg5KQor
KysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAt
MjgsNiArMjgsNyBAQAogCiBWUEFUSCA9IFwKICAgICAkKFdlYkNvcmUpIFwKKyAgICAkKFdlYkNv
cmUpL01vZHVsZXMvZ2VvbG9jYXRpb24gXAogICAgICQoV2ViQ29yZSkvYmluZGluZ3MvZ2VuZXJp
YyBcCiAgICAgJChXZWJDb3JlKS9iaW5kaW5ncy9qcyBcCiAgICAgJChXZWJDb3JlKS9iaW5kaW5n
cy9vYmpjIFwKQEAgLTUzLDYgKzU0LDcgQEAgVlBBVEggPSBcCiAjCiAKIEJJTkRJTkdfSURMUyA9
IFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRp
b24uaWRsIFwKICAgICAkKFdlYkNvcmUpL2Nzcy9DU1NDaGFyc2V0UnVsZS5pZGwgXAogICAgICQo
V2ViQ29yZSkvY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGwgXAogICAgICQoV2ViQ29yZSkvY3NzL0NT
U0ltcG9ydFJ1bGUuaWRsIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnBy
aQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkJKHJldmlz
aW9uIDEwODM4OSkKKysrIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQkod29ya2lu
ZyBjb3B5KQpAQCAtODYsNiArODYsNyBAQCBTVFlMRVNIRUVUU19FTUJFRCA9IFwKICAgICAkJFBX
RC9jc3MvbW9iaWxlVGhlbWVRdC5jc3MKIAogSURMX0JJTkRJTkdTICs9IFwKKyAgICAkJFBXRC9N
b2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmlkbCBcCiAgICAgJCRQV0Qv
Y3NzL0NvdW50ZXIuaWRsIFwKICAgICAkJFBXRC9jc3MvQ1NTQ2hhcnNldFJ1bGUuaWRsIFwKICAg
ICAkJFBXRC9jc3MvQ1NTRm9udEZhY2VSdWxlLmlkbCBcCkBAIC02ODIsNiArNjgzLDcgQEAgZWxz
ZTogZ2VuZXJhdG9yID0gSlMKIGdlbmVyYXRlQmluZGluZ3MuY29tbWFuZHMgPSBwZXJsIC1JJCRQ
V0QvYmluZGluZ3Mvc2NyaXB0cyAkJGdlbmVyYXRlQmluZGluZ3Muc2NyaXB0IFwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAtLWRlZmluZXMgXCIkJHtGRUFUVVJFX0RFRklORVNfSkFWQVND
UklQVH1cIiBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS1nZW5lcmF0b3IgJCRnZW5l
cmF0b3IgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0taW5jbHVkZSAkJFBXRC9Nb2R1
bGVzL2dlb2xvY2F0aW9uIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLWluY2x1ZGUg
JCRQV0QvZG9tIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLWluY2x1ZGUgJCRQV0Qv
ZmlsZWFwaSBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS1pbmNsdWRlICQkUFdEL2h0
bWwgXApJbmRleDogU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHJldmlzaW9uIDEwODM4OSkKKysrIFNvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0xMSw2ICsxMSw3IEBA
IHdlYmNvcmVfY3BwZmxhZ3MgKz0gXAogCS1JJChzcmNkaXIpL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL2luY2x1ZGUgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2luY2x1
ZGUvR0xTTEFORyBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUgXAorCS1JJChzcmNkaXIp
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24gXAogCS1JJChzcmNkaXIpL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljIFwK
QEAgLTc1OCw2ICs3NTksNyBAQCBEZXJpdmVkU291cmNlcy9BTkdMRS9nbHNsYW5nX3RhYi5jcHA6
IFNvCiBEZXJpdmVkU291cmNlcy9BTkdMRS9nbHNsYW5nX3RhYi5oOiBEZXJpdmVkU291cmNlcy9B
TkdMRS9nbHNsYW5nX3RhYi5jcHAKIAogSURMX1BBVEggOj0gXAorICAgICQoV2ViQ29yZSkvTW9k
dWxlcy9nZW9sb2NhdGlvbiBcCiAgICAgJChXZWJDb3JlKS9iaW5kaW5ncy9qcyBcCiAgICAgJChX
ZWJDb3JlKS9jc3MgXAogICAgICQoV2ViQ29yZSkvZG9tIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvR05VbWFr
ZWZpbGUubGlzdC5hbQkocmV2aXNpb24gMTA4Mzg5KQorKysgU291cmNlL1dlYkNvcmUvR05VbWFr
ZWZpbGUubGlzdC5hbQkod29ya2luZyBjb3B5KQpAQCAtNjUwLDYgKzY1MCw3IEBAIHdlYmNvcmVf
YnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9YUGF0aEdyYW1tYXIu
aAogCiBkb21fYmluZGluZ19pZGxzICs9IFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvZ2VvbG9jYXRp
b24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaWRsIFwKIAkkKFdlYkNvcmUpL2Nzcy9DU1NDaGFyc2V0
UnVsZS5pZGwgXAogCSQoV2ViQ29yZSkvY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGwgXAogCSQoV2Vi
Q29yZSkvY3NzL0NTU0ltcG9ydFJ1bGUuaWRsIFwKQEAgLTk1MSw2ICs5NTIsOCBAQCBkb21fYmlu
ZGluZ19pZGxzICs9IFwKIAkkKFdlYkNvcmUpL3htbC9YU0xUUHJvY2Vzc29yLmlkbAogCiB3ZWJj
b3JlX3NvdXJjZXMgKz0gXAorCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vTmF2
aWdhdG9yR2VvbG9jYXRpb24uY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0
aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmggXAogCVNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZC5jcHAgXApJbmRleDogU291cmNlL1dl
YkNvcmUvVGFyZ2V0LnByaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJp
CShyZXZpc2lvbiAxMDgzODkpCisrKyBTb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCSh3b3JraW5n
IGNvcHkpCkBAIC0zNCw2ICszNCw4IEBAIGluY2x1ZGVfd2ViaW5zcGVjdG9yIHsKIH0KIAogU09V
UkNFUyArPSBcCisgICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5j
cHAgXAorICAgIFwKICAgICBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlJbWFnZU1hcExpbmsu
Y3BwIFwKICAgICBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzLmNwcCBc
CiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3QuY3BwIFwKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluCShyZXZpc2lvbiAxMDgzODkpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbgkod29ya2luZyBjb3B5KQpAQCAtNjcyLDYgKzY3Miw3IEBAIF9fWk43V2ViQ29y
ZTI0RnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyRDIKIF9fWk43V2ViQ29yZTI0RnJhbWVEZXN0cnVj
dGlvbk9ic2VydmVyQzJFUE5TXzVGcmFtZUUKIF9fWk43V2ViQ29yZTI0RnJhbWVEZXN0cnVjdGlv
bk9ic2VydmVyMTJvYnNlcnZlRnJhbWVFUE5TXzVGcmFtZUUKIF9fWk43V2ViQ29yZTI0RnJhbWVE
ZXN0cnVjdGlvbk9ic2VydmVyMTRmcmFtZURlc3Ryb3llZEV2CitfX1pON1dlYkNvcmUyNEZyYW1l
RGVzdHJ1Y3Rpb25PYnNlcnZlcjE0d2lsbERldGFjaFBhZ2VFdgogX19aTjdXZWJDb3JlMjRrZXlJ
ZGVudGlmaWVyRm9yS2V5RXZlbnRFUDdOU0V2ZW50CiBfX1pON1dlYkNvcmUyNG5vdGlmeUhpc3Rv
cnlJdGVtQ2hhbmdlZEUKIF9fWk43V2ViQ29yZTI1SGlzdG9yeVByb3BlcnR5TGlzdFdyaXRlcjEx
cmVsZWFzZURhdGFFdgpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNpb24gMTA4Mzg5KQorKysg
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC03MjAsNiArNzIw
LDcgQEAKICAgICAgICAgICAgICdNb2R1bGVzL2dhbWVwYWQvR2FtZXBhZC5pZGwnLAogICAgICAg
ICAgICAgJ01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkTGlzdC5pZGwnLAogICAgICAgICAgICAgJ01v
ZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0b3JHYW1lcGFkLmlkbCcsCisgICAgICAgICAgICAnTW9kdWxl
cy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5pZGwnLAogICAgICAgICAgICAgJ01v
ZHVsZXMvaW5kZXhlZGRiL0RPTVdpbmRvd0luZGV4ZWREYXRhYmFzZS5pZGwnLAogICAgICAgICAg
ICAgJ01vZHVsZXMvaW50ZW50cy9ET01XaW5kb3dJbnRlbnRzLmlkbCcsCiAgICAgICAgICAgICAn
TW9kdWxlcy9pbnRlbnRzL0ludGVudC5pZGwnLApAQCAtMTI3Nyw2ICsxMjc4LDggQEAKICAgICAg
ICAgICAgICdNb2R1bGVzL2dhbWVwYWQvR2FtZXBhZExpc3QuaCcsCiAgICAgICAgICAgICAnTW9k
dWxlcy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQuY3BwJywKICAgICAgICAgICAgICdNb2R1bGVz
L2dhbWVwYWQvTmF2aWdhdG9yR2FtZXBhZC5oJywKKyAgICAgICAgICAgICdNb2R1bGVzL2dlb2xv
Y2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmNwcCcsCisgICAgICAgICAgICAnTW9kdWxlcy9n
ZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5oJywKICAgICAgICAgICAgICdNb2R1bGVz
L2luZGV4ZWRkYi9ET01XaW5kb3dJbmRleGVkRGF0YWJhc2UuY3BwJywKICAgICAgICAgICAgICdN
b2R1bGVzL2luZGV4ZWRkYi9ET01XaW5kb3dJbmRleGVkRGF0YWJhc2UuaCcsCiAgICAgICAgICAg
ICAnTW9kdWxlcy9pbnRlbnRzL0ludGVudC5jcHAnLApJbmRleDogU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5wcmkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkJKHJldmlz
aW9uIDEwODM4OSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJpCSh3b3JraW5nIGNvcHkp
CkBAIC0xOCw2ICsxOCw3IEBAIFdFQkNPUkVfR0VORVJBVEVEX1NPVVJDRVNfRElSID0gJCR7Uk9P
VF8KIAogSU5DTFVERVBBVEggKz0gXAogICAgICQkU09VUkNFX0RJUiBcCisgICAgJCRTT1VSQ0Vf
RElSL01vZHVsZXMvZ2VvbG9jYXRpb24gXAogICAgICQkU09VUkNFX0RJUi9hY2Nlc3NpYmlsaXR5
IFwKICAgICAkJFNPVVJDRV9ESVIvYmluZGluZ3MgXAogICAgICQkU09VUkNFX0RJUi9iaW5kaW5n
cy9nZW5lcmljIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vTmF2
aWdhdG9yR2VvbG9jYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uY3BwCShyZXZpc2lvbiAwKQorKysg
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5j
cHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKyAq
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAqIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSAorICogREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJOYXZpZ2F0b3JHZW9sb2NhdGlvbi5oIgorCisjaW5jbHVk
ZSAiR2VvbG9jYXRpb24uaCIKKyNpbmNsdWRlICJOYXZpZ2F0b3IuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6TmF2aWdhdG9yR2VvbG9jYXRpb24oRnJh
bWUqIGZyYW1lKQorICAgIDogRE9NV2luZG93UHJvcGVydHkoZnJhbWUpCit7Cit9CisKK05hdmln
YXRvckdlb2xvY2F0aW9uOjp+TmF2aWdhdG9yR2VvbG9jYXRpb24oKQoreworfQorCit2b2lkIE5h
dmlnYXRvckdlb2xvY2F0aW9uOjp3aWxsRGV0YWNoUGFnZSgpCit7CisgICAgLy8gRklYTUU6IFdl
IHNob3VsZCBpZGVhbGx5IGFsbG93IGV4aXN0aW5nIEdlb2xvY2F0aW9uIGFjdGl2aXRpZXMgdG8g
Y29udGludWUKKyAgICAvLyB3aGVuIHRoZSBHZW9sb2NhdGlvbidzIGlmcmFtZSBpcyByZXBhcmVu
dGVkLiAoQXNzdW1pbmcgd2UgY29udGludWUgdG8KKyAgICAvLyBzdXBwb3J0IHJlcGFyZW50aW5n
IGlmcmFtZXMuKQorICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTU1NzcKKyAgICAvLyBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTUyODc3CisgICAgaWYgKG1fZ2VvbG9jYXRpb24pCisgICAgICAgIG1fZ2VvbG9jYXRp
b24tPnJlc2V0KCk7Cit9CisKK05hdmlnYXRvckdlb2xvY2F0aW9uKiBOYXZpZ2F0b3JHZW9sb2Nh
dGlvbjo6ZnJvbShOYXZpZ2F0b3IqIG5hdmlnYXRvcikKK3sKKyAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJOYXZpZ2F0b3JHZW9sb2NhdGlvbiIpKTsKKyAgICBO
YXZpZ2F0b3JHZW9sb2NhdGlvbiogc3VwcGxlbWVudCA9IHN0YXRpY19jYXN0PE5hdmlnYXRvckdl
b2xvY2F0aW9uKj4oTmF2aWdhdG9yU3VwcGxlbWVudDo6ZnJvbShuYXZpZ2F0b3IsIG5hbWUpKTsK
KyAgICBpZiAoIXN1cHBsZW1lbnQpIHsKKyAgICAgICAgc3VwcGxlbWVudCA9IG5ldyBOYXZpZ2F0
b3JHZW9sb2NhdGlvbihuYXZpZ2F0b3ItPmZyYW1lKCkpOworICAgICAgICBwcm92aWRlVG8obmF2
aWdhdG9yLCBuYW1lLCBhZG9wdFB0cihzdXBwbGVtZW50KSk7CisgICAgfQorICAgIHJldHVybiBz
dXBwbGVtZW50OworfQorCitHZW9sb2NhdGlvbiogTmF2aWdhdG9yR2VvbG9jYXRpb246Omdlb2xv
Y2F0aW9uKE5hdmlnYXRvciogbmF2aWdhdG9yKQoreworICAgIHJldHVybiBOYXZpZ2F0b3JHZW9s
b2NhdGlvbjo6ZnJvbShuYXZpZ2F0b3IpLT5nZW9sb2NhdGlvbigpOworfQorCitHZW9sb2NhdGlv
biogTmF2aWdhdG9yR2VvbG9jYXRpb246Omdlb2xvY2F0aW9uKCkgY29uc3QKK3sKKyAgICBpZiAo
IW1fZ2VvbG9jYXRpb24pCisgICAgICAgIG1fZ2VvbG9jYXRpb24gPSBHZW9sb2NhdGlvbjo6Y3Jl
YXRlKGZyYW1lKCkpOworICAgIHJldHVybiBtX2dlb2xvY2F0aW9uLmdldCgpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0
aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5oCShyZXZpc2lvbiAwKQor
KysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlv
bi5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDExLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisg
KiBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gKKyAqIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IE5hdmlnYXRvckdlb2xvY2F0aW9uX2gKKyNkZWZpbmUgTmF2aWdhdG9yR2VvbG9jYXRpb25faAor
CisjaW5jbHVkZSAiRE9NV2luZG93UHJvcGVydHkuaCIKKyNpbmNsdWRlICJOYXZpZ2F0b3JTdXBw
bGVtZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRnJhbWU7CitjbGFzcyBH
ZW9sb2NhdGlvbjsKK2NsYXNzIE5hdmlnYXRvcjsKKworY2xhc3MgTmF2aWdhdG9yR2VvbG9jYXRp
b24gOiBwdWJsaWMgTmF2aWdhdG9yU3VwcGxlbWVudCwgcHVibGljIERPTVdpbmRvd1Byb3BlcnR5
IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5OYXZpZ2F0b3JHZW9sb2NhdGlvbigpOworICAgIHN0
YXRpYyBOYXZpZ2F0b3JHZW9sb2NhdGlvbiogZnJvbShOYXZpZ2F0b3IqKTsKKworICAgIHN0YXRp
YyBHZW9sb2NhdGlvbiogZ2VvbG9jYXRpb24oTmF2aWdhdG9yKik7CisgICAgR2VvbG9jYXRpb24q
IGdlb2xvY2F0aW9uKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgTmF2aWdhdG9yR2VvbG9jYXRp
b24oRnJhbWUqKTsKKworICAgIHZpcnR1YWwgdm9pZCB3aWxsRGV0YWNoUGFnZSgpIE9WRVJSSURF
OworCisgICAgbXV0YWJsZSBSZWZQdHI8R2VvbG9jYXRpb24+IG1fZ2VvbG9jYXRpb247Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBOYXZpZ2F0b3JHZW9sb2NhdGlv
bl9oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdl
b2xvY2F0aW9uLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmlkbAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaWRsCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENP
UFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKK21vZHVsZSB3aW5kb3cgeworCisgICAgaW50ZXJm
YWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9R0VPTE9DQVRJT04sCisgICAgICAgIFN1cHBsZW1l
bnRhbD1OYXZpZ2F0b3IKKyAgICBdIE5hdmlnYXRvckdlb2xvY2F0aW9uIHsKKyNpZiAhZGVmaW5l
ZChMQU5HVUFHRV9HT0JKRUNUKSB8fCAhTEFOR1VBR0VfR09CSkVDVAorCQkvLyBGSVhNRTogRW5h
YmxlIHRoaXMgaW50ZXJmYWNlIGZvciBHT0JKRUNULgorICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgW1Y4RW5hYmxlZEF0UnVudGltZV0gR2VvbG9jYXRpb24gZ2VvbG9jYXRpb247CisjZW5kaWYK
KyAgICB9OworCit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAko
cmV2aXNpb24gMTA4Mzg5KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5n
eXAJKHdvcmtpbmcgY29weSkKQEAgLTUyLDYgKzUyLDcgQEAKICAgICAgICcuLi8nLAogICAgICAg
Jy4uLy4uJywKICAgICAgICcuLi9Nb2R1bGVzL2dhbWVwYWQnLAorICAgICAgJy4uL01vZHVsZXMv
Z2VvbG9jYXRpb24nLAogICAgICAgJy4uL01vZHVsZXMvaW50ZW50cycsCiAgICAgICAnLi4vTW9k
dWxlcy9pbmRleGVkZGInLAogICAgICAgJy4uL2FjY2Vzc2liaWxpdHknLApJbmRleDogU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHJldmlzaW9uIDEwODM4
OSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNDA1MSw2ICsyNDA1MSwyMiBAQAogCQkJPC9GaWxlPgogCQk8L0ZpbHRl
cj4KIAkJPEZpbHRlcgorCQkJTmFtZT0iTW9kdWxlcyIKKwkJCT4KKwkJCTxGaWx0ZXIKKwkJCQlO
YW1lPSJnZW9sb2NhdGlvbiIKKwkJCQk+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxNb2R1bGVzXGdlb2xvY2F0aW9uXE5hdmlnYXRvckdlb2xvY2F0aW9uLmNwcCIKKwkJCQkJPgor
CQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcZ2Vv
bG9jYXRpb25cTmF2aWdhdG9yR2VvbG9jYXRpb24uaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJ
CTwvRmlsdGVyPgorCQk8L0ZpbHRlcj4KKwkJPEZpbHRlcgogCQkJTmFtZT0iYWNjZXNzaWJpbGl0
eSIKIAkJCT4KIAkJCTxGaWxlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlQ29tbW9uLnZzcHJvcHMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZUNvbW1vbi52c3Byb3BzCShyZXZpc2lvbiAxMDgzODkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlQ29tbW9uLnZzcHJvcHMJKHdvcmtpbmcg
Y29weSkKQEAgLTcsNyArNyw3IEBACiAJPgogCTxUb29sCiAJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiCi0JCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiZxdW90OyQoUHJvamVjdERpciku
LiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYWNjZXNzaWJpbGl0eSZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5cYWNjZXNzaWJpbGl0eVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXGJyaWRnZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYnJpZGdlXGMmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXGJyaWRnZVxqc2MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4u
XGNzcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cZWRpdGluZyZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpLi5cZmlsZWFwaSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccmVuZGVyaW5n
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxyZW5kZXJpbmdcbWF0aG1sJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcikuLlxyZW5kZXJpbmdcc3R5bGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXHJlbmRlcmluZ1xzdmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJpbmRpbmdzJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxiaW5kaW5nc1xnZW5lcmljJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcikuLlxiaW5kaW5nc1xqcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYmlu
ZGluZ3NcanNcc3BlY2lhbGl6YXRpb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGRvbSZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cZG9tXGRlZmF1bHQmcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKS4uXGhpc3RvcnkmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGh0bWwmcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGh0bWxcY2FudmFzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cikuLlxodG1sXHBhcnNlciZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5caHRtbFxzaGFkb3cm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGluc3BlY3RvciZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5cbG9hZGVyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxsb2FkZXJcYXBwY2Fj
aGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGxvYWRlclxhcmNoaXZlJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcikuLlxsb2FkZXJcYXJjaGl2ZVxjZiZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpLi5cbG9hZGVyXGNhY2hlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxsb2FkZXJcaWNv
biZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbWF0aG1sJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcikuLlxub3RpZmljYXRpb25zJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwYWdlJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwYWdlXGFuaW1hdGlvbiZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpLi5ccGFnZVxzY3JvbGxpbmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBh
Z2Vcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybSZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5ccGxhdGZvcm1cYW5pbWF0aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cikuLlxwbGF0Zm9ybVxtb2NrJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxz
cWwmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXHdpbiZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5ccGxhdGZvcm1cbmV0d29yayZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
Li5ccGxhdGZvcm1cbmV0d29ya1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRm
b3JtXGNmJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljcyZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3NcY2EmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzXGZpbHRlcnMmcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzXGZpbHRlcnNcYXJtJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1xvcGVudHlwZSZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3NcdHJhbnNmb3JtcyZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpLi5ccGxhdGZvcm1cdGV4dCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxh
dGZvcm1cdGV4dFx0cmFuc2NvZGVyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9y
bVxncmFwaGljc1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHhtbCZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpLi5ceG1sXHBhcnNlciZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25C
dWlsZERpcilcb2JqXFdlYkNvcmVcRGVyaXZlZFNvdXJjZXMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKS4uXHBsdWdpbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsdWdpbnNcd2luJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxzdmdcYW5pbWF0aW9uJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxzdmdcZ3JhcGhpY3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2Z1xw
cm9wZXJ0aWVzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxzdmdcZ3JhcGhpY3NcZmlsdGVy
cyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cc3ZnJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cikuLlx0ZXN0aW5nJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlx3bWwmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKS4uXHN0b3JhZ2UmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHdlYnNv
Y2tldHMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHdvcmtlcnMmcXVvdDs7JnF1b3Q7JChD
b25maWd1cmF0aW9uQnVpbGREaXIpXGluY2x1ZGUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9u
QnVpbGREaXIpXGluY2x1ZGVccHJpdmF0ZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWls
ZERpcilcaW5jbHVkZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25C
dWlsZERpcilcaW5jbHVkZVxwcml2YXRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxGb3J3YXJkaW5nSGVhZGVycyZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmll
c0RpcilcaW5jbHVkZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZVxw
cml2YXRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXHByaXZhdGVc
SmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVc
cHRocmVhZHMmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVcc3FsaXRl
JnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXEphdmFTY3JpcHRDb3Jl
JnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXHpsaWImcXVvdDsiCisJ
CUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiZxdW90OyQoUHJvamVjdERpcikuLiZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpLi5cTW9kdWxlc1xnZW9sb2NhdGlvbiZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5cYWNjZXNzaWJpbGl0eSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5c
YWNjZXNzaWJpbGl0eVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJyaWRnZSZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpLi5cYnJpZGdlXGMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXGJyaWRnZVxqc2MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGNzcyZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpLi5cZWRpdGluZyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cZmls
ZWFwaSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccmVuZGVyaW5nJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcikuLlxyZW5kZXJpbmdcbWF0aG1sJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpciku
LlxyZW5kZXJpbmdcc3R5bGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHJlbmRlcmluZ1xz
dmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJpbmRpbmdzJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxiaW5kaW5nc1xnZW5lcmljJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxi
aW5kaW5nc1xqcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYmluZGluZ3NcanNcc3BlY2lh
bGl6YXRpb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGRvbSZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpLi5cZG9tXGRlZmF1bHQmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGhpc3Rv
cnkmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGh0bWwmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKS4uXGh0bWxcY2FudmFzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxodG1sXHBhcnNl
ciZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5caHRtbFxzaGFkb3cmcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKS4uXGluc3BlY3RvciZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbG9hZGVy
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxsb2FkZXJcYXBwY2FjaGUmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKS4uXGxvYWRlclxhcmNoaXZlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpciku
Llxsb2FkZXJcYXJjaGl2ZVxjZiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbG9hZGVyXGNh
Y2hlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxsb2FkZXJcaWNvbiZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5cbWF0aG1sJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxub3RpZmlj
YXRpb25zJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwYWdlJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxwYWdlXGFuaW1hdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGFn
ZVxzY3JvbGxpbmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBhZ2Vcd2luJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5c
cGxhdGZvcm1cYW5pbWF0aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxt
b2NrJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxzcWwmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5c
cGxhdGZvcm1cbmV0d29yayZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cbmV0
d29ya1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGNmJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljcyZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3NcY2EmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4u
XHBsYXRmb3JtXGdyYXBoaWNzXGZpbHRlcnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBs
YXRmb3JtXGdyYXBoaWNzXGZpbHRlcnNcYXJtJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxw
bGF0Zm9ybVxncmFwaGljc1xvcGVudHlwZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxh
dGZvcm1cZ3JhcGhpY3NcdHJhbnNmb3JtcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxh
dGZvcm1cdGV4dCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cdGV4dFx0cmFu
c2NvZGVyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1x3aW4m
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHhtbCZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
Li5ceG1sXHBhcnNlciZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXFdl
YkNvcmVcRGVyaXZlZFNvdXJjZXMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsdWdpbnMm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsdWdpbnNcd2luJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxzdmdcYW5pbWF0aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxzdmdc
Z3JhcGhpY3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2Z1xwcm9wZXJ0aWVzJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcikuLlxzdmdcZ3JhcGhpY3NcZmlsdGVycyZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5cc3ZnJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlx0ZXN0aW5nJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlx3bWwmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4u
XHN0b3JhZ2UmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHdlYnNvY2tldHMmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXHdvcmtlcnMmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVp
bGREaXIpXGluY2x1ZGUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXGluY2x1
ZGVccHJpdmF0ZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcaW5jbHVkZVxK
YXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcaW5jbHVk
ZVxwcml2YXRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxGb3J3
YXJkaW5nSGVhZGVycyZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZSZx
dW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZx
dW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXHByaXZhdGVcSmF2YVNjcmlwdENvcmUm
cXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVccHRocmVhZHMmcXVvdDs7
JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVcc3FsaXRlJnF1b3Q7OyZxdW90OyQo
V2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQo
V2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXHpsaWImcXVvdDsiCiAJCVByZXByb2Nlc3NvckRl
ZmluaXRpb25zPSJfX1dJTjMyX187RElTQUJMRV8zRF9SRU5ERVJJTkc7V0VCQ09SRV9DT05URVhU
X01FTlVTIgogCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMiIKIAkJUHJlY29tcGlsZWRIZWFkZXJU
aHJvdWdoPSJXZWJDb3JlUHJlZml4LmgiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxMDgzODkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29w
eSkKQEAgLTMzMjMsNiArMzMyMyw4IEBACiAJCTk3MDU5OTdBMTA3RDk3NTIwMEE1MEE3QyAvKiBQ
b2xpY3lDaGVja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5NzA1OTk3NjEwN0Q5NzUyMDBBNTBBN0MgLyogUG9saWN5Q2hlY2tlci5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk3MEI3MjhBMTQ0RkZB
QzYwMEYwMEEzNyAvKiBFdmVudEludGVyZmFjZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MEI3Mjg5MTQ0RkZBQzYwMEYwMEEzNyAvKiBFdmVudElu
dGVyZmFjZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk5NzBCNzJBNjE0NTAwOEVCMDBGMDBBMzcgLyogRXZlbnRIZWFkZXJzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzBCNzJBNTE0NTAwOEVCMDBG
MDBBMzcgLyogRXZlbnRIZWFkZXJzLmggKi87IH07CisJCTk3MTE0NjAzMTRFRjAwOUEwMDY3NEZE
OSAvKiBOYXZpZ2F0b3JHZW9sb2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5NzExNDYwMDE0RUYwMDlBMDA2NzRGRDkgLyogTmF2aWdhdG9y
R2VvbG9jYXRpb24uY3BwICovOyB9OworCQk5NzExNDYwNDE0RUYwMDlBMDA2NzRGRDkgLyogTmF2
aWdhdG9yR2VvbG9jYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDk3MTE0NjAxMTRFRjAwOUEwMDY3NEZEOSAvKiBOYXZpZ2F0b3JHZW9sb2NhdGlv
bi5oICovOyB9OwogCQk5NzIwNUFBRjEyMzkyOENBMDBCMTczODAgLyogRlRQRGlyZWN0b3J5RG9j
dW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTcyMDVBQUQxMjM5MjhDQTAwQjE3MzgwIC8qIEZUUERpcmVjdG9yeURvY3VtZW50LmNwcCAqLzsg
fTsKIAkJOTcyMDVBQjAxMjM5MjhDQTAwQjE3MzgwIC8qIEZUUERpcmVjdG9yeURvY3VtZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzIwNUFBRTEy
MzkyOENBMDBCMTczODAgLyogRlRQRGlyZWN0b3J5RG9jdW1lbnQuaCAqLzsgfTsKIAkJOTcyMDVB
QjUxMjM5MjkxMDAwQjE3MzgwIC8qIEltYWdlRG9jdW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcyMDVBQjExMjM5MjkxMDAwQjE3MzgwIC8q
IEltYWdlRG9jdW1lbnQuY3BwICovOyB9OwpAQCAtMTAxODQsNiArMTAxODYsOSBAQAogCQk5NzA1
OTk3NjEwN0Q5NzUyMDBBNTBBN0MgLyogUG9saWN5Q2hlY2tlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBQb2xpY3lDaGVja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTk3MEI3Mjg5MTQ0RkZBQzYwMEYwMEEzNyAvKiBFdmVudEludGVyZmFjZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXZlbnRJbnRlcmZhY2VzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3MEI3MkE1MTQ1MDA4RUIwMEYwMEEzNyAvKiBFdmVudEhl
YWRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXZlbnRIZWFkZXJzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk3MTE0NjAwMTRFRjAwOUEwMDY3NEZEOSAv
KiBOYXZpZ2F0b3JHZW9sb2NhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBOYXZpZ2F0b3JHZW9sb2NhdGlvbi5jcHA7IHBhdGggPSBNb2R1bGVzL2dlb2xvY2F0
aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOTcxMTQ2MDExNEVGMDA5QTAwNjc0RkQ5IC8qIE5hdmlnYXRvckdlb2xvY2F0aW9uLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE5hdmlnYXRvckdlb2xvY2F0aW9uLmg7IHBh
dGggPSBNb2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTk3MTE0NjAyMTRFRjAwOUEwMDY3NEZEOSAvKiBOYXZpZ2F0
b3JHZW9sb2NhdGlvbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gTmF2aWdhdG9yR2VvbG9j
YXRpb24uaWRsOyBwYXRoID0gTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlv
bi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3MjA1QUFEMTIzOTI4Q0EwMEIx
NzM4MCAvKiBGVFBEaXJlY3RvcnlEb2N1bWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBGVFBEaXJlY3RvcnlEb2N1bWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTk3MjA1QUFFMTIzOTI4Q0EwMEIxNzM4MCAvKiBGVFBEaXJlY3RvcnlEb2N1
bWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGVFBEaXJlY3RvcnlEb2N1
bWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzIwNUFCMTEyMzkyOTEwMDBC
MTczODAgLyogSW1hZ2VEb2N1bWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBJbWFnZURvY3VtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTEzNDU3LDYgKzEzNDYyLDcgQEAKIAkJCQlFREVDOTgwMjBBRUQ3RTE3MDA1OTEzN0YgLyogV2Vi
Q29yZVByZWZpeC5oICovLAogCQkJCTkzMDcwNjEzMDlFMENBODIwMEIxN0ZFNCAvKiBEZXJpdmVk
U291cmNlcy5tYWtlICovLAogCQkJCTkzRjE5QjE5MDgyNDVFNTkwMDFFOUFCQyAvKiBJbmZvLnBs
aXN0ICovLAorCQkJCTk3MTE0NUZFMTRFRjAwNkUwMDY3NEZEOSAvKiBNb2R1bGVzICovLAogCQkJ
CTI5QTgxMjA0MEZCQjlCNDEwMDUxMDI5MyAvKiBhY2Nlc3NpYmlsaXR5ICovLAogCQkJCUJDMUEz
NzkwMDk3QzZGOTcwMDE5RjNEOCAvKiBiaW5kaW5ncyAqLywKIAkJCQkxQTU2OUNDNDBEN0UyQjYw
MDA3QzM5ODMgLyogYnJpZGdlICovLApAQCAtMTcwNzUsNiArMTcwODEsMjQgQEAKIAkJCXRhYldp
ZHRoID0gNDsKIAkJCXVzZXNUYWJzID0gMDsKIAkJfTsKKwkJOTcxMTQ1RkUxNEVGMDA2RTAwNjc0
RkQ5IC8qIE1vZHVsZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0g
KAorCQkJCTk3MTE0NUZGMTRFRjAwNzkwMDY3NEZEOSAvKiBnZW9sb2NhdGlvbiAqLywKKwkJCSk7
CisJCQluYW1lID0gTW9kdWxlczsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CisJ
CTk3MTE0NUZGMTRFRjAwNzkwMDY3NEZEOSAvKiBnZW9sb2NhdGlvbiAqLyA9IHsKKwkJCWlzYSA9
IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJOTcxMTQ2MDAxNEVGMDA5QTAwNjc0RkQ5
IC8qIE5hdmlnYXRvckdlb2xvY2F0aW9uLmNwcCAqLywKKwkJCQk5NzExNDYwMTE0RUYwMDlBMDA2
NzRGRDkgLyogTmF2aWdhdG9yR2VvbG9jYXRpb24uaCAqLywKKwkJCQk5NzExNDYwMjE0RUYwMDlB
MDA2NzRGRDkgLyogTmF2aWdhdG9yR2VvbG9jYXRpb24uaWRsICovLAorCQkJKTsKKwkJCW5hbWUg
PSBnZW9sb2NhdGlvbjsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTk3NkQ2
QzU3MTIyQjhBMTgwMDFGRDFGNyAvKiBmaWxlYXBpICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7
CiAJCQljaGlsZHJlbiA9ICgKQEAgLTIzMjgwLDYgKzIzMzA0LDcgQEAKIAkJCQk5NzlGNDNENDEw
NzVFNDRBMDAwMEY4M0IgLyogTmF2aWdhdGlvblNjaGVkdWxlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTlDNkU1QTYwRDc0NjQ1ODAwNjQ0MkU5IC8qIE5hdmlnYXRvci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRTEyNzE5QzcwRUVFQzE2ODAwRjYxMjEzIC8qIE5hdmlnYXRvckJhc2UuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTk3MTE0NjA0MTRFRjAwOUEwMDY3NEZEOSAvKiBOYXZpZ2F0b3JHZW9sb2Nh
dGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTdDQzNBRTMxNEU4RTRBMjAwODk0OTg4IC8qIE5h
dmlnYXRvclN1cHBsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCThBMzA5QzlGMTIzOTUwQkUw
MENCOTIwNCAvKiBOZXN0aW5nTGV2ZWxJbmNyZW1lbnRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NjU2RDM3NDMwQURCQTVERTAwQTQ1NTREIC8qIE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmgg
aW4gSGVhZGVycyAqLywKQEAgLTI2NDM0LDYgKzI2NDU5LDcgQEAKIAkJCQk5NzlGNDNEMzEwNzVF
NDRBMDAwMEY4M0IgLyogTmF2aWdhdGlvblNjaGVkdWxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBOUM2RTVBNTBENzQ2NDU4MDA2NDQyRTkgLyogTmF2aWdhdG9yLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUUxMjcxOUNBMEVFRUMyMTMwMEY2MTIxMyAvKiBOYXZpZ2F0b3JCYXNlLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTk3MTE0NjAzMTRFRjAwOUEwMDY3NEZEOSAvKiBOYXZpZ2F0b3JHZW9s
b2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5N0NDM0FFMjE0RThFNEEyMDA4OTQ5ODgg
LyogTmF2aWdhdG9yU3VwcGxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1RDg3NEYxMzBE
MTYxRDMyMDA3OTZDM0IgLyogTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNTlDMjdGMDUxMzhEMjhDMTAwNzlCN0UyIC8qIE5ldHdvcmtSZXNvdXJjZXNE
YXRhLmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCShyZXZpc2lvbiAxMDgz
ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2Jq
ZWN0LnBtCSh3b3JraW5nIGNvcHkpCkBAIC00MTgsNyArNDE4LDcgQEAgc3ViIEdlbmVyYXRlUHJv
cGVydHkgewogICAgICAgICBwdXNoKEB0eHRHZXRQcm9wcywgIiAgICAgICAgZ192YWx1ZV90YWtl
X3N0cmluZyh2YWx1ZSwgY29udmVydFRvVVRGOFN0cmluZygke2dldHRlckZ1bmN0aW9uTmFtZX0o
IiAuIGpvaW4oIiwgIiwgQGdldHRlckFyZ3VtZW50cykgLiAiKSkpO1xuIik7CiAgICAgICAgICRk
b25lID0gMTsKICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgIm9iamVjdCIpIHsKLSAgICAgICAgcHVz
aChAdHh0R2V0UHJvcHMsICIgICAgICAgIFJlZlB0cjxXZWJDb3JlOjoke3Byb3BUeXBlfT4gcHRy
ID0gY29yZVNlbGYtPiR7Z2V0UHJvcE5hbWVGdW5jdGlvbn0oIiAuIChAeyRhdHRyaWJ1dGUtPmdl
dHRlckV4Y2VwdGlvbnN9ID8gImVjIiA6ICIiKSAuICIpO1xuIik7CisgICAgICAgIHB1c2goQHR4
dEdldFByb3BzLCAiICAgICAgICBSZWZQdHI8V2ViQ29yZTo6JHtwcm9wVHlwZX0+IHB0ciA9ICR7
Z2V0dGVyRnVuY3Rpb25OYW1lfSgiIC4gam9pbigiLCAiLCBAZ2V0dGVyQXJndW1lbnRzKSAuICIp
O1xuIik7CiAgICAgICAgIHB1c2goQHR4dEdldFByb3BzLCAiICAgICAgICBnX3ZhbHVlX3NldF9v
YmplY3QodmFsdWUsIFdlYktpdDo6a2l0KHB0ci5nZXQoKSkpO1xuIik7CiAgICAgICAgICRkb25l
ID0gMTsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
VGVzdFN1cHBsZW1lbnRhbC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L1Rlc3RTdXBwbGVtZW50YWwuaWRsCShyZXZpc2lvbiAxMDgzODkpCisr
KyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdFN1cHBsZW1lbnRhbC5p
ZGwJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDcgQEAgbW9kdWxlIHRlc3QgewogICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHN1cHBsZW1lbnRhbFN0cjE7CiAgICAgICAg
IGF0dHJpYnV0ZSBET01TdHJpbmcgc3VwcGxlbWVudGFsU3RyMjsKICAgICAgICAgYXR0cmlidXRl
IFtDdXN0b21HZXR0ZXIsIEN1c3RvbVNldHRlcl0gRE9NU3RyaW5nIHN1cHBsZW1lbnRhbFN0cjM7
CisgICAgICAgIGF0dHJpYnV0ZSBOb2RlIHN1cHBsZW1lbnRhbE5vZGU7CiAKICAgICAgICAgdm9p
ZCBzdXBwbGVtZW50YWxNZXRob2QxKCk7CiAgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRp
b25Db250ZXh0XSBUZXN0T2JqIHN1cHBsZW1lbnRhbE1ldGhvZDIoaW4gRE9NU3RyaW5nIHN0ckFy
ZywgaW4gVGVzdE9iaiBvYmpBcmcpIHJhaXNlcyhET01FeGNlcHRpb24pOwpJbmRleDogU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0SW50ZXJmYWNlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQ
L1dlYkRPTVRlc3RJbnRlcmZhY2UuY3BwCShyZXZpc2lvbiAxMDgzODkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RJbnRlcmZhY2UuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yNCwxMiArMjQsMTEgQEAKIAogI2luY2x1ZGUgIldlYkRPTVRlc3RJ
bnRlcmZhY2UuaCIKIAotI2luY2x1ZGUgIktVUkwuaCIKKyNpbmNsdWRlICJHZW9sb2NhdGlvbi5o
IgogI2luY2x1ZGUgIlRlc3RJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJUZXN0U3VwcGxlbWVudGFs
LmgiCi0jaW5jbHVkZSAiV2ViRE9NU3RyaW5nLmgiCisjaW5jbHVkZSAiV2ViRE9NR2VvbG9jYXRp
b24uaCIKICNpbmNsdWRlICJXZWJFeGNlcHRpb25IYW5kbGVyLmgiCi0jaW5jbHVkZSAid3RmL3Rl
eHQvQXRvbWljU3RyaW5nLmgiCiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KIApAQCAtNzgsNDYgKzc3LDE2IEBAIFdlYkRPTVRlc3RJbnRlcmZhY2U6On5X
ZWJET01UZXN0SW50ZXJmYWMKICAgICBtX2ltcGwgPSAwOwogfQogCi0jaWYgRU5BQkxFKENvbmRp
dGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi1XZWJET01TdHJpbmcgV2ViRE9NVGVzdElu
dGVyZmFjZTo6c3VwcGxlbWVudGFsU3RyMSgpIGNvbnN0CisjaWYgRU5BQkxFKEdFT0xPQ0FUSU9O
KQorV2ViRE9NR2VvbG9jYXRpb24gV2ViRE9NVGVzdEludGVyZmFjZTo6Z2VvbG9jYXRpb24oKSBj
b25zdAogewogICAgIGlmICghaW1wbCgpKQotICAgICAgICByZXR1cm4gV2ViRE9NU3RyaW5nKCk7
CisgICAgICAgIHJldHVybiBXZWJET01HZW9sb2NhdGlvbigpOwogCi0gICAgcmV0dXJuIHN0YXRp
Y19jYXN0PGNvbnN0IFdURjo6U3RyaW5nJj4oVGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFs
U3RyMShpbXBsKCkpKTsKKyAgICByZXR1cm4gdG9XZWJLaXQoV1RGOjpnZXRQdHIoVGVzdFN1cHBs
ZW1lbnRhbDo6Z2VvbG9jYXRpb24oaW1wbCgpKSkpOwogfQogCiAjZW5kaWYKLSNpZiBFTkFCTEUo
Q29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLVdlYkRPTVN0cmluZyBXZWJET01U
ZXN0SW50ZXJmYWNlOjpzdXBwbGVtZW50YWxTdHIyKCkgY29uc3QKLXsKLSAgICBpZiAoIWltcGwo
KSkKLSAgICAgICAgcmV0dXJuIFdlYkRPTVN0cmluZygpOwotCi0gICAgcmV0dXJuIHN0YXRpY19j
YXN0PGNvbnN0IFdURjo6U3RyaW5nJj4oVGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsU3Ry
MihpbXBsKCkpKTsKLX0KLQotdm9pZCBXZWJET01UZXN0SW50ZXJmYWNlOjpzZXRTdXBwbGVtZW50
YWxTdHIyKGNvbnN0IFdlYkRPTVN0cmluZyYgbmV3U3VwcGxlbWVudGFsU3RyMikKLXsKLSAgICBp
ZiAoIWltcGwoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgVGVzdFN1cHBsZW1lbnRhbDo6c2V0
U3VwcGxlbWVudGFsU3RyMihpbXBsKCksIG5ld1N1cHBsZW1lbnRhbFN0cjIpOwotfQotCi0jZW5k
aWYKLQotI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQotdm9p
ZCBXZWJET01UZXN0SW50ZXJmYWNlOjpzdXBwbGVtZW50YWxNZXRob2QxKCkKLXsKLSAgICBpZiAo
IWltcGwoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgV2ViQ29yZTo6VGVzdFN1cHBsZW1lbnRh
bDo6c3VwcGxlbWVudGFsTWV0aG9kMShpbXBsKCkpOwotfQotCi0jZW5kaWYKLQogV2ViQ29yZTo6
VGVzdEludGVyZmFjZSogdG9XZWJDb3JlKGNvbnN0IFdlYkRPTVRlc3RJbnRlcmZhY2UmIHdyYXBw
ZXIpCiB7CiAgICAgcmV0dXJuIHdyYXBwZXIuaW1wbCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0SW50ZXJmYWNlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0
SW50ZXJmYWNlLmgJKHJldmlzaW9uIDEwODM4OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdEludGVyZmFjZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zMiw2ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFRlc3RJbnRlcmZhY2U7
CiB9OwogCitjbGFzcyBXZWJET01HZW9sb2NhdGlvbjsKIAogY2xhc3MgV2ViRE9NVGVzdEludGVy
ZmFjZSA6IHB1YmxpYyBXZWJET01PYmplY3QgewogcHVibGljOgpAQCAtNDEsMjUgKzQyLDkgQEAg
cHVibGljOgogICAgIFdlYkRPTVRlc3RJbnRlcmZhY2UmIG9wZXJhdG9yPShjb25zdCBXZWJET01U
ZXN0SW50ZXJmYWNlJik7CiAgICAgdmlydHVhbCB+V2ViRE9NVGVzdEludGVyZmFjZSgpOwogCi0g
ICAgZW51bSB7Ci0jaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIp
Ci0gICAgICAgIFdFQkRPTV9TVVBQTEVNRU5UQUxDT05TVEFOVDEgPSAxLAorI2lmIEVOQUJMRShH
RU9MT0NBVElPTikKKyAgICBXZWJET01HZW9sb2NhdGlvbiBnZW9sb2NhdGlvbigpIGNvbnN0Owog
I2VuZGlmCi0jaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi0g
ICAgICAgIFdFQkRPTV9TVVBQTEVNRU5UQUxDT05TVEFOVDIgPSAyCi0jZW5kaWYKLQotICAgIH07
Ci0KLSNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLSAgICBX
ZWJET01TdHJpbmcgc3VwcGxlbWVudGFsU3RyMSgpIGNvbnN0OwotI2VuZGlmCi0jaWYgRU5BQkxF
KENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi0gICAgV2ViRE9NU3RyaW5nIHN1
cHBsZW1lbnRhbFN0cjIoKSBjb25zdDsKLSAgICB2b2lkIHNldFN1cHBsZW1lbnRhbFN0cjIoY29u
c3QgV2ViRE9NU3RyaW5nJik7Ci0jZW5kaWYKLQotICAgIHZvaWQgc3VwcGxlbWVudGFsTWV0aG9k
MSgpOwogCiAgICAgV2ViQ29yZTo6VGVzdEludGVyZmFjZSogaW1wbCgpIGNvbnN0OwogCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01U
ZXN0SW50ZXJmYWNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0SW50ZXJmYWNlLmNwcAkocmV2aXNpb24g
MTA4Mzg5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3Qv
V2ViS2l0RE9NVGVzdEludGVyZmFjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDE2ICsyNywx
NiBAQAogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlICJET01PYmplY3RDYWNoZS5o
IgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJHZW9sb2NhdGlvbi5oIgog
I2luY2x1ZGUgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIgogI2luY2x1ZGUgIlRlc3RJbnRlcmZh
Y2UuaCIKLSNpbmNsdWRlICJUZXN0T2JqLmgiCiAjaW5jbHVkZSAiVGVzdFN1cHBsZW1lbnRhbC5o
IgogI2luY2x1ZGUgIldlYktpdERPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJnb2JqZWN0L0NvbnZl
cnRUb1VURjhTdHJpbmcuaCIKKyNpbmNsdWRlICJ3ZWJraXQvV2ViS2l0RE9NR2VvbG9jYXRpb24u
aCIKKyNpbmNsdWRlICJ3ZWJraXQvV2ViS2l0RE9NR2VvbG9jYXRpb25Qcml2YXRlLmgiCiAjaW5j
bHVkZSAid2Via2l0L1dlYktpdERPTVRlc3RJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJ3ZWJraXQv
V2ViS2l0RE9NVGVzdEludGVyZmFjZVByaXZhdGUuaCIKLSNpbmNsdWRlICJ3ZWJraXQvV2ViS2l0
RE9NVGVzdE9iai5oIgotI2luY2x1ZGUgIndlYmtpdC9XZWJLaXRET01UZXN0T2JqUHJpdmF0ZS5o
IgogI2luY2x1ZGUgIndlYmtpdGRlZmluZXMuaCIKICNpbmNsdWRlICJ3ZWJraXRnbG9iYWxzcHJp
dmF0ZS5oIgogI2luY2x1ZGUgIndlYmtpdG1hcnNoYWwuaCIKQEAgLTU1LDg0ICs1NSwxOSBAQCBX
ZWJLaXRET01UZXN0SW50ZXJmYWNlKiBraXQoV2ViQ29yZTo6VGVzCiAgICAgCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQgLy8KIAotdm9pZAotd2Via2l0X2RvbV90ZXN0X2ludGVyZmFjZV9zdXBwbGVt
ZW50YWxfbWV0aG9kMShXZWJLaXRET01UZXN0SW50ZXJmYWNlKiBzZWxmKQorV2ViS2l0RE9NR2Vv
bG9jYXRpb24qCit3ZWJraXRfZG9tX3Rlc3RfaW50ZXJmYWNlX2dldF9nZW9sb2NhdGlvbihXZWJL
aXRET01UZXN0SW50ZXJmYWNlKiBzZWxmKQogewotI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwg
RU5BQkxFKENvbmRpdGlvbjEyKQotICAgIGdfcmV0dXJuX2lmX2ZhaWwoc2VsZik7Ci0gICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIFdlYkNvcmU6OlRlc3RJbnRl
cmZhY2UgKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIFRlc3RTdXBwbGVtZW50YWw6
OnN1cHBsZW1lbnRhbE1ldGhvZDEoaXRlbSk7Ci0jZW5kaWYgLyogRU5BQkxFKENvbmRpdGlvbjEx
KSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpICovCi19Ci0KLVdlYktpdERPTVRlc3RPYmoqCi13ZWJr
aXRfZG9tX3Rlc3RfaW50ZXJmYWNlX3N1cHBsZW1lbnRhbF9tZXRob2QyKFdlYktpdERPTVRlc3RJ
bnRlcmZhY2UqIHNlbGYsIGNvbnN0IGdjaGFyKiBzdHJfYXJnLCBXZWJLaXRET01UZXN0T2JqKiBv
YmpfYXJnLCBHRXJyb3IgKiplcnJvcikKLXsKLSNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVO
QUJMRShDb25kaXRpb24xMikKKyNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCiAgICAgZ19yZXR1cm5f
dmFsX2lmX2ZhaWwoc2VsZiwgMCk7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOwogICAgIFdlYkNvcmU6OlRlc3RJbnRlcmZhY2UgKiBpdGVtID0gV2ViS2l0Ojpjb3Jl
KHNlbGYpOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHN0cl9hcmcsIDApOwotICAgIGdfcmV0
dXJuX3ZhbF9pZl9mYWlsKG9ial9hcmcsIDApOwotICAgIFdURjo6U3RyaW5nIGNvbnZlcnRlZF9z
dHJfYXJnID0gV1RGOjpTdHJpbmc6OmZyb21VVEY4KHN0cl9hcmcpOwotICAgIFdlYkNvcmU6OlRl
c3RPYmogKiBjb252ZXJ0ZWRfb2JqX2FyZyA9IE5VTEw7Ci0gICAgaWYgKG9ial9hcmcgIT0gTlVM
TCkgewotICAgICAgICBjb252ZXJ0ZWRfb2JqX2FyZyA9IFdlYktpdDo6Y29yZShvYmpfYXJnKTsK
LSAgICAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoY29udmVydGVkX29ial9hcmcsIDApOwotICAg
IH0KLSAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBQYXNzUmVmUHRyPFdl
YkNvcmU6OlRlc3RPYmo+IGdfcmVzID0gV1RGOjpnZXRQdHIoVGVzdFN1cHBsZW1lbnRhbDo6c3Vw
cGxlbWVudGFsTWV0aG9kMihpdGVtLCBjb252ZXJ0ZWRfc3RyX2FyZywgY29udmVydGVkX29ial9h
cmcsIGVjKSk7Ci0gICAgaWYgKGVjKSB7Ci0gICAgICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGVE
ZXNjcmlwdGlvbiBlY2Rlc2MoZWMpOwotICAgICAgICBnX3NldF9lcnJvcl9saXRlcmFsKGVycm9y
LCBnX3F1YXJrX2Zyb21fc3RyaW5nKCJXRUJLSVRfRE9NIiksIGVjZGVzYy5jb2RlLCBlY2Rlc2Mu
bmFtZSk7Ci0gICAgfQotICAgIFdlYktpdERPTVRlc3RPYmoqIHJlcyA9IFdlYktpdDo6a2l0KGdf
cmVzLmdldCgpKTsKKyAgICBQYXNzUmVmUHRyPFdlYkNvcmU6Okdlb2xvY2F0aW9uPiBnX3JlcyA9
IFdURjo6Z2V0UHRyKFRlc3RTdXBwbGVtZW50YWw6Omdlb2xvY2F0aW9uKGl0ZW0pKTsKKyAgICBX
ZWJLaXRET01HZW9sb2NhdGlvbiogcmVzID0gV2ViS2l0OjpraXQoZ19yZXMuZ2V0KCkpOwogICAg
IHJldHVybiByZXM7CiAjZWxzZQogICAgIHJldHVybiBOVUxMOwotI2VuZGlmIC8qIEVOQUJMRShD
b25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKSAqLwotfQotCi1nY2hhcioKLXdlYmtp
dF9kb21fdGVzdF9pbnRlcmZhY2VfZ2V0X3N1cHBsZW1lbnRhbF9zdHIxKFdlYktpdERPTVRlc3RJ
bnRlcmZhY2UqIHNlbGYpCi17Ci0jaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29u
ZGl0aW9uMTIpCi0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoc2VsZiwgMCk7Ci0gICAgV2ViQ29y
ZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIFdlYkNvcmU6OlRlc3RJbnRlcmZh
Y2UgKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIGdjaGFyKiByZXMgPSBjb252ZXJ0
VG9VVEY4U3RyaW5nKFRlc3RTdXBwbGVtZW50YWw6OnN1cHBsZW1lbnRhbFN0cjEoaXRlbSkpOwot
ICAgIHJldHVybiByZXM7Ci0jZWxzZQotICAgIHJldHVybiBOVUxMOwotI2VuZGlmIC8qIEVOQUJM
RShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKSAqLwotfQotCi1nY2hhcioKLXdl
YmtpdF9kb21fdGVzdF9pbnRlcmZhY2VfZ2V0X3N1cHBsZW1lbnRhbF9zdHIyKFdlYktpdERPTVRl
c3RJbnRlcmZhY2UqIHNlbGYpCi17Ci0jaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUo
Q29uZGl0aW9uMTIpCi0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoc2VsZiwgMCk7Ci0gICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIFdlYkNvcmU6OlRlc3RJbnRl
cmZhY2UgKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIGdjaGFyKiByZXMgPSBjb252
ZXJ0VG9VVEY4U3RyaW5nKFRlc3RTdXBwbGVtZW50YWw6OnN1cHBsZW1lbnRhbFN0cjIoaXRlbSkp
OwotICAgIHJldHVybiByZXM7Ci0jZWxzZQotICAgIHJldHVybiBOVUxMOwotI2VuZGlmIC8qIEVO
QUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKSAqLwotfQotCi12b2lkCi13
ZWJraXRfZG9tX3Rlc3RfaW50ZXJmYWNlX3NldF9zdXBwbGVtZW50YWxfc3RyMihXZWJLaXRET01U
ZXN0SW50ZXJmYWNlKiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpCi17Ci0jaWYgRU5BQkxFKENv
bmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi0gICAgZ19yZXR1cm5faWZfZmFpbChz
ZWxmKTsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgV2Vi
Q29yZTo6VGVzdEludGVyZmFjZSAqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgZ19y
ZXR1cm5faWZfZmFpbCh2YWx1ZSk7Ci0gICAgV1RGOjpTdHJpbmcgY29udmVydGVkX3ZhbHVlID0g
V1RGOjpTdHJpbmc6OmZyb21VVEY4KHZhbHVlKTsKLSAgICBUZXN0U3VwcGxlbWVudGFsOjpzZXRT
dXBwbGVtZW50YWxTdHIyKGl0ZW0sIGNvbnZlcnRlZF92YWx1ZSk7Ci0jZW5kaWYgLyogRU5BQkxF
KENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpICovCisjZW5kaWYgLyogRU5BQkxF
KEdFT0xPQ0FUSU9OKSAqLwogfQogCiAKQEAgLTE1MywxMiArODgsOSBAQCBXZWJDb3JlOjpUZXN0
SW50ZXJmYWNlKiBjb3JlKFdlYktpdERPTVRlCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIGVudW0g
ewogICAgIFBST1BfMCwKLSNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRp
b24xMikKLSAgICBQUk9QX1NVUFBMRU1FTlRBTF9TVFIxLAotI2VuZGlmIC8qIEVOQUJMRShDb25k
aXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKSAqLwotI2lmIEVOQUJMRShDb25kaXRpb24x
MSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQotICAgIFBST1BfU1VQUExFTUVOVEFMX1NUUjIsCi0j
ZW5kaWYgLyogRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpICovCisj
aWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQorICAgIFBST1BfR0VPTE9DQVRJT04sCisjZW5kaWYgLyog
RU5BQkxFKEdFT0xPQ0FUSU9OKSAqLwogfTsKIAogCkBAIC0xODEsMTYgKzExMyw3IEBAIHN0YXRp
YyB2b2lkIHdlYmtpdF9kb21fdGVzdF9pbnRlcmZhY2VfZmkKIHN0YXRpYyB2b2lkIHdlYmtpdF9k
b21fdGVzdF9pbnRlcmZhY2Vfc2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJv
cF9pZCwgY29uc3QgR1ZhbHVlKiB2YWx1ZSwgR1BhcmFtU3BlYyogcHNwZWMpCiB7CiAgICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIFdlYktpdERPTVRlc3RJbnRl
cmZhY2UqIHNlbGYgPSBXRUJLSVRfRE9NX1RFU1RfSU5URVJGQUNFKG9iamVjdCk7Ci0gICAgV2Vi
Q29yZTo6VGVzdEludGVyZmFjZSogY29yZVNlbGYgPSBXZWJLaXQ6OmNvcmUoc2VsZik7CiAgICAg
c3dpdGNoIChwcm9wX2lkKSB7Ci0jaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29u
ZGl0aW9uMTIpCi0gICAgY2FzZSBQUk9QX1NVUFBMRU1FTlRBTF9TVFIyOgotICAgIHsKLSAgICAg
ICAgVGVzdFN1cHBsZW1lbnRhbDo6c2V0U3VwcGxlbWVudGFsU3RyMihjb3JlU2VsZiwgV1RGOjpT
dHJpbmc6OmZyb21VVEY4KGdfdmFsdWVfZ2V0X3N0cmluZyh2YWx1ZSkpKTsKLSAgICAgICAgYnJl
YWs7Ci0gICAgfQotI2VuZGlmIC8qIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRp
dGlvbjEyKSAqLwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9Q
Uk9QRVJUWV9JRChvYmplY3QsIHByb3BfaWQsIHBzcGVjKTsKICAgICAgICAgYnJlYWs7CkBAIC0y
MDQsMjAgKzEyNywxNCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX3Rlc3RfaW50ZXJmYWNlX2dl
CiAgICAgV2ViS2l0RE9NVGVzdEludGVyZmFjZSogc2VsZiA9IFdFQktJVF9ET01fVEVTVF9JTlRF
UkZBQ0Uob2JqZWN0KTsKICAgICBXZWJDb3JlOjpUZXN0SW50ZXJmYWNlKiBjb3JlU2VsZiA9IFdl
YktpdDo6Y29yZShzZWxmKTsKICAgICBzd2l0Y2ggKHByb3BfaWQpIHsKLSNpZiBFTkFCTEUoQ29u
ZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLSAgICBjYXNlIFBST1BfU1VQUExFTUVO
VEFMX1NUUjE6CisjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQorICAgIGNhc2UgUFJPUF9HRU9MT0NB
VElPTjoKICAgICB7Ci0gICAgICAgIGdfdmFsdWVfdGFrZV9zdHJpbmcodmFsdWUsIGNvbnZlcnRU
b1VURjhTdHJpbmcoVGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsU3RyMShjb3JlU2VsZikp
KTsKKyAgICAgICAgUmVmUHRyPFdlYkNvcmU6Okdlb2xvY2F0aW9uPiBwdHIgPSBUZXN0U3VwcGxl
bWVudGFsOjpnZW9sb2NhdGlvbihjb3JlU2VsZik7CisgICAgICAgIGdfdmFsdWVfc2V0X29iamVj
dCh2YWx1ZSwgV2ViS2l0OjpraXQocHRyLmdldCgpKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0K
LSNlbmRpZiAvKiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikgKi8K
LSNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLSAgICBjYXNl
IFBST1BfU1VQUExFTUVOVEFMX1NUUjI6Ci0gICAgewotICAgICAgICBnX3ZhbHVlX3Rha2Vfc3Ry
aW5nKHZhbHVlLCBjb252ZXJ0VG9VVEY4U3RyaW5nKFRlc3RTdXBwbGVtZW50YWw6OnN1cHBsZW1l
bnRhbFN0cjIoY29yZVNlbGYpKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSNlbmRpZiAvKiBF
TkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikgKi8KKyNlbmRpZiAvKiBF
TkFCTEUoR0VPTE9DQVRJT04pICovCiAgICAgZGVmYXVsdDoKICAgICAgICAgR19PQkpFQ1RfV0FS
Tl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcF9pZCwgcHNwZWMpOwogICAgICAgICBi
cmVhazsKQEAgLTI0MCwyNCArMTU3LDE1IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9kb21fdGVzdF9p
bnRlcmZhY2VfY2wKICAgICBnb2JqZWN0Q2xhc3MtPmdldF9wcm9wZXJ0eSA9IHdlYmtpdF9kb21f
dGVzdF9pbnRlcmZhY2VfZ2V0X3Byb3BlcnR5OwogICAgIGdvYmplY3RDbGFzcy0+Y29uc3RydWN0
ZWQgPSB3ZWJraXRfZG9tX3Rlc3RfaW50ZXJmYWNlX2NvbnN0cnVjdGVkOwogCi0jaWYgRU5BQkxF
KENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCisjaWYgRU5BQkxFKEdFT0xPQ0FU
SU9OKQogICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVjdENsYXNzLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9TVVBQTEVNRU5UQUxfU1RS
MSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19zdHJp
bmcoInN1cHBsZW1lbnRhbC1zdHIxIiwgLyogbmFtZSAqLwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGVzdF9pbnRlcmZhY2Vfc3Vw
cGxlbWVudGFsLXN0cjEiLCAvKiBzaG9ydCBkZXNjcmlwdGlvbiAqLwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVhZC1vbmx5ICBn
Y2hhciogVGVzdEludGVyZmFjZS5zdXBwbGVtZW50YWwtc3RyMSIsIC8qIGxvbmdlciAtIGNvdWxk
IGRvIHdpdGggc29tZSBleHRyYSBkb2Mgc3R1ZmYgaGVyZSAqLwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiwgLyogZGVmYXVsdCAq
LworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9HRU9MT0NBVElPTiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19vYmplY3Qo
Imdlb2xvY2F0aW9uIiwgLyogbmFtZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGVzdF9pbnRlcmZhY2VfZ2VvbG9jYXRpb24i
LCAvKiBzaG9ydCBkZXNjcmlwdGlvbiAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVhZC1vbmx5ICBXZWJLaXRET01HZW9sb2Nh
dGlvbiogVGVzdEludGVyZmFjZS5nZW9sb2NhdGlvbiIsIC8qIGxvbmdlciAtIGNvdWxkIGRvIHdp
dGggc29tZSBleHRyYSBkb2Mgc3R1ZmYgaGVyZSAqLworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRfVFlQRV9ET01fR0VPTE9D
QVRJT04sIC8qIGdvYmplY3QgdHlwZSAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKLSNl
bmRpZiAvKiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikgKi8KLSNp
ZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLSAgICBnX29iamVj
dF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdvYmplY3RDbGFzcywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFBST1BfU1VQUExFTUVOVEFMX1NUUjIsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nKCJzdXBwbGVtZW50YWwt
c3RyMiIsIC8qIG5hbWUgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgInRlc3RfaW50ZXJmYWNlX3N1cHBsZW1lbnRhbC1zdHIyIiwg
Lyogc2hvcnQgZGVzY3JpcHRpb24gKi8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlYWQtd3JpdGUgIGdjaGFyKiBUZXN0SW50ZXJm
YWNlLnN1cHBsZW1lbnRhbC1zdHIyIiwgLyogbG9uZ2VyIC0gY291bGQgZG8gd2l0aCBzb21lIGV4
dHJhIGRvYyBzdHVmZiBoZXJlICovCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICIiLCAvKiBkZWZhdWx0ICovCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9QQVJB
TV9SRUFEV1JJVEUpKTsKLSNlbmRpZiAvKiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShD
b25kaXRpb24xMikgKi8KKyNlbmRpZiAvKiBFTkFCTEUoR0VPTE9DQVRJT04pICovCiAKIAogfQpJ
bmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0
RE9NVGVzdEludGVyZmFjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RJbnRlcmZhY2UuaAkocmV2aXNpb24g
MTA4Mzg5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3Qv
V2ViS2l0RE9NVGVzdEludGVyZmFjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw1OCArNDcsMTQg
QEAgV0VCS0lUX0FQSSBHVHlwZQogd2Via2l0X2RvbV90ZXN0X2ludGVyZmFjZV9nZXRfdHlwZSAo
dm9pZCk7CiAKIC8qKgotICogd2Via2l0X2RvbV90ZXN0X2ludGVyZmFjZV9zdXBwbGVtZW50YWxf
bWV0aG9kMToKKyAqIHdlYmtpdF9kb21fdGVzdF9pbnRlcmZhY2VfZ2V0X2dlb2xvY2F0aW9uOgog
ICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RJbnRlcmZhY2UKICAqCi0gKiBSZXR1cm5zOgotICoK
LSoqLwotV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfZG9tX3Rlc3RfaW50ZXJmYWNlX3N1cHBsZW1l
bnRhbF9tZXRob2QxKFdlYktpdERPTVRlc3RJbnRlcmZhY2UqIHNlbGYpOwotCi0vKioKLSAqIHdl
YmtpdF9kb21fdGVzdF9pbnRlcmZhY2Vfc3VwcGxlbWVudGFsX21ldGhvZDI6Ci0gKiBAc2VsZjog
QSAjV2ViS2l0RE9NVGVzdEludGVyZmFjZQotICogQHN0cl9hcmc6IEEgI2djaGFyCi0gKiBAb2Jq
X2FyZzogQSAjV2ViS2l0RE9NVGVzdE9iagotICogQGVycm9yOiAjR0Vycm9yCi0gKgogICogUmV0
dXJuczogKHRyYW5zZmVyIG5vbmUpOgogICoKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01UZXN0
T2JqKgotd2Via2l0X2RvbV90ZXN0X2ludGVyZmFjZV9zdXBwbGVtZW50YWxfbWV0aG9kMihXZWJL
aXRET01UZXN0SW50ZXJmYWNlKiBzZWxmLCBjb25zdCBnY2hhciogc3RyX2FyZywgV2ViS2l0RE9N
VGVzdE9iaiogb2JqX2FyZywgR0Vycm9yICoqZXJyb3IpOwotCi0vKioKLSAqIHdlYmtpdF9kb21f
dGVzdF9pbnRlcmZhY2VfZ2V0X3N1cHBsZW1lbnRhbF9zdHIxOgotICogQHNlbGY6IEEgI1dlYktp
dERPTVRlc3RJbnRlcmZhY2UKLSAqCi0gKiBSZXR1cm5zOgotICoKLSoqLwotV0VCS0lUX0FQSSBn
Y2hhcioKLXdlYmtpdF9kb21fdGVzdF9pbnRlcmZhY2VfZ2V0X3N1cHBsZW1lbnRhbF9zdHIxKFdl
YktpdERPTVRlc3RJbnRlcmZhY2UqIHNlbGYpOwotCi0vKioKLSAqIHdlYmtpdF9kb21fdGVzdF9p
bnRlcmZhY2VfZ2V0X3N1cHBsZW1lbnRhbF9zdHIyOgotICogQHNlbGY6IEEgI1dlYktpdERPTVRl
c3RJbnRlcmZhY2UKLSAqCi0gKiBSZXR1cm5zOgotICoKLSoqLwotV0VCS0lUX0FQSSBnY2hhcioK
LXdlYmtpdF9kb21fdGVzdF9pbnRlcmZhY2VfZ2V0X3N1cHBsZW1lbnRhbF9zdHIyKFdlYktpdERP
TVRlc3RJbnRlcmZhY2UqIHNlbGYpOwotCi0vKioKLSAqIHdlYmtpdF9kb21fdGVzdF9pbnRlcmZh
Y2Vfc2V0X3N1cHBsZW1lbnRhbF9zdHIyOgotICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RJbnRl
cmZhY2UKLSAqIEB2YWx1ZTogQSAjZ2NoYXIKLSAqCi0gKiBSZXR1cm5zOgotICoKLSoqLwotV0VC
S0lUX0FQSSB2b2lkCi13ZWJraXRfZG9tX3Rlc3RfaW50ZXJmYWNlX3NldF9zdXBwbGVtZW50YWxf
c3RyMihXZWJLaXRET01UZXN0SW50ZXJmYWNlKiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwor
V0VCS0lUX0FQSSBXZWJLaXRET01HZW9sb2NhdGlvbioKK3dlYmtpdF9kb21fdGVzdF9pbnRlcmZh
Y2VfZ2V0X2dlb2xvY2F0aW9uKFdlYktpdERPTVRlc3RJbnRlcmZhY2UqIHNlbGYpOwogCiBHX0VO
RF9ERUNMUwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0SW50ZXJmYWNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcAkocmV2aXNpb24gMTA4Mzg5KQor
KysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFj
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDE2ICsyNywxNCBAQAogI2luY2x1ZGUgIkV4Y2Vw
dGlvbkNvZGUuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU1Rlc3RJ
bnRlcmZhY2VDdXN0b20uaCIKLSNpbmNsdWRlICJKU1Rlc3RPYmouaCIKICNpbmNsdWRlICJUZXN0
SW50ZXJmYWNlLmgiCi0jaW5jbHVkZSAiVGVzdE9iai5oIgogI2luY2x1ZGUgIlRlc3RTdXBwbGVt
ZW50YWwuaCIKICNpbmNsdWRlIDxydW50aW1lL0Vycm9yLmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0
ci5oPgogCi0jaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi0j
aW5jbHVkZSAiS1VSTC5oIgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNTdHJpbmcuaD4KKyNpZiBFTkFC
TEUoR0VPTE9DQVRJT04pCisjaW5jbHVkZSAiR2VvbG9jYXRpb24uaCIKKyNpbmNsdWRlICJKU0dl
b2xvY2F0aW9uLmgiCiAjZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKQEAgLTQ4LDQyICs0
NiwyMiBAQCBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKEpTVGVzdEludGVyZmFjCiAKIHN0YXRp
YyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RJbnRlcmZhY2VUYWJsZVZhbHVlc1tdID0KIHsK
LSNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLSAgICB7ICJz
dXBwbGVtZW50YWxTdHIxIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEludGVyZmFjZVN1cHBsZW1l
bnRhbFN0cjEpLCAoaW50cHRyX3QpMCwgTm9JbnRyaW5zaWMgfSwKLSNlbmRpZgotI2lmIEVOQUJM
RShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQotICAgIHsgInN1cHBsZW1lbnRh
bFN0cjIiLCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpH
ZXRWYWx1ZUZ1bmM+KGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjIpLCAoaW50cHRyX3Qp
c2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMiwgTm9JbnRyaW5zaWMgfSwKLSNlbmRp
ZgotI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQotICAgIHsg
InN1cHBsZW1lbnRhbFN0cjMiLCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJv
cGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjMp
LCAoaW50cHRyX3Qpc2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMywgTm9JbnRyaW5z
aWMgfSwKKyNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCisgICAgeyAiZ2VvbG9jYXRpb24iLCBEb250
RGVsZXRlIHwgUmVhZE9ubHksIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6Okdl
dFZhbHVlRnVuYz4oanNUZXN0SW50ZXJmYWNlR2VvbG9jYXRpb24pLCAoaW50cHRyX3QpMCwgTm9J
bnRyaW5zaWMgfSwKICNlbmRpZgogICAgIHsgImNvbnN0cnVjdG9yIiwgRG9udEVudW0gfCBSZWFk
T25seSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihq
c1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkwLCBOb0ludHJpbnNpYyB9LAog
ICAgIHsgMCwgMCwgMCwgMCwgTm9JbnRyaW5zaWMgfQogfTsKIAotc3RhdGljIGNvbnN0IEhhc2hU
YWJsZSBKU1Rlc3RJbnRlcmZhY2VUYWJsZSA9IHsgOSwgNywgSlNUZXN0SW50ZXJmYWNlVGFibGVW
YWx1ZXMsIDAgfTsKK3N0YXRpYyBjb25zdCBIYXNoVGFibGUgSlNUZXN0SW50ZXJmYWNlVGFibGUg
PSB7IDQsIDMsIEpTVGVzdEludGVyZmFjZVRhYmxlVmFsdWVzLCAwIH07CiAvKiBIYXNoIHRhYmxl
IGZvciBjb25zdHJ1Y3RvciAqLwogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0
SW50ZXJmYWNlQ29uc3RydWN0b3JUYWJsZVZhbHVlc1tdID0KIHsKLSNpZiBFTkFCTEUoQ29uZGl0
aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLSAgICB7ICJTVVBQTEVNRU5UQUxDT05TVEFO
VDEiLCBEb250RGVsZXRlIHwgUmVhZE9ubHksIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0SW50ZXJmYWNlU1VQUExFTUVOVEFMQ09OU1RBTlQx
KSwgKGludHB0cl90KTAsIE5vSW50cmluc2ljIH0sCi0jZW5kaWYKLSNpZiBFTkFCTEUoQ29uZGl0
aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLSAgICB7ICJTVVBQTEVNRU5UQUxDT05TVEFO
VDIiLCBEb250RGVsZXRlIHwgUmVhZE9ubHksIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0SW50ZXJmYWNlU1VQUExFTUVOVEFMQ09OU1RBTlQy
KSwgKGludHB0cl90KTAsIE5vSW50cmluc2ljIH0sCi0jZW5kaWYKICAgICB7IDAsIDAsIDAsIDAs
IE5vSW50cmluc2ljIH0KIH07CiAKLXN0YXRpYyBjb25zdCBIYXNoVGFibGUgSlNUZXN0SW50ZXJm
YWNlQ29uc3RydWN0b3JUYWJsZSA9IHsgNCwgMywgSlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JU
YWJsZVZhbHVlcywgMCB9OwotCi0jaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29u
ZGl0aW9uMTIpCi1DT01QSUxFX0FTU0VSVCgxID09IFRlc3RJbnRlcmZhY2U6OlNVUFBMRU1FTlRB
TENPTlNUQU5UMSwgVGVzdEludGVyZmFjZUVudW1TVVBQTEVNRU5UQUxDT05TVEFOVDFJc1dyb25n
VXNlRG9Ob3RDaGVja0NvbnN0YW50cyk7Ci0jZW5kaWYKLSNpZiBFTkFCTEUoQ29uZGl0aW9uMTEp
IHx8IEVOQUJMRShDb25kaXRpb24xMikKLUNPTVBJTEVfQVNTRVJUKDIgPT0gVGVzdEludGVyZmFj
ZTo6Q09OU1RfSU1QTCwgVGVzdEludGVyZmFjZUVudW1DT05TVF9JTVBMSXNXcm9uZ1VzZURvTm90
Q2hlY2tDb25zdGFudHMpOwotI2VuZGlmCi0KK3N0YXRpYyBjb25zdCBIYXNoVGFibGUgSlNUZXN0
SW50ZXJmYWNlQ29uc3RydWN0b3JUYWJsZSA9IHsgMSwgMCwgSlNUZXN0SW50ZXJmYWNlQ29uc3Ry
dWN0b3JUYWJsZVZhbHVlcywgMCB9OwogY29uc3QgQ2xhc3NJbmZvIEpTVGVzdEludGVyZmFjZUNv
bnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3IiLCAmQmFzZTo6
c19pbmZvLCAmSlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JUYWJsZSwgMCwgQ1JFQVRFX01FVEhP
RF9UQUJMRShKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvcikgfTsKIAogSlNUZXN0SW50ZXJmYWNl
Q29uc3RydWN0b3I6OkpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yKFN0cnVjdHVyZSogc3RydWN0
dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQpAQCAtMTQyLDI1ICsxMjAsMTAg
QEAgQ29uc3RydWN0VHlwZSBKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvcgogCiBzdGF0aWMgY29u
c3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0SW50ZXJmYWNlUHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9
CiB7Ci0jaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi0gICAg
eyAiU1VQUExFTUVOVEFMQ09OU1RBTlQxIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEludGVyZmFj
ZVNVUFBMRU1FTlRBTENPTlNUQU5UMSksIChpbnRwdHJfdCkwLCBOb0ludHJpbnNpYyB9LAotI2Vu
ZGlmCi0jaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi0gICAg
eyAiU1VQUExFTUVOVEFMQ09OU1RBTlQyIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEludGVyZmFj
ZVNVUFBMRU1FTlRBTENPTlNUQU5UMiksIChpbnRwdHJfdCkwLCBOb0ludHJpbnNpYyB9LAotI2Vu
ZGlmCi0jaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi0gICAg
eyAic3VwcGxlbWVudGFsTWV0aG9kMSIsIERvbnREZWxldGUgfCBKU0M6OkZ1bmN0aW9uLCAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdEludGVyZmFjZVByb3RvdHlw
ZUZ1bmN0aW9uU3VwcGxlbWVudGFsTWV0aG9kMSksIChpbnRwdHJfdCkwLCBOb0ludHJpbnNpYyB9
LAotI2VuZGlmCi0jaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIp
Ci0gICAgeyAic3VwcGxlbWVudGFsTWV0aG9kMiIsIERvbnREZWxldGUgfCBKU0M6OkZ1bmN0aW9u
LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdEludGVyZmFjZVBy
b3RvdHlwZUZ1bmN0aW9uU3VwcGxlbWVudGFsTWV0aG9kMiksIChpbnRwdHJfdCkyLCBOb0ludHJp
bnNpYyB9LAotI2VuZGlmCi0jaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0
aW9uMTIpCi0gICAgeyAic3VwcGxlbWVudGFsTWV0aG9kMyIsIERvbnREZWxldGUgfCBKU0M6OkZ1
bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdEludGVy
ZmFjZVByb3RvdHlwZUZ1bmN0aW9uU3VwcGxlbWVudGFsTWV0aG9kMyksIChpbnRwdHJfdCkwLCBO
b0ludHJpbnNpYyB9LAotI2VuZGlmCiAgICAgeyAwLCAwLCAwLCAwLCBOb0ludHJpbnNpYyB9CiB9
OwogCi1zdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTVGVzdEludGVyZmFjZVByb3RvdHlwZVRhYmxl
ID0geyAxNywgMTUsIEpTVGVzdEludGVyZmFjZVByb3RvdHlwZVRhYmxlVmFsdWVzLCAwIH07Citz
dGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTVGVzdEludGVyZmFjZVByb3RvdHlwZVRhYmxlID0geyAx
LCAwLCBKU1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVUYWJsZVZhbHVlcywgMCB9OwogY29uc3QgQ2xh
c3NJbmZvIEpTVGVzdEludGVyZmFjZVByb3RvdHlwZTo6c19pbmZvID0geyAiVGVzdEludGVyZmFj
ZVByb3RvdHlwZSIsICZCYXNlOjpzX2luZm8sICZKU1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVUYWJs
ZSwgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RJbnRlcmZhY2VQcm90b3R5cGUpIH07CiAK
IEpTT2JqZWN0KiBKU1Rlc3RJbnRlcmZhY2VQcm90b3R5cGU6OnNlbGYoRXhlY1N0YXRlKiBleGVj
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQpAQCAtMTY4LDE4ICsxMzEsNiBAQCBKU09i
amVjdCogSlNUZXN0SW50ZXJmYWNlUHJvdG90eXBlOjpzZWxmCiAgICAgcmV0dXJuIGdldERPTVBy
b3RvdHlwZTxKU1Rlc3RJbnRlcmZhY2U+KGV4ZWMsIGdsb2JhbE9iamVjdCk7CiB9CiAKLWJvb2wg
SlNUZXN0SW50ZXJmYWNlUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxs
LCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90JiBzbG90KQotewotICAgIEpTVGVzdEludGVyZmFjZVByb3RvdHlwZSogdGhpc09iamVj
dCA9IGpzQ2FzdDxKU1Rlc3RJbnRlcmZhY2VQcm90b3R5cGUqPihjZWxsKTsKLSAgICByZXR1cm4g
Z2V0U3RhdGljUHJvcGVydHlTbG90PEpTVGVzdEludGVyZmFjZVByb3RvdHlwZSwgSlNPYmplY3Q+
KGV4ZWMsICZKU1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVUYWJsZSwgdGhpc09iamVjdCwgcHJvcGVy
dHlOYW1lLCBzbG90KTsKLX0KLQotYm9vbCBKU1Rlc3RJbnRlcmZhY2VQcm90b3R5cGU6OmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlw
dG9yKQotewotICAgIEpTVGVzdEludGVyZmFjZVByb3RvdHlwZSogdGhpc09iamVjdCA9IGpzQ2Fz
dDxKU1Rlc3RJbnRlcmZhY2VQcm90b3R5cGUqPihvYmplY3QpOwotICAgIHJldHVybiBnZXRTdGF0
aWNQcm9wZXJ0eURlc2NyaXB0b3I8SlNUZXN0SW50ZXJmYWNlUHJvdG90eXBlLCBKU09iamVjdD4o
ZXhlYywgJkpTVGVzdEludGVyZmFjZVByb3RvdHlwZVRhYmxlLCB0aGlzT2JqZWN0LCBwcm9wZXJ0
eU5hbWUsIGRlc2NyaXB0b3IpOwotfQotCiBjb25zdCBDbGFzc0luZm8gSlNUZXN0SW50ZXJmYWNl
OjpzX2luZm8gPSB7ICJUZXN0SW50ZXJmYWNlIiwgJkJhc2U6OnNfaW5mbywgJkpTVGVzdEludGVy
ZmFjZVRhYmxlLCAwICwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RJbnRlcmZhY2UpIH07CiAK
IEpTVGVzdEludGVyZmFjZTo6SlNUZXN0SW50ZXJmYWNlKFN0cnVjdHVyZSogc3RydWN0dXJlLCBK
U0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQYXNzUmVmUHRyPFRlc3RJbnRlcmZhY2U+
IGltcGwpCkBAIC0yMjQsMzkgKzE3NSwxOCBAQCBib29sIEpTVGVzdEludGVyZmFjZTo6Z2V0T3du
UHJvcGVydHlEZXNjCiAgICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlRGVzY3JpcHRvcjxKU1Rlc3RJ
bnRlcmZhY2UsIEJhc2U+KGV4ZWMsICZKU1Rlc3RJbnRlcmZhY2VUYWJsZSwgdGhpc09iamVjdCwg
cHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKIH0KIAotI2lmIEVOQUJMRShDb25kaXRpb24xMSkg
fHwgRU5BQkxFKENvbmRpdGlvbjEyKQotSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50
YWxTdHIxKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRpZmll
ciYpCisjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQorSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VHZW9s
b2NhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50aWZp
ZXImKQogewogICAgIEpTVGVzdEludGVyZmFjZSogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpT
VGVzdEludGVyZmFjZSo+KGFzT2JqZWN0KHNsb3RCYXNlKSk7CiAgICAgVU5VU0VEX1BBUkFNKGV4
ZWMpOwogICAgIFRlc3RJbnRlcmZhY2UqIGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0SW50ZXJmYWNl
Kj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKLSAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzU3RyaW5nKGV4
ZWMsIFRlc3RTdXBwbGVtZW50YWw6OnN1cHBsZW1lbnRhbFN0cjEoaW1wbCkpOworICAgIEpTVmFs
dWUgcmVzdWx0ID0gdG9KUyhleGVjLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgV1RGOjpn
ZXRQdHIoVGVzdFN1cHBsZW1lbnRhbDo6Z2VvbG9jYXRpb24oaW1wbCkpKTsKICAgICByZXR1cm4g
cmVzdWx0OwogfQogCiAjZW5kaWYKIAotI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxF
KENvbmRpdGlvbjEyKQotSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIyKEV4
ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRpZmllciYpCi17Ci0g
ICAgSlNUZXN0SW50ZXJmYWNlKiBjYXN0ZWRUaGlzID0gc3RhdGljX2Nhc3Q8SlNUZXN0SW50ZXJm
YWNlKj4oYXNPYmplY3Qoc2xvdEJhc2UpKTsKLSAgICBVTlVTRURfUEFSQU0oZXhlYyk7Ci0gICAg
VGVzdEludGVyZmFjZSogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RJbnRlcmZhY2UqPihjYXN0ZWRU
aGlzLT5pbXBsKCkpOwotICAgIEpTVmFsdWUgcmVzdWx0ID0ganNTdHJpbmcoZXhlYywgVGVzdFN1
cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsU3RyMihpbXBsKSk7Ci0gICAgcmV0dXJuIHJlc3VsdDsK
LX0KLQotI2VuZGlmCi0KLSNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRp
b24xMikKLUpTVmFsdWUganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMyhFeGVjU3RhdGUq
IGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50aWZpZXImKQotewotICAgIEpTVGVz
dEludGVyZmFjZSogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdEludGVyZmFjZSo+KGFz
T2JqZWN0KHNsb3RCYXNlKSk7Ci0gICAgcmV0dXJuIGNhc3RlZFRoaXMtPnN1cHBsZW1lbnRhbFN0
cjMoZXhlYyk7Ci19Ci0KLSNlbmRpZgotCiBKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUNvbnN0cnVj
dG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRpZmllciYp
CiB7CiAgICAgSlNUZXN0SW50ZXJmYWNlKiBkb21PYmplY3QgPSBzdGF0aWNfY2FzdDxKU1Rlc3RJ
bnRlcmZhY2UqPihhc09iamVjdChzbG90QmFzZSkpOwpAQCAtMjY5LDEwNyArMTk5LDE0IEBAIHZv
aWQgSlNUZXN0SW50ZXJmYWNlOjpwdXQoSlNDZWxsKiBjZWxsLCAKICAgICBBU1NFUlRfR0NfT0JK
RUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsICZzX2luZm8pOwogICAgIGlmICh0aGlzT2JqZWN0LT5w
dXREZWxlZ2F0ZShleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KSkKICAgICAgICAgcmV0
dXJuOwotICAgIGxvb2t1cFB1dDxKU1Rlc3RJbnRlcmZhY2UsIEJhc2U+KGV4ZWMsIHByb3BlcnR5
TmFtZSwgdmFsdWUsICZKU1Rlc3RJbnRlcmZhY2VUYWJsZSwgdGhpc09iamVjdCwgc2xvdCk7Ci19
Ci0KLSNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLXZvaWQg
c2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMihFeGVjU3RhdGUqIGV4ZWMsIEpTT2Jq
ZWN0KiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQotewotICAgIEpTVGVzdEludGVyZmFjZSog
Y2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdEludGVyZmFjZSo+KHRoaXNPYmplY3QpOwot
ICAgIFRlc3RJbnRlcmZhY2UqIGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0SW50ZXJmYWNlKj4oY2Fz
dGVkVGhpcy0+aW1wbCgpKTsKLSAgICBUZXN0U3VwcGxlbWVudGFsOjpzZXRTdXBwbGVtZW50YWxT
dHIyKGltcGwsIHVzdHJpbmdUb1N0cmluZyh2YWx1ZS5pc0VtcHR5KCkgPyBVU3RyaW5nKCkgOiB2
YWx1ZS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykpKTsKKyAgICBCYXNlOjpwdXQodGhpc09i
amVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiB9CiAKLSNlbmRpZgotCi0j
aWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi12b2lkIHNldEpT
VGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjMoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCog
dGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKLXsKLSAgICBzdGF0aWNfY2FzdDxKU1Rlc3RJbnRl
cmZhY2UqPih0aGlzT2JqZWN0KS0+c2V0U3VwcGxlbWVudGFsU3RyMyhleGVjLCB2YWx1ZSk7Ci19
Ci0KLSNlbmRpZgotCiBKU1ZhbHVlIEpTVGVzdEludGVyZmFjZTo6Z2V0Q29uc3RydWN0b3IoRXhl
Y1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogewogICAgIHJldHVy
biBnZXRET01Db25zdHJ1Y3RvcjxKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rvcj4oZXhlYywgc3Rh
dGljX2Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpKTsKIH0KIAotI2lmIEVO
QUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblN1cHBsZW1lbnRh
bE1ldGhvZDEoRXhlY1N0YXRlKiBleGVjKQotewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhl
Yy0+aG9zdFRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKCZKU1Rlc3RJ
bnRlcmZhY2U6OnNfaW5mbykpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMp
OwotICAgIEpTVGVzdEludGVyZmFjZSogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdElu
dGVyZmFjZSo+KGFzT2JqZWN0KHRoaXNWYWx1ZSkpOwotICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5I
RVJJVFMoY2FzdGVkVGhpcywgJkpTVGVzdEludGVyZmFjZTo6c19pbmZvKTsKLSAgICBUZXN0SW50
ZXJmYWNlKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdEludGVyZmFjZSo+KGNhc3RlZFRoaXMtPmlt
cGwoKSk7Ci0gICAgVGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsTWV0aG9kMShpbXBsKTsK
LSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotfQotCi0jZW5kaWYK
LQotI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblN1
cHBsZW1lbnRhbE1ldGhvZDIoRXhlY1N0YXRlKiBleGVjKQotewotICAgIEpTVmFsdWUgdGhpc1Zh
bHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRz
KCZKU1Rlc3RJbnRlcmZhY2U6OnNfaW5mbykpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVy
cm9yKGV4ZWMpOwotICAgIEpTVGVzdEludGVyZmFjZSogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0
PEpTVGVzdEludGVyZmFjZSo+KGFzT2JqZWN0KHRoaXNWYWx1ZSkpOwotICAgIEFTU0VSVF9HQ19P
QkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgJkpTVGVzdEludGVyZmFjZTo6c19pbmZvKTsKLSAg
ICBUZXN0SW50ZXJmYWNlKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdEludGVyZmFjZSo+KGNhc3Rl
ZFRoaXMtPmltcGwoKSk7Ci0gICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDIpCi0gICAg
ICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlVHlwZUVycm9yKGV4ZWMsICJOb3Qg
ZW5vdWdoIGFyZ3VtZW50cyIpKTsKLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRDb250ZXh0ID0gc3RhdGljX2Nhc3Q8SlNET01HbG9i
YWxPYmplY3QqPihleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25D
b250ZXh0KCk7Ci0gICAgaWYgKCFzY3JpcHRDb250ZXh0KQotICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIGNvbnN0IFN0cmluZyYgc3RyQXJnKHVzdHJp
bmdUb1N0cmluZyhNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBEZWZhdWx0SXNVbmRl
ZmluZWQpLmlzRW1wdHkoKSA/IFVTdHJpbmcoKSA6IE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4
ZWMsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKSk7
Ci0gICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIFRlc3RPYmoqIG9iakFyZyh0b1Rlc3RPYmooTUFZ
QkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMSwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOwotICAg
IGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKLQotICAgIEpTQzo6SlNWYWx1ZSByZXN1bHQgPSB0b0pTKGV4ZWMs
IGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBXVEY6OmdldFB0cihUZXN0U3VwcGxlbWVudGFs
OjpzdXBwbGVtZW50YWxNZXRob2QyKGltcGwsIHNjcmlwdENvbnRleHQsIHN0ckFyZywgb2JqQXJn
LCBlYykpKTsKLSAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOwotICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUocmVzdWx0KTsKLX0KLQotI2VuZGlmCi0KLSNpZiBFTkFCTEUoQ29uZGl0aW9u
MTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25TdXBwbGVtZW50YWxNZXRob2QzKEV4ZWNT
dGF0ZSogZXhlYykKLXsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFs
dWUoKTsKLSAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cygmSlNUZXN0SW50ZXJmYWNlOjpzX2lu
Zm8pKQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKLSAgICBKU1Rlc3RJ
bnRlcmZhY2UqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RJbnRlcmZhY2UqPihhc09i
amVjdCh0aGlzVmFsdWUpKTsKLSAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRo
aXMsICZKU1Rlc3RJbnRlcmZhY2U6OnNfaW5mbyk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShjYXN0ZWRUaGlzLT5zdXBwbGVtZW50YWxNZXRob2QzKGV4ZWMpKTsKLX0KLQotI2VuZGlmCi0K
LS8vIENvbnN0YW50IGdldHRlcnMKLQotI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxF
KENvbmRpdGlvbjEyKQotSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VTVVBQTEVNRU5UQUxDT05TVEFO
VDEoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlLCBjb25zdCBJZGVudGlmaWVyJikKLXsKLSAgICBV
TlVTRURfUEFSQU0oZXhlYyk7Ci0gICAgcmV0dXJuIGpzTnVtYmVyKHN0YXRpY19jYXN0PGludD4o
MSkpOwotfQotCi0jZW5kaWYKLSNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25k
aXRpb24xMikKLUpTVmFsdWUganNUZXN0SW50ZXJmYWNlU1VQUExFTUVOVEFMQ09OU1RBTlQyKEV4
ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSwgY29uc3QgSWRlbnRpZmllciYpCi17Ci0gICAgVU5VU0VE
X1BBUkFNKGV4ZWMpOwotICAgIHJldHVybiBqc051bWJlcihzdGF0aWNfY2FzdDxpbnQ+KDIpKTsK
LX0KLQotI2VuZGlmCiBzdGF0aWMgaW5saW5lIGJvb2wgaXNPYnNlcnZhYmxlKEpTVGVzdEludGVy
ZmFjZSoganNUZXN0SW50ZXJmYWNlKQogewogICAgIGlmIChqc1Rlc3RJbnRlcmZhY2UtPmhhc0N1
c3RvbVByb3BlcnRpZXMoKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmgJKHJldmlzaW9uIDEwODM4
OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRl
cmZhY2UuaAkod29ya2luZyBjb3B5KQpAQCAtNTYsMTMgKzU2LDYgQEAgcHVibGljOgogICAgIH0K
IAogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7Ci0KLSAgICAvLyBDdXN0b20gYXR0cmlidXRlcwotICAg
IEpTQzo6SlNWYWx1ZSBzdXBwbGVtZW50YWxTdHIzKEpTQzo6RXhlY1N0YXRlKikgY29uc3Q7Ci0g
ICAgdm9pZCBzZXRTdXBwbGVtZW50YWxTdHIzKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVl
KTsKLQotICAgIC8vIEN1c3RvbSBmdW5jdGlvbnMKLSAgICBKU0M6OkpTVmFsdWUgc3VwcGxlbWVu
dGFsTWV0aG9kMyhKU0M6OkV4ZWNTdGF0ZSopOwogICAgIFRlc3RJbnRlcmZhY2UqIGltcGwoKSBj
b25zdCB7IHJldHVybiBtX2ltcGw7IH0KICAgICB2b2lkIHJlbGVhc2VJbXBsKCkgeyBtX2ltcGwt
PmRlcmVmKCk7IG1faW1wbCA9IDA7IH0KIApAQCAtMTA3LDggKzEwMCw2IEBAIHB1YmxpYzoKICAg
ICB9CiAKICAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvOwotICAgIHN0YXRp
YyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwg
Y29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKLSAgICBzdGF0aWMg
Ym9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0
YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTsK
ICAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6
OkpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJl
OjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUlu
Zm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwpAQCAtMTE3LDcg
KzEwOCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSlNUZXN0SW50ZXJmYWNlUHJvdG90eXBl
KEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkgOiBKU0M6OkpTTm9uRmluYWxPYmplY3QoZ2xvYmFsRGF0
YSwgc3RydWN0dXJlKSB7IH0KIHByb3RlY3RlZDoKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQg
U3RydWN0dXJlRmxhZ3MgPSBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEJhc2U6
OlN0cnVjdHVyZUZsYWdzOworICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFn
cyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogfTsKIAogY2xhc3MgSlNUZXN0SW50ZXJmYWNlQ29u
c3RydWN0b3IgOiBwdWJsaWMgRE9NQ29uc3RydWN0b3JPYmplY3QgewpAQCAtMTQ3LDI3ICsxMzgs
MTAgQEAgcHJvdGVjdGVkOgogICAgIHN0YXRpYyBKU0M6OkNvbnN0cnVjdFR5cGUgZ2V0Q29uc3Ry
dWN0RGF0YShKU0M6OkpTQ2VsbCosIEpTQzo6Q29uc3RydWN0RGF0YSYpOwogfTsKIAotLy8gRnVu
Y3Rpb25zCi0KLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJbnRlcmZh
Y2VQcm90b3R5cGVGdW5jdGlvblN1cHBsZW1lbnRhbE1ldGhvZDEoSlNDOjpFeGVjU3RhdGUqKTsK
LUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5
cGVGdW5jdGlvblN1cHBsZW1lbnRhbE1ldGhvZDIoSlNDOjpFeGVjU3RhdGUqKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlv
blN1cHBsZW1lbnRhbE1ldGhvZDMoSlNDOjpFeGVjU3RhdGUqKTsKIC8vIEF0dHJpYnV0ZXMKIAot
SlNDOjpKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjEoSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYpOwotSlNDOjpKU1ZhbHVl
IGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpT
VmFsdWUsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYpOwotdm9pZCBzZXRKU1Rlc3RJbnRlcmZhY2VT
dXBwbGVtZW50YWxTdHIyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6SlNW
YWx1ZSk7Ci1KU0M6OkpTVmFsdWUganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMyhKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpJZGVudGlmaWVyJik7Ci12b2lk
IHNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjMoSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OkpTT2JqZWN0KiwgSlNDOjpKU1ZhbHVlKTsKK0pTQzo6SlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VH
ZW9sb2NhdGlvbihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpJZGVu
dGlmaWVyJik7CiBKU0M6OkpTVmFsdWUganNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3IoSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYpOwotLy8gQ29u
c3RhbnRzCi0KLSNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikK
LUpTQzo6SlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VTVVBQTEVNRU5UQUxDT05TVEFOVDEoSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYpOwotI2VuZGlm
Ci0jaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi1KU0M6OkpT
VmFsdWUganNUZXN0SW50ZXJmYWNlU1VQUExFTUVOVEFMQ09OU1RBTlQyKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6OklkZW50aWZpZXImKTsKLSNlbmRpZgogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9PYmpDL0RPTVRlc3RJbnRlcmZhY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0SW50ZXJmYWNlLmgJKHJldmlz
aW9uIDEwODM4OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpD
L0RPTVRlc3RJbnRlcmZhY2UuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsMzQgKzI4LDEyIEBACiAK
ICNpZiBXRUJLSVRfVkVSU0lPTl9NQVhfQUxMT1dFRCA+PSBXRUJLSVRfVkVSU0lPTl9MQVRFU1QK
IAotQGNsYXNzIERPTVRlc3RPYmo7Ci1AY2xhc3MgTlNTdHJpbmc7Ci0KLWVudW0gewotI2lmIEVO
QUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQotICAgIERPTV9TVVBQTEVN
RU5UQUxDT05TVEFOVDEgPSAxLAotI2VuZGlmCi0jaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBF
TkFCTEUoQ29uZGl0aW9uMTIpCi0gICAgRE9NX1NVUFBMRU1FTlRBTENPTlNUQU5UMiA9IDIKLSNl
bmRpZgotCi19OworQGNsYXNzIERPTUdlb2xvY2F0aW9uOwogCiBAaW50ZXJmYWNlIERPTVRlc3RJ
bnRlcmZhY2UgOiBET01PYmplY3QKLSNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShD
b25kaXRpb24xMikKLS0gKE5TU3RyaW5nICopc3VwcGxlbWVudGFsU3RyMTsKLSNlbmRpZgotI2lm
IEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQotLSAoTlNTdHJpbmcg
KilzdXBwbGVtZW50YWxTdHIyOwotLSAodm9pZClzZXRTdXBwbGVtZW50YWxTdHIyOihOU1N0cmlu
ZyAqKW5ld1N1cHBsZW1lbnRhbFN0cjI7Ci0jZW5kaWYKLSNpZiBFTkFCTEUoQ29uZGl0aW9uMTEp
IHx8IEVOQUJMRShDb25kaXRpb24xMikKLS0gKE5TU3RyaW5nICopc3VwcGxlbWVudGFsU3RyMzsK
LS0gKHZvaWQpc2V0U3VwcGxlbWVudGFsU3RyMzooTlNTdHJpbmcgKiluZXdTdXBwbGVtZW50YWxT
dHIzOworI2lmIEVOQUJMRShHRU9MT0NBVElPTikKKy0gKERPTUdlb2xvY2F0aW9uICopZ2VvbG9j
YXRpb247CiAjZW5kaWYKLS0gKHZvaWQpc3VwcGxlbWVudGFsTWV0aG9kMTsKLS0gKERPTVRlc3RP
YmogKilzdXBwbGVtZW50YWxNZXRob2QyOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRl
c3RPYmogKilvYmpBcmc7Ci0tICh2b2lkKXN1cHBsZW1lbnRhbE1ldGhvZDM7CiBAZW5kCiAKICNl
bmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9N
VGVzdEludGVyZmFjZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0SW50ZXJmYWNlLm1tCShyZXZpc2lvbiAxMDgzODkpCisr
KyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0SW50ZXJm
YWNlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zNiwxNSArMzYsMTQgQEAKICNpbXBvcnQgIkRPTUNT
U1J1bGVJbnRlcm5hbC5oIgogI2ltcG9ydCAiRE9NQ1NTVmFsdWVJbnRlcm5hbC5oIgogI2ltcG9y
dCAiRE9NRXZlbnRJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NR2VvbG9jYXRpb25JbnRlcm5hbC5o
IgogI2ltcG9ydCAiRE9NTm9kZUludGVybmFsLmgiCiAjaW1wb3J0ICJET01TdHlsZVNoZWV0SW50
ZXJuYWwuaCIKICNpbXBvcnQgIkRPTVRlc3RJbnRlcmZhY2VJbnRlcm5hbC5oIgotI2ltcG9ydCAi
RE9NVGVzdE9iakludGVybmFsLmgiCiAjaW1wb3J0ICJFeGNlcHRpb25IYW5kbGVycy5oIgorI2lt
cG9ydCAiR2VvbG9jYXRpb24uaCIKICNpbXBvcnQgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIgot
I2ltcG9ydCAiS1VSTC5oIgogI2ltcG9ydCAiVGVzdEludGVyZmFjZS5oIgotI2ltcG9ydCAiVGVz
dE9iai5oIgogI2ltcG9ydCAiVGVzdFN1cHBsZW1lbnRhbC5oIgogI2ltcG9ydCAiVGhyZWFkQ2hl
Y2suaCIKICNpbXBvcnQgIldlYkNvcmVPYmpDRXh0cmFzLmgiCkBAIC03Miw3NSArNzEsMTQgQEAg
LSAodm9pZClmaW5hbGl6ZQogICAgIFtzdXBlciBmaW5hbGl6ZV07CiB9CiAKLSNpZiBFTkFCTEUo
Q29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLS0gKE5TU3RyaW5nICopc3VwcGxl
bWVudGFsU3RyMQorI2lmIEVOQUJMRShHRU9MT0NBVElPTikKKy0gKERPTUdlb2xvY2F0aW9uICop
Z2VvbG9jYXRpb24KIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
Ci0gICAgcmV0dXJuIFRlc3RTdXBwbGVtZW50YWw6OnN1cHBsZW1lbnRhbFN0cjEoSU1QTCk7Cisg
ICAgcmV0dXJuIGtpdChXVEY6OmdldFB0cihUZXN0U3VwcGxlbWVudGFsOjpnZW9sb2NhdGlvbihJ
TVBMKSkpOwogfQogI2VuZGlmCiAKLSNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShD
b25kaXRpb24xMikKLS0gKE5TU3RyaW5nICopc3VwcGxlbWVudGFsU3RyMgotewotICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICByZXR1cm4gVGVzdFN1cHBsZW1l
bnRhbDo6c3VwcGxlbWVudGFsU3RyMihJTVBMKTsKLX0KLQotLSAodm9pZClzZXRTdXBwbGVtZW50
YWxTdHIyOihOU1N0cmluZyAqKW5ld1N1cHBsZW1lbnRhbFN0cjIKLXsKLSAgICBXZWJDb3JlOjpK
U01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgVGVzdFN1cHBsZW1lbnRhbDo6c2V0U3Vw
cGxlbWVudGFsU3RyMihJTVBMLCBuZXdTdXBwbGVtZW50YWxTdHIyKTsKLX0KLSNlbmRpZgotCi0j
aWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi0tIChOU1N0cmlu
ZyAqKXN1cHBsZW1lbnRhbFN0cjMKLXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3Rh
dGUgc3RhdGU7Ci0gICAgcmV0dXJuIFRlc3RTdXBwbGVtZW50YWw6OnN1cHBsZW1lbnRhbFN0cjMo
SU1QTCk7Ci19Ci0KLS0gKHZvaWQpc2V0U3VwcGxlbWVudGFsU3RyMzooTlNTdHJpbmcgKiluZXdT
dXBwbGVtZW50YWxTdHIzCi17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOwotICAgIFRlc3RTdXBwbGVtZW50YWw6OnNldFN1cHBsZW1lbnRhbFN0cjMoSU1QTCwgbmV3
U3VwcGxlbWVudGFsU3RyMyk7Ci19Ci0jZW5kaWYKLQotCi0jaWYgRU5BQkxFKENvbmRpdGlvbjEx
KSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi0tICh2b2lkKXN1cHBsZW1lbnRhbE1ldGhvZDEKLXsK
LSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgVGVzdFN1cHBs
ZW1lbnRhbDo6c3VwcGxlbWVudGFsTWV0aG9kMShJTVBMKTsKLX0KLQotI2VuZGlmCi0KLQotI2lm
IEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQotLSAoRE9NVGVzdE9i
aiAqKXN1cHBsZW1lbnRhbE1ldGhvZDI6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVz
dE9iaiAqKW9iakFyZwotewotICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKLSAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBET01UZXN0T2JqICpy
ZXN1bHQgPSBraXQoV1RGOjpnZXRQdHIoVGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsTWV0
aG9kMihJTVBMLCBzdHJBcmcsIGNvcmUob2JqQXJnKSwgZWMpKSk7Ci0gICAgV2ViQ29yZTo6cmFp
c2VPbkRPTUVycm9yKGVjKTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi0jZW5kaWYKLQotCi0j
aWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi0tICh2b2lkKXN1
cHBsZW1lbnRhbE1ldGhvZDMKLXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7Ci0gICAgVGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsTWV0aG9kMyhJTVBMKTsK
LX0KLQotI2VuZGlmCi0KIEBlbmQKIAogV2ViQ29yZTo6VGVzdEludGVyZmFjZSogY29yZShET01U
ZXN0SW50ZXJmYWNlICp3cmFwcGVyKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5jcHAJKHJldmlz
aW9uIDEwODM4OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9W
OFRlc3RJbnRlcmZhY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwxMiArMzAsOSBAQAogI2lu
Y2x1ZGUgIlY4QmluZGluZ01hY3Jvcy5oIgogI2luY2x1ZGUgIlY4QmluZGluZ1N0YXRlLmgiCiAj
aW5jbHVkZSAiVjhET01XcmFwcGVyLmgiCisjaW5jbHVkZSAiVjhHZW9sb2NhdGlvbi5oIgogI2lu
Y2x1ZGUgIlY4SXNvbGF0ZWRDb250ZXh0LmgiCiAjaW5jbHVkZSAiVjhQcm94eS5oIgotI2luY2x1
ZGUgIlY4VGVzdE9iai5oIgotI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KLSNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVW51
c2VkUGFyYW0uaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDYsMTIzICs0MywyNiBAQCBu
YW1lc3BhY2UgVGVzdEludGVyZmFjZUludGVybmFsIHsKIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+
IHZvaWQgVjhfVVNFKFQpIHsgfQogCi0jaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUo
Q29uZGl0aW9uMTIpCisjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQogCi1zdGF0aWMgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IHN1cHBsZW1lbnRhbFN0cjFBdHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3Ry
aW5nPiBuYW1lLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQorc3RhdGljIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiBnZW9sb2NhdGlvbkF0dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+
IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCiB7Ci0gICAgSU5DX1NUQVRTKCJE
T00uVGVzdEludGVyZmFjZS5zdXBwbGVtZW50YWxTdHIxLl9nZXQiKTsKKyAgICBJTkNfU1RBVFMo
IkRPTS5UZXN0SW50ZXJmYWNlLmdlb2xvY2F0aW9uLl9nZXQiKTsKICAgICBUZXN0SW50ZXJmYWNl
KiBpbXAgPSBWOFRlc3RJbnRlcmZhY2U6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwotICAgIHJl
dHVybiB2OFN0cmluZyhUZXN0U3VwcGxlbWVudGFsOjpzdXBwbGVtZW50YWxTdHIxKGltcCkpOwot
fQotCi0jZW5kaWYgLy8gRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIp
Ci0KLSNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLQotc3Rh
dGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBzdXBwbGVtZW50YWxTdHIyQXR0ckdldHRlcih2ODo6
TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKLXsK
LSAgICBJTkNfU1RBVFMoIkRPTS5UZXN0SW50ZXJmYWNlLnN1cHBsZW1lbnRhbFN0cjIuX2dldCIp
OwotICAgIFRlc3RJbnRlcmZhY2UqIGltcCA9IFY4VGVzdEludGVyZmFjZTo6dG9OYXRpdmUoaW5m
by5Ib2xkZXIoKSk7Ci0gICAgcmV0dXJuIHY4U3RyaW5nKFRlc3RTdXBwbGVtZW50YWw6OnN1cHBs
ZW1lbnRhbFN0cjIoaW1wKSk7Ci19Ci0KLSNlbmRpZiAvLyBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8
IEVOQUJMRShDb25kaXRpb24xMikKLQotI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxF
KENvbmRpdGlvbjEyKQotCi1zdGF0aWMgdm9pZCBzdXBwbGVtZW50YWxTdHIyQXR0clNldHRlcih2
ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNv
bnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCi17Ci0gICAgSU5DX1NUQVRTKCJET00uVGVzdElu
dGVyZmFjZS5zdXBwbGVtZW50YWxTdHIyLl9zZXQiKTsKLSAgICBUZXN0SW50ZXJmYWNlKiBpbXAg
PSBWOFRlc3RJbnRlcmZhY2U6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwotICAgIFNUUklOR19U
T19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0tfVk9JRChWOFBhcmFtZXRlcjw+LCB2LCB2YWx1
ZSk7Ci0gICAgVGVzdFN1cHBsZW1lbnRhbDo6c2V0U3VwcGxlbWVudGFsU3RyMihpbXAsIHYpOwot
ICAgIHJldHVybjsKLX0KLQotI2VuZGlmIC8vIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxF
KENvbmRpdGlvbjEyKQotCi0jaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0
aW9uMTIpCi0KLXN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gc3VwcGxlbWVudGFsTWV0aG9k
MUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCi17Ci0gICAgSU5DX1NUQVRTKCJE
T00uVGVzdEludGVyZmFjZS5zdXBwbGVtZW50YWxNZXRob2QxIik7Ci0gICAgVGVzdEludGVyZmFj
ZSogaW1wID0gVjhUZXN0SW50ZXJmYWNlOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICBU
ZXN0U3VwcGxlbWVudGFsOjpzdXBwbGVtZW50YWxNZXRob2QxKGltcCk7Ci0gICAgcmV0dXJuIHY4
OjpIYW5kbGU8djg6OlZhbHVlPigpOwotfQotCi0jZW5kaWYgLy8gRU5BQkxFKENvbmRpdGlvbjEx
KSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi0KLSNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVO
QUJMRShDb25kaXRpb24xMikKLQotc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBzdXBwbGVt
ZW50YWxNZXRob2QyQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKLXsKLSAgICBJ
TkNfU1RBVFMoIkRPTS5UZXN0SW50ZXJmYWNlLnN1cHBsZW1lbnRhbE1ldGhvZDIiKTsKLSAgICBp
ZiAoYXJncy5MZW5ndGgoKSA8IDIpCi0gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJOb3QgZW5v
dWdoIGFyZ3VtZW50cyIsIFY4UHJveHk6OlR5cGVFcnJvcik7Ci0gICAgVGVzdEludGVyZmFjZSog
aW1wID0gVjhUZXN0SW50ZXJmYWNlOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICBFeGNl
cHRpb25Db2RlIGVjID0gMDsKLSAgICB7Ci0gICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQ
VElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+LCBzdHJBcmcsIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVS
KGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpOwotICAgIEVYQ0VQVElPTl9CTE9DSyhUZXN0
T2JqKiwgb2JqQXJnLCBWOFRlc3RPYmo6Okhhc0luc3RhbmNlKE1BWUJFX01JU1NJTkdfUEFSQU1F
VEVSKGFyZ3MsIDEsIERlZmF1bHRJc1VuZGVmaW5lZCkpID8gVjhUZXN0T2JqOjp0b05hdGl2ZSh2
ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3Ms
IDEsIERlZmF1bHRJc1VuZGVmaW5lZCkpKSA6IDApOwotICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIHNjcmlwdENvbnRleHQgPSBnZXRTY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7Ci0gICAgaWYg
KCFzY3JpcHRDb250ZXh0KQotICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwotICAgIFJl
ZlB0cjxUZXN0T2JqPiByZXN1bHQgPSBUZXN0U3VwcGxlbWVudGFsOjpzdXBwbGVtZW50YWxNZXRo
b2QyKGltcCwgc2NyaXB0Q29udGV4dCwgc3RyQXJnLCBvYmpBcmcsIGVjKTsKLSAgICBpZiAoVU5M
SUtFTFkoZWMpKQotICAgICAgICBnb3RvIGZhaWw7Ci0gICAgcmV0dXJuIHRvVjgocmVzdWx0LnJl
bGVhc2UoKSk7CisgICAgUmVmUHRyPEdlb2xvY2F0aW9uPiByZXN1bHQgPSBUZXN0U3VwcGxlbWVu
dGFsOjpnZW9sb2NhdGlvbihpbXApOworICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB3cmFwcGVy
ID0gcmVzdWx0LmdldCgpID8gVjhHZW9sb2NhdGlvbjo6ZXhpc3RpbmdXcmFwcGVyKHJlc3VsdC5n
ZXQoKSkgOiB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+KCk7CisgICAgaWYgKHdyYXBwZXIuSXNFbXB0
eSgpKSB7CisgICAgICAgIHdyYXBwZXIgPSB0b1Y4KHJlc3VsdC5nZXQoKSk7CisgICAgICAgIGlm
ICghd3JhcHBlci5Jc0VtcHR5KCkpCisgICAgICAgICAgICBWOERPTVdyYXBwZXI6OnNldE5hbWVk
SGlkZGVuUmVmZXJlbmNlKGluZm8uSG9sZGVyKCksICJnZW9sb2NhdGlvbiIsIHdyYXBwZXIpOwog
ICAgIH0KLSAgICBmYWlsOgotICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihlYyk7Ci0gICAg
cmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOworICAgIHJldHVybiB3cmFwcGVyOwogfQog
Ci0jZW5kaWYgLy8gRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCisj
ZW5kaWYgLy8gRU5BQkxFKEdFT0xPQ0FUSU9OKQogCiB9IC8vIG5hbWVzcGFjZSBUZXN0SW50ZXJm
YWNlSW50ZXJuYWwKIAotc3RhdGljIGNvbnN0IEJhdGNoZWRBdHRyaWJ1dGUgVGVzdEludGVyZmFj
ZUF0dHJzW10gPSB7Ci0jaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9u
MTIpCi0gICAgLy8gQXR0cmlidXRlICdzdXBwbGVtZW50YWxTdHIxJyAoVHlwZTogJ3JlYWRvbmx5
IGF0dHJpYnV0ZScgRXh0QXR0cjogJ0NvbmRpdGlvbmFsIEltcGxlbWVudGVkQnknKQotICAgIHsi
c3VwcGxlbWVudGFsU3RyMSIsIFRlc3RJbnRlcmZhY2VJbnRlcm5hbDo6c3VwcGxlbWVudGFsU3Ry
MUF0dHJHZXR0ZXIsIDAsIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0Nv
bnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2
ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAotI2VuZGlmIC8vIEVOQUJMRShDb25kaXRp
b24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQotI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwg
RU5BQkxFKENvbmRpdGlvbjEyKQotICAgIC8vIEF0dHJpYnV0ZSAnc3VwcGxlbWVudGFsU3RyMicg
KFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICdDb25kaXRpb25hbCBJbXBsZW1lbnRlZEJ5JykK
LSAgICB7InN1cHBsZW1lbnRhbFN0cjIiLCBUZXN0SW50ZXJmYWNlSW50ZXJuYWw6OnN1cHBsZW1l
bnRhbFN0cjJBdHRyR2V0dGVyLCBUZXN0SW50ZXJmYWNlSW50ZXJuYWw6OnN1cHBsZW1lbnRhbFN0
cjJBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250
cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6
Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKLSNlbmRpZiAvLyBFTkFCTEUoQ29uZGl0aW9u
MTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLSNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVO
QUJMRShDb25kaXRpb24xMikKLSAgICAvLyBBdHRyaWJ1dGUgJ3N1cHBsZW1lbnRhbFN0cjMnIChU
eXBlOiAnYXR0cmlidXRlJyBFeHRBdHRyOiAnQ3VzdG9tU2V0dGVyIEN1c3RvbUdldHRlciBDb25k
aXRpb25hbCBJbXBsZW1lbnRlZEJ5JykKLSAgICB7InN1cHBsZW1lbnRhbFN0cjMiLCBWOFRlc3RJ
bnRlcmZhY2U6OnN1cHBsZW1lbnRhbFN0cjNBY2Nlc3NvckdldHRlciwgVjhUZXN0SW50ZXJmYWNl
OjpzdXBwbGVtZW50YWxTdHIzQWNjZXNzb3JTZXR0ZXIsIDAgLyogbm8gZGF0YSAqLywgc3RhdGlj
X2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlBy
b3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAotI2VuZGlm
IC8vIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQotfTsKLQotc3Rh
dGljIGNvbnN0IEJhdGNoZWRDYWxsYmFjayBUZXN0SW50ZXJmYWNlQ2FsbGJhY2tzW10gPSB7Ci0j
aWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi0gICAgeyJzdXBw
bGVtZW50YWxNZXRob2QxIiwgVGVzdEludGVyZmFjZUludGVybmFsOjpzdXBwbGVtZW50YWxNZXRo
b2QxQ2FsbGJhY2t9LAotI2VuZGlmCi0jaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUo
Q29uZGl0aW9uMTIpCi0gICAgeyJzdXBwbGVtZW50YWxNZXRob2QzIiwgVjhUZXN0SW50ZXJmYWNl
OjpzdXBwbGVtZW50YWxNZXRob2QzQ2FsbGJhY2t9LAotI2VuZGlmCi19OwotCi1zdGF0aWMgY29u
c3QgQmF0Y2hlZENvbnN0YW50IFRlc3RJbnRlcmZhY2VDb25zdHNbXSA9IHsKLSNpZiBFTkFCTEUo
Q29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLSAgICB7IlNVUFBMRU1FTlRBTENP
TlNUQU5UMSIsIHN0YXRpY19jYXN0PHNpZ25lZCBpbnQ+KDEpfSwKLSNlbmRpZgotI2lmIEVOQUJM
RShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQotICAgIHsiU1VQUExFTUVOVEFM
Q09OU1RBTlQyIiwgc3RhdGljX2Nhc3Q8c2lnbmVkIGludD4oMil9LAotI2VuZGlmCi19OwotCi0K
LSNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLUNPTVBJTEVf
QVNTRVJUKDEgPT0gVGVzdEludGVyZmFjZTo6U1VQUExFTUVOVEFMQ09OU1RBTlQxLCBUZXN0SW50
ZXJmYWNlRW51bVNVUFBMRU1FTlRBTENPTlNUQU5UMUlzV3JvbmdVc2VEb05vdENoZWNrQ29uc3Rh
bnRzKTsKLSNlbmRpZgotI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlv
bjEyKQotQ09NUElMRV9BU1NFUlQoMiA9PSBUZXN0SW50ZXJmYWNlOjpDT05TVF9JTVBMLCBUZXN0
SW50ZXJmYWNlRW51bUNPTlNUX0lNUExJc1dyb25nVXNlRG9Ob3RDaGVja0NvbnN0YW50cyk7Ci0j
ZW5kaWYKLQogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4VGVzdEludGVyZmFjZTo6Y29uc3RydWN0
b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUygi
RE9NLlRlc3RJbnRlcmZhY2UuQ29uc3RydWN0b3IiKTsKQEAgLTIwMiw4ICsxMDIsOCBAQCBzdGF0
aWMgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhCiAKICAgICB2ODo6TG9jYWw8djg6
OlNpZ25hdHVyZT4gZGVmYXVsdFNpZ25hdHVyZTsKICAgICBkZWZhdWx0U2lnbmF0dXJlID0gY29u
ZmlndXJlVGVtcGxhdGUoZGVzYywgIlRlc3RJbnRlcmZhY2UiLCB2ODo6UGVyc2lzdGVudDx2ODo6
RnVuY3Rpb25UZW1wbGF0ZT4oKSwgVjhUZXN0SW50ZXJmYWNlOjppbnRlcm5hbEZpZWxkQ291bnQs
Ci0gICAgICAgIFRlc3RJbnRlcmZhY2VBdHRycywgV1RGX0FSUkFZX0xFTkdUSChUZXN0SW50ZXJm
YWNlQXR0cnMpLAotICAgICAgICBUZXN0SW50ZXJmYWNlQ2FsbGJhY2tzLCBXVEZfQVJSQVlfTEVO
R1RIKFRlc3RJbnRlcmZhY2VDYWxsYmFja3MpKTsKKyAgICAgICAgMCwgMCwKKyAgICAgICAgMCwg
MCk7CiAgICAgVU5VU0VEX1BBUkFNKGRlZmF1bHRTaWduYXR1cmUpOyAvLyBJbiBzb21lIGNhc2Vz
LCBpdCB3aWxsIG5vdCBiZSB1c2VkLgogICAgIGRlc2MtPlNldENhbGxIYW5kbGVyKFY4VGVzdElu
dGVyZmFjZTo6Y29uc3RydWN0b3JDYWxsYmFjayk7CiAgICAgdjg6OkxvY2FsPHY4OjpPYmplY3RU
ZW1wbGF0ZT4gaW5zdGFuY2UgPSBkZXNjLT5JbnN0YW5jZVRlbXBsYXRlKCk7CkBAIC0yMTIsMTQg
KzExMiwxNSBAQCBzdGF0aWMgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhCiAgICAg
VU5VU0VEX1BBUkFNKHByb3RvKTsgLy8gSW4gc29tZSBjYXNlcywgaXQgd2lsbCBub3QgYmUgdXNl
ZC4KICAgICAKIAotICAgIC8vIEN1c3RvbSBTaWduYXR1cmUgJ3N1cHBsZW1lbnRhbE1ldGhvZDIn
Ci0gICAgY29uc3QgaW50IHN1cHBsZW1lbnRhbE1ldGhvZDJBcmdjID0gMjsKLSAgICB2ODo6SGFu
ZGxlPHY4OjpGdW5jdGlvblRlbXBsYXRlPiBzdXBwbGVtZW50YWxNZXRob2QyQXJndltzdXBwbGVt
ZW50YWxNZXRob2QyQXJnY10gPSB7IHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uVGVtcGxhdGU+KCks
IFY4VGVzdE9iajo6R2V0UmF3VGVtcGxhdGUoKSB9OwotICAgIHY4OjpIYW5kbGU8djg6OlNpZ25h
dHVyZT4gc3VwcGxlbWVudGFsTWV0aG9kMlNpZ25hdHVyZSA9IHY4OjpTaWduYXR1cmU6Ok5ldyhk
ZXNjLCBzdXBwbGVtZW50YWxNZXRob2QyQXJnYywgc3VwcGxlbWVudGFsTWV0aG9kMkFyZ3YpOwot
I2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQotICAgIHByb3Rv
LT5TZXQodjg6OlN0cmluZzo6TmV3KCJzdXBwbGVtZW50YWxNZXRob2QyIiksIHY4OjpGdW5jdGlv
blRlbXBsYXRlOjpOZXcoVGVzdEludGVyZmFjZUludGVybmFsOjpzdXBwbGVtZW50YWxNZXRob2Qy
Q2FsbGJhY2ssIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpLCBzdXBwbGVtZW50YWxNZXRob2QyU2ln
bmF0dXJlKSk7Ci0jZW5kaWYgLy8gRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0
aW9uMTIpCi0gICAgYmF0Y2hDb25maWd1cmVDb25zdGFudHMoZGVzYywgcHJvdG8sIFRlc3RJbnRl
cmZhY2VDb25zdHMsIFdURl9BUlJBWV9MRU5HVEgoVGVzdEludGVyZmFjZUNvbnN0cykpOworI2lm
IEVOQUJMRShHRU9MT0NBVElPTikKKyAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6Z2Vv
bG9jYXRpb25FbmFibGVkKCkpIHsKKyAgICAgICAgc3RhdGljIGNvbnN0IEJhdGNoZWRBdHRyaWJ1
dGUgYXR0ckRhdGEgPVwKKyAgICAgICAgLy8gQXR0cmlidXRlICdnZW9sb2NhdGlvbicgKFR5cGU6
ICdyZWFkb25seSBhdHRyaWJ1dGUnIEV4dEF0dHI6ICdWOEVuYWJsZWRBdFJ1bnRpbWUgQ29uZGl0
aW9uYWwgSW1wbGVtZW50ZWRCeScpCisgICAgICAgIHsiZ2VvbG9jYXRpb24iLCBUZXN0SW50ZXJm
YWNlSW50ZXJuYWw6Omdlb2xvY2F0aW9uQXR0ckdldHRlciwgMCwgMCAvKiBubyBkYXRhICovLCBz
dGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2
ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL307Cisg
ICAgICAgIGNvbmZpZ3VyZUF0dHJpYnV0ZShpbnN0YW5jZSwgcHJvdG8sIGF0dHJEYXRhKTsKKyAg
ICB9CisKKyNlbmRpZiAvLyBFTkFCTEUoR0VPTE9DQVRJT04pCiAKICAgICAvLyBDdXN0b20gdG9T
dHJpbmcgdGVtcGxhdGUKICAgICBkZXNjLT5TZXQoZ2V0VG9TdHJpbmdOYW1lKCksIGdldFRvU3Ry
aW5nVGVtcGxhdGUoKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAJ
KHJldmlzaW9uIDEwODM4OSkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI0MzksOCArMjQzOSw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6
OmNsb3NlQW5kUmVtb3ZlQ2hpbGQoRnIKICAgICBjaGlsZC0+c2V0VmlldygwKTsKICAgICBpZiAo
Y2hpbGQtPm93bmVyRWxlbWVudCgpICYmIGNoaWxkLT5wYWdlKCkpCiAgICAgICAgIGNoaWxkLT5w
YWdlKCktPmRlY3JlbWVudEZyYW1lQ291bnQoKTsKLSAgICAvLyBGSVhNRTogVGhlIHBhZ2UgaXNu
J3QgYmVpbmcgZGVzdHJveWVkLCBzbyBpdCdzIG5vdCByaWdodCB0byBjYWxsIGEgZnVuY3Rpb24g
bmFtZWQgcGFnZURlc3Ryb3llZCgpLgotICAgIGNoaWxkLT5wYWdlRGVzdHJveWVkKCk7CisgICAg
Y2hpbGQtPmRldGFjaEZyb21QYWdlKCk7CiAKICAgICBtX2ZyYW1lLT50cmVlKCktPnJlbW92ZUNo
aWxkKGNoaWxkKTsKIH0KQEAgLTI1MTgsOCArMjUxNyw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmRl
dGFjaEZyb21QYXJlbnQoKQogICAgICAgICBwYXJlbnQtPmxvYWRlcigpLT5zY2hlZHVsZUNoZWNr
Q29tcGxldGVkKCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgbV9mcmFtZS0+c2V0VmlldygwKTsK
LSAgICAgICAgLy8gRklYTUU6IFRoZSBwYWdlIGlzbid0IGJlaW5nIGRlc3Ryb3llZCwgc28gaXQn
cyBub3QgcmlnaHQgdG8gY2FsbCBhIGZ1bmN0aW9uIG5hbWVkIHBhZ2VEZXN0cm95ZWQoKS4KLSAg
ICAgICAgbV9mcmFtZS0+cGFnZURlc3Ryb3llZCgpOworICAgICAgICBtX2ZyYW1lLT5kZXRhY2hG
cm9tUGFnZSgpOwogICAgIH0KIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAko
cmV2aXNpb24gMTA4Mzg5KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00ODAsNiArNDgwLDIxIEBAIHZvaWQgRE9NV2luZG93OjpmcmFtZURl
c3Ryb3llZCgpCiAgICAgY2xlYXIoKTsKIH0KIAordm9pZCBET01XaW5kb3c6OndpbGxEZXRhY2hQ
YWdlKCkKK3sKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lV2luZG93RGlzY2Fy
ZGVkKG1fZnJhbWUsIHRoaXMpOworCisjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCisgICAgLy8g
Q2xlYXJpbmcgTm90aWZpY2F0aW9ucyByZXF1ZXN0cyBpbnZvbHZlcyBhY2Nlc3NpbmcgdGhlIGNs
aWVudCBzbyBpdCBtdXN0IGJlIGRvbmUKKyAgICAvLyBiZWZvcmUgdGhlIGZyYW1lIGlzIGRldGFj
aGVkLgorICAgIHJlc2V0Tm90aWZpY2F0aW9ucygpOworI2VuZGlmCisKKyAgICBIYXNoU2V0PERP
TVdpbmRvd1Byb3BlcnR5Kj46Oml0ZXJhdG9yIHN0b3AgPSBtX3Byb3BlcnRpZXMuZW5kKCk7Cisg
ICAgZm9yIChIYXNoU2V0PERPTVdpbmRvd1Byb3BlcnR5Kj46Oml0ZXJhdG9yIGl0ID0gbV9wcm9w
ZXJ0aWVzLmJlZ2luKCk7IGl0ICE9IHN0b3A7ICsraXQpCisgICAgICAgICgqaXQpLT53aWxsRGV0
YWNoUGFnZSgpOworfQorCiB2b2lkIERPTVdpbmRvdzo6cmVnaXN0ZXJQcm9wZXJ0eShET01XaW5k
b3dQcm9wZXJ0eSogcHJvcGVydHkpCiB7CiAgICAgbV9wcm9wZXJ0aWVzLmFkZChwcm9wZXJ0eSk7
CkBAIC03MzEsMjMgKzc0Niw2IEBAIHZvaWQgRE9NV2luZG93OjpyZXNldE5vdGlmaWNhdGlvbnMo
KQogfQogI2VuZGlmCiAKLXZvaWQgRE9NV2luZG93OjpwYWdlRGVzdHJveWVkKCkKLXsKLSAgICBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lV2luZG93RGlzY2FyZGVkKG1fZnJhbWUsIHRo
aXMpOwotI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQotICAgIC8vIENsZWFyaW5nIE5vdGlmaWNh
dGlvbnMgcmVxdWVzdHMgaW52b2x2ZXMgYWNjZXNzaW5nIHRoZSBjbGllbnQgc28gaXQgbXVzdCBi
ZSBkb25lCi0gICAgLy8gYmVmb3JlIHRoZSBmcmFtZSBpcyBkZXRhY2hlZC4KLSAgICByZXNldE5v
dGlmaWNhdGlvbnMoKTsKLSNlbmRpZgotfQotCi12b2lkIERPTVdpbmRvdzo6cmVzZXRHZW9sb2Nh
dGlvbigpCi17Ci0gICAgLy8gR2VvbG9jYXRpb24gc2hvdWxkIGNhbmNlbCBhY3Rpdml0aWVzIGFu
ZCBwZXJtaXNzaW9uIHJlcXVlc3RzIHdoZW4gdGhlIHBhZ2UgaXMgZGV0YWNoZWQuCi0gICAgaWYg
KG1fbmF2aWdhdG9yKQotICAgICAgICBtX25hdmlnYXRvci0+cmVzZXRHZW9sb2NhdGlvbigpOwot
fQotCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiB2b2lkIERPTVdpbmRvdzo6c2V0SURC
RmFjdG9yeShQYXNzUmVmUHRyPElEQkZhY3Rvcnk+IGlkYkZhY3RvcnkpCiB7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmgJKHJldmlzaW9uIDEwODM4OSkKKysrIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmgJKHdvcmtpbmcgY29weSkKQEAgLTkyLDggKzkyLDYgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiAgICAgICAgIHZpcnR1YWwgRE9NV2luZG93KiB0b0RPTVdpbmRvdygpOwog
Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBmcmFtZURlc3Ryb3llZCgpIE9WRVJSSURFOwotCiAgICAg
ICAgIHZvaWQgcmVnaXN0ZXJQcm9wZXJ0eShET01XaW5kb3dQcm9wZXJ0eSopOwogICAgICAgICB2
b2lkIHVucmVnaXN0ZXJQcm9wZXJ0eShET01XaW5kb3dQcm9wZXJ0eSopOwogCkBAIC0yMzEsOSAr
MjI5LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHByaW50RXJyb3JNZXNz
YWdlKGNvbnN0IFN0cmluZyYpOwogICAgICAgICBTdHJpbmcgY3Jvc3NEb21haW5BY2Nlc3NFcnJv
ck1lc3NhZ2UoRE9NV2luZG93KiBhY3RpdmVXaW5kb3cpOwogCi0gICAgICAgIHZvaWQgcGFnZURl
c3Ryb3llZCgpOwotICAgICAgICB2b2lkIHJlc2V0R2VvbG9jYXRpb24oKTsKLQogICAgICAgICB2
b2lkIHBvc3RNZXNzYWdlKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBtZXNzYWdl
LCBjb25zdCBNZXNzYWdlUG9ydEFycmF5KiwgY29uc3QgU3RyaW5nJiB0YXJnZXRPcmlnaW4sIERP
TVdpbmRvdyogc291cmNlLCBFeGNlcHRpb25Db2RlJik7CiAgICAgICAgIC8vIEZJWE1FOiByZW1v
dmUgdGhpcyB3aGVuIHdlIHVwZGF0ZSB0aGUgT2JqQyBiaW5kaW5ncyAoYnVnICMyODc3NCkuCiAg
ICAgICAgIHZvaWQgcG9zdE1lc3NhZ2UoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+
IG1lc3NhZ2UsIE1lc3NhZ2VQb3J0KiwgY29uc3QgU3RyaW5nJiB0YXJnZXRPcmlnaW4sIERPTVdp
bmRvdyogc291cmNlLCBFeGNlcHRpb25Db2RlJik7CkBAIC00MTksNiArNDE0LDkgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgIHByaXZhdGU6CiAgICAgICAgIGV4cGxpY2l0IERPTVdpbmRvdyhG
cmFtZSopOwogCisgICAgICAgIHZpcnR1YWwgdm9pZCBmcmFtZURlc3Ryb3llZCgpIE9WRVJSSURF
OworICAgICAgICB2aXJ0dWFsIHZvaWQgd2lsbERldGFjaFBhZ2UoKSBPVkVSUklERTsKKwogICAg
ICAgICB2aXJ0dWFsIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSB7IHJlZigpOyB9CiAgICAgICAgIHZp
cnR1YWwgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgeyBkZXJlZigpOyB9CiAgICAgICAgIHZpcnR1
YWwgRXZlbnRUYXJnZXREYXRhKiBldmVudFRhcmdldERhdGEoKTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93UHJvcGVydHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93UHJvcGVydHkuY3BwCShyZXZpc2lvbiAxMDgzODkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd1Byb3BlcnR5LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NDksNCArNDksOSBAQCB2b2lkIERPTVdpbmRvd1Byb3BlcnR5OjpkaXNjb25uZWN0RnJhbWUoCiAg
ICAgbV9mcmFtZSA9IDA7CiB9CiAKK3ZvaWQgRE9NV2luZG93UHJvcGVydHk6OndpbGxEZXRhY2hQ
YWdlKCkKK3sKKyAgICAvLyBTdWJjbGFzc2VzIHNob3VsZCBvdmVycmlkZSB0aGlzIGZ1bmN0aW9u
IHRvIGhhbmRsZSB0aGlzIG5vdGlmaWNhdGlvbi4KK30KKwogfQpJbmRleDogU291cmNlL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3dQcm9wZXJ0eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93UHJvcGVydHkuaAkocmV2aXNpb24gMTA4Mzg5KQorKysgU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3dQcm9wZXJ0eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICsz
Myw5IEBAIGNsYXNzIEZyYW1lOwogY2xhc3MgRE9NV2luZG93UHJvcGVydHkgewogcHVibGljOgog
ICAgIGV4cGxpY2l0IERPTVdpbmRvd1Byb3BlcnR5KEZyYW1lKik7CisKICAgICB2aXJ0dWFsIHZv
aWQgZGlzY29ubmVjdEZyYW1lKCk7CisgICAgdmlydHVhbCB2b2lkIHdpbGxEZXRhY2hQYWdlKCk7
CiAKICAgICBGcmFtZSogZnJhbWUoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lOyB9CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWUuY3BwCShyZXZpc2lvbiAxMDgzODkpCisrKyBTb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjYwLDIxICs2NjAsMTkgQEAgRE9NV2lu
ZG93KiBGcmFtZTo6ZG9tV2luZG93KCkgY29uc3QKICAgICByZXR1cm4gbV9kb21XaW5kb3cuZ2V0
KCk7CiB9CiAKLXZvaWQgRnJhbWU6OnBhZ2VEZXN0cm95ZWQoKQordm9pZCBGcmFtZTo6d2lsbERl
dGFjaFBhZ2UoKQogewotICAgIC8vIEZJWE1FOiBSZW5hbWUgdGhpcyBmdW5jdGlvbiwgc2luY2Ug
aXQncyBjYWxsZWQgbm90IG9ubHkgZnJvbSBQYWdlIGRlc3RydWN0b3IsIGJ1dCBpbiBzZXZlcmFs
IG90aGVyIGNhc2VzLgotICAgIC8vIFRoaXMgY2xlYW51cCBpcyBuZWVkZWQgd2hlbmV2ZXIgd2Ug
cmVtb3ZlIGEgZnJhbWUgZnJvbSBwYWdlLgotCiAgICAgaWYgKEZyYW1lKiBwYXJlbnQgPSB0cmVl
KCktPnBhcmVudCgpKQogICAgICAgICBwYXJlbnQtPmxvYWRlcigpLT5jaGVja0xvYWRDb21wbGV0
ZSgpOwogCi0gICAgaWYgKG1fZG9tV2luZG93KSB7Ci0gICAgICAgIG1fZG9tV2luZG93LT5yZXNl
dEdlb2xvY2F0aW9uKCk7CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCisgICAgaWYgKG1fZG9t
V2luZG93KQogICAgICAgICBtX2RvbVdpbmRvdy0+cmVzZXROb3RpZmljYXRpb25zKCk7CiAjZW5k
aWYKLSAgICAgICAgbV9kb21XaW5kb3ctPnBhZ2VEZXN0cm95ZWQoKTsKLSAgICB9CisKKyAgICBI
YXNoU2V0PEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlcio+OjppdGVyYXRvciBzdG9wID0gbV9kZXN0
cnVjdGlvbk9ic2VydmVycy5lbmQoKTsKKyAgICBmb3IgKEhhc2hTZXQ8RnJhbWVEZXN0cnVjdGlv
bk9ic2VydmVyKj46Oml0ZXJhdG9yIGl0ID0gbV9kZXN0cnVjdGlvbk9ic2VydmVycy5iZWdpbigp
OyBpdCAhPSBzdG9wOyArK2l0KQorICAgICAgICAoKml0KS0+d2lsbERldGFjaFBhZ2UoKTsKIAog
ICAgIC8vIEZJWE1FOiBJdCdzIHVuY2xlYXIgYXMgdG8gd2h5IHRoaXMgaXMgY2FsbGVkIG1vcmUg
dGhhbiBvbmNlLCBidXQgaXQgaXMsCiAgICAgLy8gc28gcGFnZSgpIGNvdWxkIGJlIE5VTEwuCkBA
IC02ODMsOCArNjgxLDYgQEAgdm9pZCBGcmFtZTo6cGFnZURlc3Ryb3llZCgpCiAKICAgICBzY3Jp
cHQoKS0+Y2xlYXJTY3JpcHRPYmplY3RzKCk7CiAgICAgc2NyaXB0KCktPnVwZGF0ZVBsYXRmb3Jt
U2NyaXB0T2JqZWN0cygpOwotCi0gICAgZGV0YWNoRnJvbVBhZ2UoKTsKIH0KIAogdm9pZCBGcmFt
ZTo6ZGlzY29ubmVjdE93bmVyRWxlbWVudCgpCkBAIC03MTgsMTcgKzcxNCwxNiBAQCB2b2lkIEZy
YW1lOjp0cmFuc2ZlckNoaWxkRnJhbWVUb05ld0RvY3VtCiAgICAgICAgICAgICAgbV9wYWdlLT5k
ZWNyZW1lbnRGcmFtZUNvdW50KCk7CiAgICAgICAgIH0KIAotICAgICAgICAvLyBGSVhNRTogV2Ug
c2hvdWxkIGlkZWFsbHkgYWxsb3cgZXhpc3RpbmcgR2VvbG9jYXRpb24gYWN0aXZpdGllcyB0byBj
b250aW51ZQotICAgICAgICAvLyB3aGVuIHRoZSBHZW9sb2NhdGlvbidzIGlmcmFtZSBpcyByZXBh
cmVudGVkLgotICAgICAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTU1NTc3Ci0gICAgICAgIC8vIGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTI4NzcKICAgICAgICAgaWYgKG1fZG9tV2luZG93KSB7Ci0gICAgICAgICAg
ICBtX2RvbVdpbmRvdy0+cmVzZXRHZW9sb2NhdGlvbigpOwogI2lmIEVOQUJMRShOT1RJRklDQVRJ
T05TKQogICAgICAgICAgICAgbV9kb21XaW5kb3ctPnJlc2V0Tm90aWZpY2F0aW9ucygpOwogI2Vu
ZGlmCiAgICAgICAgIH0KIAorICAgICAgICBIYXNoU2V0PEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZl
cio+OjppdGVyYXRvciBzdG9wID0gbV9kZXN0cnVjdGlvbk9ic2VydmVycy5lbmQoKTsKKyAgICAg
ICAgZm9yIChIYXNoU2V0PEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlcio+OjppdGVyYXRvciBpdCA9
IG1fZGVzdHJ1Y3Rpb25PYnNlcnZlcnMuYmVnaW4oKTsgaXQgIT0gc3RvcDsgKytpdCkKKyAgICAg
ICAgICAgICgqaXQpLT53aWxsRGV0YWNoUGFnZSgpOworCiAgICAgICAgIG1fcGFnZSA9IG5ld1Bh
Z2U7CiAKICAgICAgICAgaWYgKG5ld1BhZ2UpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCShyZXZpc2lv
biAxMDgzODkpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgJKHdvcmtpbmcgY29weSkK
QEAgLTg5LDggKzg5LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIGFkZERl
c3RydWN0aW9uT2JzZXJ2ZXIoRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyKik7CiAgICAgICAgIHZv
aWQgcmVtb3ZlRGVzdHJ1Y3Rpb25PYnNlcnZlcihGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIqKTsK
IAorICAgICAgICB2b2lkIHdpbGxEZXRhY2hQYWdlKCk7CiAgICAgICAgIHZvaWQgZGV0YWNoRnJv
bVBhZ2UoKTsKLSAgICAgICAgdm9pZCBwYWdlRGVzdHJveWVkKCk7CiAgICAgICAgIHZvaWQgZGlz
Y29ubmVjdE93bmVyRWxlbWVudCgpOwogCiAgICAgICAgIFBhZ2UqIHBhZ2UoKSBjb25zdDsKQEAg
LTM0OCw2ICszNDgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBpbmxpbmUgdm9pZCBG
cmFtZTo6ZGV0YWNoRnJvbVBhZ2UoKQogICAgIHsKKyAgICAgICAgd2lsbERldGFjaFBhZ2UoKTsK
ICAgICAgICAgbV9wYWdlID0gMDsKICAgICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlci5jcHAJKHJldmlzaW9uIDEwODM4OSkKKysr
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNTgsNCArNTgsOSBAQCB2b2lkIEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlcjo6
ZnJhbWVEZXN0CiAgICAgbV9mcmFtZSA9IDA7CiB9CiAKK3ZvaWQgRnJhbWVEZXN0cnVjdGlvbk9i
c2VydmVyOjp3aWxsRGV0YWNoUGFnZSgpCit7CisgICAgLy8gU3ViY2xhc3NlcyBzaG91bGQgb3Zl
cnJpZGUgdGhpcyBmdW5jdGlvbiB0byBoYW5kbGUgdGhpcyBub3RpZmljYXRpb24uCit9CisKIH0K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIu
aAkocmV2aXNpb24gMTA4Mzg5KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZURlc3RydWN0
aW9uT2JzZXJ2ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsMTAgQEAgY2xhc3MgRnJh
bWU7CiBjbGFzcyBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIgewogcHVibGljOgogICAgIGV4cGxp
Y2l0IEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlcihGcmFtZSopOworCiAgICAgdmlydHVhbCB2b2lk
IGZyYW1lRGVzdHJveWVkKCk7CisgICAgdmlydHVhbCB2b2lkIHdpbGxEZXRhY2hQYWdlKCk7CisK
ICAgICBGcmFtZSogZnJhbWUoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lOyB9CiAKIHByb3RlY3Rl
ZDoKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5jcHAJKHJldmlzaW9uIDEwODM4OSkKKysr
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjcs
MTIgKzY3LDYgQEAgTmF2aWdhdG9yU3VwcGxlbWVudCogTmF2aWdhdG9yOjpyZXF1aXJlUwogICAg
IHJldHVybiBtX3N1cHBsaW1lbnRzLmdldChuYW1lLmltcGwoKSk7CiB9CiAKLXZvaWQgTmF2aWdh
dG9yOjpyZXNldEdlb2xvY2F0aW9uKCkKLXsKLSAgICBpZiAobV9nZW9sb2NhdGlvbikKLSAgICAg
ICAgbV9nZW9sb2NhdGlvbi0+cmVzZXQoKTsKLX0KLQogLy8gSWYgdGhpcyBmdW5jdGlvbiByZXR1
cm5zIHRydWUsIHdlIG5lZWQgdG8gaGlkZSB0aGUgc3Vic3RyaW5nICI0LiIgdGhhdCB3b3VsZCBv
dGhlcndpc2UKIC8vIGFwcGVhciBpbiB0aGUgYXBwVmVyc2lvbiBzdHJpbmcuIFRoaXMgaXMgdG8g
YXZvaWQgcHJvYmxlbXMgd2l0aCBvbGQgdmVyc2lvbnMgb2YgYQogLy8gbGlicmFyeSBjYWxsZWQg
T3BlbkN1YmUgUXVpY2tNZW51LCB3aGljaCBhcyBvZiB0aGlzIHdyaXRpbmcgaXMgc3RpbGwgYmVp
bmcgdXNlZCBvbgpAQCAtMTUxLDEzICsxNDUsNiBAQCBib29sIE5hdmlnYXRvcjo6amF2YUVuYWJs
ZWQoKSBjb25zdAogICAgIHJldHVybiBtX2ZyYW1lLT5zZXR0aW5ncygpLT5pc0phdmFFbmFibGVk
KCk7CiB9CiAKLUdlb2xvY2F0aW9uKiBOYXZpZ2F0b3I6Omdlb2xvY2F0aW9uKCkgY29uc3QKLXsK
LSAgICBpZiAoIW1fZ2VvbG9jYXRpb24pCi0gICAgICAgIG1fZ2VvbG9jYXRpb24gPSBHZW9sb2Nh
dGlvbjo6Y3JlYXRlKG1fZnJhbWUpOwotICAgIHJldHVybiBtX2dlb2xvY2F0aW9uLmdldCgpOwot
fQotCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKIFBvaW50ZXJMb2NrKiBOYXZpZ2F0b3I6Ondl
YmtpdFBvaW50ZXIoKSBjb25zdAogewpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0
b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5oCShyZXZp
c2lvbiAxMDgzODkpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zNCw3ICszNCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIERPTU1p
bWVUeXBlQXJyYXk7CiBjbGFzcyBET01QbHVnaW5BcnJheTsKIGNsYXNzIEZyYW1lOwotY2xhc3Mg
R2VvbG9jYXRpb247CiBjbGFzcyBQb2ludGVyTG9jazsKIGNsYXNzIFBsdWdpbkRhdGE7CiAKQEAg
LTQ1LDggKzQ0LDYgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPE5hdmlnYXRvcj4g
Y3JlYXRlKEZyYW1lKiBmcmFtZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IE5hdmlnYXRvcihmcmFt
ZSkpOyB9CiAgICAgdmlydHVhbCB+TmF2aWdhdG9yKCk7CiAKLSAgICB2b2lkIHJlc2V0R2VvbG9j
YXRpb24oKTsKLQogICAgIFN0cmluZyBhcHBWZXJzaW9uKCkgY29uc3Q7CiAgICAgU3RyaW5nIGxh
bmd1YWdlKCkgY29uc3Q7CiAgICAgRE9NUGx1Z2luQXJyYXkqIHBsdWdpbnMoKSBjb25zdDsKQEAg
LTU2LDggKzUzLDYgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBTdHJpbmcgdXNlckFnZW50KCkg
Y29uc3Q7CiAKLSAgICBHZW9sb2NhdGlvbiogZ2VvbG9jYXRpb24oKSBjb25zdDsKLQogI2lmIEVO
QUJMRShQT0lOVEVSX0xPQ0spCiAgICAgUG9pbnRlckxvY2sqIHdlYmtpdFBvaW50ZXIoKSBjb25z
dDsKICNlbmRpZgpAQCAtODAsNyArNzUsNiBAQCBwcml2YXRlOgogCiAgICAgbXV0YWJsZSBSZWZQ
dHI8RE9NUGx1Z2luQXJyYXk+IG1fcGx1Z2luczsKICAgICBtdXRhYmxlIFJlZlB0cjxET01NaW1l
VHlwZUFycmF5PiBtX21pbWVUeXBlczsKLSAgICBtdXRhYmxlIFJlZlB0cjxHZW9sb2NhdGlvbj4g
bV9nZW9sb2NhdGlvbjsKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgIG11dGFibGUgUmVm
UHRyPFBvaW50ZXJMb2NrPiBtX3BvaW50ZXI7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvTmF2aWdhdG9yLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL05h
dmlnYXRvci5pZGwJKHJldmlzaW9uIDEwODM4OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2
aWdhdG9yLmlkbAkod29ya2luZyBjb3B5KQpAQCAtNDAsMTAgKzQwLDYgQEAgbW9kdWxlIHdpbmRv
dyB7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gb25MaW5lOwogCi0jaWYg
ZGVmaW5lZChFTkFCTEVfR0VPTE9DQVRJT04pICYmIEVOQUJMRV9HRU9MT0NBVElPTgotICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgW1Y4RW5hYmxlZEF0UnVudGltZV0gR2VvbG9jYXRpb24gZ2Vv
bG9jYXRpb247Ci0jZW5kaWYKLQogI2lmIGRlZmluZWQoRU5BQkxFX1BPSU5URVJfTE9DSykgJiYg
RU5BQkxFX1BPSU5URVJfTE9DSwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW1Y4RW5hYmxl
ZEF0UnVudGltZV0gUG9pbnRlckxvY2sgd2Via2l0UG9pbnRlcjsKICNlbmRpZgpJbmRleDogU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwCShyZXZpc2lvbiAxMDgzODkpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDAsNyArMjAwLDcgQEAgUGFnZTo6flBhZ2UoKQog
ICAgIGFsbFBhZ2VzLT5yZW1vdmUodGhpcyk7CiAgICAgCiAgICAgZm9yIChGcmFtZSogZnJhbWUg
PSBtYWluRnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS0+dHJhdmVyc2VOZXh0
KCkpCi0gICAgICAgIGZyYW1lLT5wYWdlRGVzdHJveWVkKCk7CisgICAgICAgIGZyYW1lLT5kZXRh
Y2hGcm9tUGFnZSgpOwogCiAgICAgbV9lZGl0b3JDbGllbnQtPnBhZ2VEZXN0cm95ZWQoKTsKIApJ
bmRleDogU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgkocmV2aXNpb24gMTA4Mzg5KQorKysgU291cmNlL1dl
YktpdDIvd2luL1dlYktpdDIuZGVmCSh3b3JraW5nIGNvcHkpCkBAIC0yMDEsMyArMjAxLDQgQEAg
RVhQT1JUUwogICAgICAgICA/dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzQERv
Y3VtZW50QFdlYkNvcmVAQFFBRVhYWgogICAgICAgICA/dXNlclByZWZlcnJlZExhbmd1YWdlc0BX
ZWJDb3JlQEBZQT9BVj8kVmVjdG9yQFZTdHJpbmdAV1RGQEAkMEFAQFdURkBAWFoKICAgICAgICAg
P3ZpZXdARG9jdW1lbnRAV2ViQ29yZUBAUUJFUEFWRnJhbWVWaWV3QDJAWFoKKyAgICAgICAgP3dp
bGxEZXRhY2hQYWdlQEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlckBXZWJDb3JlQEBVQUVYWFoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128048</attachid>
            <date>2012-02-21 14:40:48 -0800</date>
            <delta_ts>2012-02-21 15:52:17 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-78860-20120221144047.patch</filename>
            <type>text/plain</type>
            <size>60823</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwODM4OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU0IEBACisyMDEyLTAyLTIxICBBZGFtIEJh
cnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRnJhbWUgYW5kIE5hdmlnYXRvciBz
aG91bGRuJ3QgbmVlZCB0byB3b3JyeSBhYm91dCBHZW9sb2NhdGlvbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg4NjAKKworICAgICAgICBSZXZpZXdl
ZCBieSBFcmljIFNlaWRlbC4KKworICAgICAgICBUaGlzIHBhdGNoIHJlbW92ZXMgc29tZSBHZW9s
b2NhdGlvbi1zcGVjaWZpYyBjb2RlIGZyb20gRnJhbWUgYW5kCisgICAgICAgIE5hdmlnYXRvciBp
biBmYXZvciBvZiBvdXIgbmV3IHN1cHBsZW1lbnRhbCBtb2R1bGUgbWVjaGFuaXNtLiAgV2UncmUK
KyAgICAgICAgc3RpbGwgcmVmaW5pbmcgdGhlIG1vZHVsZSBzeXN0ZW0sIGJ1dCB3ZSBzZWVtIHRv
IGJlIGNvbnZlcmdpbmcgb24gYQorICAgICAgICBzaW1wbGUgT2JzZXJ2ZXIvU3VwcGxlbWVudCBk
ZXNpZ24uCisKKyAgICAgICAgSW4gYSBmdXR1cmUgcGF0Y2gsIEknbGwgbW92ZSB0aGUgcmVtYWlu
aW5nIEdlb2xvY2F0aW9uLXJlbGF0ZWQgZmlsZXMgaW4KKyAgICAgICAgV2ViQ29yZSBpbnRvIE1v
ZHVsZXMvZ2VvbG9jYXRpb24uICBUaGlzIHBhdGNoIGFwcGVhcnMgdG8gYmUgdGhlIGZpcnN0Cisg
ICAgICAgIHBhdGNoIHRoYXQgaW50cm9kdWNlcyBhIG1vZHVsZSB1c2VkIGJ5IGFsbCB0aGUgdmFy
aW91cyBidWlsZCBzeXN0ZW1zLAorICAgICAgICB3aGljaCBpcyB3aHkgdGhlcmUncyBhIGJpdCBt
b3JlIGJ1aWxkIHN5c3RlbSBvdmVyaGVhZCB0aGFuIHVzdWFsLgorCisgICAgICAgICogTW9kdWxl
cy9nZW9sb2NhdGlvbjogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZp
Z2F0b3JHZW9sb2NhdGlvbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6TmF2aWdhdG9yR2VvbG9jYXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdG9yR2VvbG9jYXRpb246On5OYXZpZ2F0b3JHZW9sb2Nh
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6cGFnZURlc3Ry
b3llZCk6CisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6ZnJvbSk6Cisg
ICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6Z2VvbG9jYXRpb24pOgorICAg
ICAgICAqIE1vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKE5hdmlnYXRvckdlb2xvY2F0aW9uKToKKyAg
ICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmlkbDogQWRk
ZWQuCisgICAgICAgICAgICAtIEkndmUgdGVtcG9yYXJpbHkgZGlzYWJsZWQgdGhpcyBBUEkgZm9y
IEdPYmplY3QgYmVjYXVzZSBpdCBnZW5lcmF0ZXMKKyAgICAgICAgICAgICAgYSBzdHJhbmdlIGNv
bXBpbGUgZXJyb3IuICBPbmNlIEkgbGFuZCB0aGlzIHBhdGNoLCBJJ2xsIHNwZW5kIHNvbWUKKyAg
ICAgICAgICAgICAgbW9yZSB0aW1lIGZpeGluZyB0aGUgY29tcGlsZSBlcnJvci4KKyAgICAgICAg
KiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwYWdl
L0RPTVdpbmRvdy5oOgorICAgICAgICAoRE9NV2luZG93KToKKyAgICAgICAgKiBwYWdlL0ZyYW1l
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpwYWdlRGVzdHJveWVkKToKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lOjp0cmFuc2ZlckNoaWxkRnJhbWVUb05ld0RvY3VtZW50KToKKyAgICAg
ICAgKiBwYWdlL0ZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXI6OnBhZ2VEZXN0cm95ZWQpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgICogcGFnZS9GcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuaDoKKyAgICAg
ICAgKEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlcik6CisgICAgICAgICogcGFnZS9OYXZpZ2F0b3Iu
Y3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGFnZS9OYXZpZ2F0b3IuaDoKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoTmF2aWdhdG9yKToKKyAgICAgICAgKiBwYWdlL05h
dmlnYXRvci5pZGw6CisKIDIwMTItMDItMjEgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBh
cHBsZS5jb20+CiAKICAgICAgICAgU2V0IFJlZmVycmVyIGhlYWRlciBmb3IgbWVkaWEgZG93bmxv
YWRzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMTA4Mzg5KQorKysgU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw2IEBACiBT
RVQoV2ViQ29yZV9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCQ09SRV9ESVJ9IgorICAg
ICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL2dlb2xvY2F0aW9uIgogICAgICIke1dFQkNPUkVfRElS
fS9hY2Nlc3NpYmlsaXR5IgogICAgICIke1dFQkNPUkVfRElSfS9iaW5kaW5ncyIKICAgICAiJHtX
RUJDT1JFX0RJUn0vYmluZGluZ3MvZ2VuZXJpYyIKQEAgLTg3LDYgKzg4LDcgQEAgU0VUKFdlYkNv
cmVfSU5DTFVERV9ESVJFQ1RPUklFUwogKQogCiBTRVQoV2ViQ29yZV9JRExfSU5DTFVERVMKKyAg
ICBNb2R1bGVzL2dlb2xvY2F0aW9uCiAgICAgYmluZGluZ3MvZ2VuZXJpYwogICAgIGNzcwogICAg
IGRvbQpAQCAtMTA1LDYgKzEwNyw4IEBAIFNFVChXZWJDb3JlX0lETF9JTkNMVURFUwogKQogCiBT
RVQoV2ViQ29yZV9JRExfRklMRVMKKyAgICBNb2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdl
b2xvY2F0aW9uLmlkbAorCiAgICAgY3NzL0NvdW50ZXIuaWRsCiAgICAgY3NzL0NTU0NoYXJzZXRS
dWxlLmlkbAogICAgIGNzcy9DU1NGb250RmFjZVJ1bGUuaWRsCkBAIC00MDAsNiArNDA0LDggQEAg
U0VUKFdlYkNvcmVfSURMX0ZJTEVTCiApCiAKIFNFVChXZWJDb3JlX1NPVVJDRVMKKyAgICBNb2R1
bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmNwcAorCiAgICAgYWNjZXNzaWJp
bGl0eS9BWE9iamVjdENhY2hlLmNwcAogICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFS
SUFHcmlkLmNwcAogICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5j
cHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gMTA4Mzg5KQor
KysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAt
MjgsNiArMjgsNyBAQAogCiBWUEFUSCA9IFwKICAgICAkKFdlYkNvcmUpIFwKKyAgICAkKFdlYkNv
cmUpL01vZHVsZXMvZ2VvbG9jYXRpb24gXAogICAgICQoV2ViQ29yZSkvYmluZGluZ3MvZ2VuZXJp
YyBcCiAgICAgJChXZWJDb3JlKS9iaW5kaW5ncy9qcyBcCiAgICAgJChXZWJDb3JlKS9iaW5kaW5n
cy9vYmpjIFwKQEAgLTUzLDYgKzU0LDcgQEAgVlBBVEggPSBcCiAjCiAKIEJJTkRJTkdfSURMUyA9
IFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRp
b24uaWRsIFwKICAgICAkKFdlYkNvcmUpL2Nzcy9DU1NDaGFyc2V0UnVsZS5pZGwgXAogICAgICQo
V2ViQ29yZSkvY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGwgXAogICAgICQoV2ViQ29yZSkvY3NzL0NT
U0ltcG9ydFJ1bGUuaWRsIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnBy
aQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkJKHJldmlz
aW9uIDEwODM4OSkKKysrIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQkod29ya2lu
ZyBjb3B5KQpAQCAtODYsNiArODYsNyBAQCBTVFlMRVNIRUVUU19FTUJFRCA9IFwKICAgICAkJFBX
RC9jc3MvbW9iaWxlVGhlbWVRdC5jc3MKIAogSURMX0JJTkRJTkdTICs9IFwKKyAgICAkJFBXRC9N
b2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmlkbCBcCiAgICAgJCRQV0Qv
Y3NzL0NvdW50ZXIuaWRsIFwKICAgICAkJFBXRC9jc3MvQ1NTQ2hhcnNldFJ1bGUuaWRsIFwKICAg
ICAkJFBXRC9jc3MvQ1NTRm9udEZhY2VSdWxlLmlkbCBcCkBAIC02ODIsNiArNjgzLDcgQEAgZWxz
ZTogZ2VuZXJhdG9yID0gSlMKIGdlbmVyYXRlQmluZGluZ3MuY29tbWFuZHMgPSBwZXJsIC1JJCRQ
V0QvYmluZGluZ3Mvc2NyaXB0cyAkJGdlbmVyYXRlQmluZGluZ3Muc2NyaXB0IFwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAtLWRlZmluZXMgXCIkJHtGRUFUVVJFX0RFRklORVNfSkFWQVND
UklQVH1cIiBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS1nZW5lcmF0b3IgJCRnZW5l
cmF0b3IgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0taW5jbHVkZSAkJFBXRC9Nb2R1
bGVzL2dlb2xvY2F0aW9uIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLWluY2x1ZGUg
JCRQV0QvZG9tIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLWluY2x1ZGUgJCRQV0Qv
ZmlsZWFwaSBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS1pbmNsdWRlICQkUFdEL2h0
bWwgXApJbmRleDogU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHJldmlzaW9uIDEwODM4OSkKKysrIFNvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0xMSw2ICsxMSw3IEBA
IHdlYmNvcmVfY3BwZmxhZ3MgKz0gXAogCS1JJChzcmNkaXIpL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL2luY2x1ZGUgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2luY2x1
ZGUvR0xTTEFORyBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUgXAorCS1JJChzcmNkaXIp
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24gXAogCS1JJChzcmNkaXIpL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljIFwK
QEAgLTc1OCw2ICs3NTksNyBAQCBEZXJpdmVkU291cmNlcy9BTkdMRS9nbHNsYW5nX3RhYi5jcHA6
IFNvCiBEZXJpdmVkU291cmNlcy9BTkdMRS9nbHNsYW5nX3RhYi5oOiBEZXJpdmVkU291cmNlcy9B
TkdMRS9nbHNsYW5nX3RhYi5jcHAKIAogSURMX1BBVEggOj0gXAorICAgICQoV2ViQ29yZSkvTW9k
dWxlcy9nZW9sb2NhdGlvbiBcCiAgICAgJChXZWJDb3JlKS9iaW5kaW5ncy9qcyBcCiAgICAgJChX
ZWJDb3JlKS9jc3MgXAogICAgICQoV2ViQ29yZSkvZG9tIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvR05VbWFr
ZWZpbGUubGlzdC5hbQkocmV2aXNpb24gMTA4Mzg5KQorKysgU291cmNlL1dlYkNvcmUvR05VbWFr
ZWZpbGUubGlzdC5hbQkod29ya2luZyBjb3B5KQpAQCAtNjUwLDYgKzY1MCw3IEBAIHdlYmNvcmVf
YnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9YUGF0aEdyYW1tYXIu
aAogCiBkb21fYmluZGluZ19pZGxzICs9IFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvZ2VvbG9jYXRp
b24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaWRsIFwKIAkkKFdlYkNvcmUpL2Nzcy9DU1NDaGFyc2V0
UnVsZS5pZGwgXAogCSQoV2ViQ29yZSkvY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGwgXAogCSQoV2Vi
Q29yZSkvY3NzL0NTU0ltcG9ydFJ1bGUuaWRsIFwKQEAgLTk1MSw2ICs5NTIsOCBAQCBkb21fYmlu
ZGluZ19pZGxzICs9IFwKIAkkKFdlYkNvcmUpL3htbC9YU0xUUHJvY2Vzc29yLmlkbAogCiB3ZWJj
b3JlX3NvdXJjZXMgKz0gXAorCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vTmF2
aWdhdG9yR2VvbG9jYXRpb24uY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0
aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmggXAogCVNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZC5jcHAgXApJbmRleDogU291cmNlL1dl
YkNvcmUvVGFyZ2V0LnByaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJp
CShyZXZpc2lvbiAxMDgzODkpCisrKyBTb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCSh3b3JraW5n
IGNvcHkpCkBAIC0zNCw2ICszNCw4IEBAIGluY2x1ZGVfd2ViaW5zcGVjdG9yIHsKIH0KIAogU09V
UkNFUyArPSBcCisgICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5j
cHAgXAorICAgIFwKICAgICBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlJbWFnZU1hcExpbmsu
Y3BwIFwKICAgICBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzLmNwcCBc
CiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3QuY3BwIFwKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluCShyZXZpc2lvbiAxMDgzODkpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbgkod29ya2luZyBjb3B5KQpAQCAtNjcyLDYgKzY3Miw3IEBAIF9fWk43V2ViQ29y
ZTI0RnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyRDIKIF9fWk43V2ViQ29yZTI0RnJhbWVEZXN0cnVj
dGlvbk9ic2VydmVyQzJFUE5TXzVGcmFtZUUKIF9fWk43V2ViQ29yZTI0RnJhbWVEZXN0cnVjdGlv
bk9ic2VydmVyMTJvYnNlcnZlRnJhbWVFUE5TXzVGcmFtZUUKIF9fWk43V2ViQ29yZTI0RnJhbWVE
ZXN0cnVjdGlvbk9ic2VydmVyMTRmcmFtZURlc3Ryb3llZEV2CitfX1pON1dlYkNvcmUyNEZyYW1l
RGVzdHJ1Y3Rpb25PYnNlcnZlcjE0d2lsbERldGFjaFBhZ2VFdgogX19aTjdXZWJDb3JlMjRrZXlJ
ZGVudGlmaWVyRm9yS2V5RXZlbnRFUDdOU0V2ZW50CiBfX1pON1dlYkNvcmUyNG5vdGlmeUhpc3Rv
cnlJdGVtQ2hhbmdlZEUKIF9fWk43V2ViQ29yZTI1SGlzdG9yeVByb3BlcnR5TGlzdFdyaXRlcjEx
cmVsZWFzZURhdGFFdgpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNpb24gMTA4Mzg5KQorKysg
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC03MjAsNiArNzIw
LDcgQEAKICAgICAgICAgICAgICdNb2R1bGVzL2dhbWVwYWQvR2FtZXBhZC5pZGwnLAogICAgICAg
ICAgICAgJ01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkTGlzdC5pZGwnLAogICAgICAgICAgICAgJ01v
ZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0b3JHYW1lcGFkLmlkbCcsCisgICAgICAgICAgICAnTW9kdWxl
cy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5pZGwnLAogICAgICAgICAgICAgJ01v
ZHVsZXMvaW5kZXhlZGRiL0RPTVdpbmRvd0luZGV4ZWREYXRhYmFzZS5pZGwnLAogICAgICAgICAg
ICAgJ01vZHVsZXMvaW50ZW50cy9ET01XaW5kb3dJbnRlbnRzLmlkbCcsCiAgICAgICAgICAgICAn
TW9kdWxlcy9pbnRlbnRzL0ludGVudC5pZGwnLApAQCAtMTI3Nyw2ICsxMjc4LDggQEAKICAgICAg
ICAgICAgICdNb2R1bGVzL2dhbWVwYWQvR2FtZXBhZExpc3QuaCcsCiAgICAgICAgICAgICAnTW9k
dWxlcy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQuY3BwJywKICAgICAgICAgICAgICdNb2R1bGVz
L2dhbWVwYWQvTmF2aWdhdG9yR2FtZXBhZC5oJywKKyAgICAgICAgICAgICdNb2R1bGVzL2dlb2xv
Y2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmNwcCcsCisgICAgICAgICAgICAnTW9kdWxlcy9n
ZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5oJywKICAgICAgICAgICAgICdNb2R1bGVz
L2luZGV4ZWRkYi9ET01XaW5kb3dJbmRleGVkRGF0YWJhc2UuY3BwJywKICAgICAgICAgICAgICdN
b2R1bGVzL2luZGV4ZWRkYi9ET01XaW5kb3dJbmRleGVkRGF0YWJhc2UuaCcsCiAgICAgICAgICAg
ICAnTW9kdWxlcy9pbnRlbnRzL0ludGVudC5jcHAnLApJbmRleDogU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5wcmkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkJKHJldmlz
aW9uIDEwODM4OSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJpCSh3b3JraW5nIGNvcHkp
CkBAIC0xOCw2ICsxOCw3IEBAIFdFQkNPUkVfR0VORVJBVEVEX1NPVVJDRVNfRElSID0gJCR7Uk9P
VF8KIAogSU5DTFVERVBBVEggKz0gXAogICAgICQkU09VUkNFX0RJUiBcCisgICAgJCRTT1VSQ0Vf
RElSL01vZHVsZXMvZ2VvbG9jYXRpb24gXAogICAgICQkU09VUkNFX0RJUi9hY2Nlc3NpYmlsaXR5
IFwKICAgICAkJFNPVVJDRV9ESVIvYmluZGluZ3MgXAogICAgICQkU09VUkNFX0RJUi9iaW5kaW5n
cy9nZW5lcmljIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vTmF2
aWdhdG9yR2VvbG9jYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uY3BwCShyZXZpc2lvbiAwKQorKysg
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5j
cHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKyAq
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAqIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSAorICogREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJOYXZpZ2F0b3JHZW9sb2NhdGlvbi5oIgorCisjaW5jbHVk
ZSAiR2VvbG9jYXRpb24uaCIKKyNpbmNsdWRlICJOYXZpZ2F0b3IuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6TmF2aWdhdG9yR2VvbG9jYXRpb24oRnJh
bWUqIGZyYW1lKQorICAgIDogRE9NV2luZG93UHJvcGVydHkoZnJhbWUpCit7Cit9CisKK05hdmln
YXRvckdlb2xvY2F0aW9uOjp+TmF2aWdhdG9yR2VvbG9jYXRpb24oKQoreworfQorCit2b2lkIE5h
dmlnYXRvckdlb2xvY2F0aW9uOjp3aWxsRGV0YWNoUGFnZSgpCit7CisgICAgLy8gRklYTUU6IFdl
IHNob3VsZCBpZGVhbGx5IGFsbG93IGV4aXN0aW5nIEdlb2xvY2F0aW9uIGFjdGl2aXRpZXMgdG8g
Y29udGludWUKKyAgICAvLyB3aGVuIHRoZSBHZW9sb2NhdGlvbidzIGlmcmFtZSBpcyByZXBhcmVu
dGVkLiAoQXNzdW1pbmcgd2UgY29udGludWUgdG8KKyAgICAvLyBzdXBwb3J0IHJlcGFyZW50aW5n
IGlmcmFtZXMuKQorICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTU1NzcKKyAgICAvLyBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTUyODc3CisgICAgaWYgKG1fZ2VvbG9jYXRpb24pCisgICAgICAgIG1fZ2VvbG9jYXRp
b24tPnJlc2V0KCk7Cit9CisKK05hdmlnYXRvckdlb2xvY2F0aW9uKiBOYXZpZ2F0b3JHZW9sb2Nh
dGlvbjo6ZnJvbShOYXZpZ2F0b3IqIG5hdmlnYXRvcikKK3sKKyAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJOYXZpZ2F0b3JHZW9sb2NhdGlvbiIpKTsKKyAgICBO
YXZpZ2F0b3JHZW9sb2NhdGlvbiogc3VwcGxlbWVudCA9IHN0YXRpY19jYXN0PE5hdmlnYXRvckdl
b2xvY2F0aW9uKj4oTmF2aWdhdG9yU3VwcGxlbWVudDo6ZnJvbShuYXZpZ2F0b3IsIG5hbWUpKTsK
KyAgICBpZiAoIXN1cHBsZW1lbnQpIHsKKyAgICAgICAgc3VwcGxlbWVudCA9IG5ldyBOYXZpZ2F0
b3JHZW9sb2NhdGlvbihuYXZpZ2F0b3ItPmZyYW1lKCkpOworICAgICAgICBwcm92aWRlVG8obmF2
aWdhdG9yLCBuYW1lLCBhZG9wdFB0cihzdXBwbGVtZW50KSk7CisgICAgfQorICAgIHJldHVybiBz
dXBwbGVtZW50OworfQorCitHZW9sb2NhdGlvbiogTmF2aWdhdG9yR2VvbG9jYXRpb246Omdlb2xv
Y2F0aW9uKE5hdmlnYXRvciogbmF2aWdhdG9yKQoreworICAgIHJldHVybiBOYXZpZ2F0b3JHZW9s
b2NhdGlvbjo6ZnJvbShuYXZpZ2F0b3IpLT5nZW9sb2NhdGlvbigpOworfQorCitHZW9sb2NhdGlv
biogTmF2aWdhdG9yR2VvbG9jYXRpb246Omdlb2xvY2F0aW9uKCkgY29uc3QKK3sKKyAgICBpZiAo
IW1fZ2VvbG9jYXRpb24pCisgICAgICAgIG1fZ2VvbG9jYXRpb24gPSBHZW9sb2NhdGlvbjo6Y3Jl
YXRlKGZyYW1lKCkpOworICAgIHJldHVybiBtX2dlb2xvY2F0aW9uLmdldCgpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0
aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5oCShyZXZpc2lvbiAwKQor
KysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlv
bi5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDExLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisg
KiBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gKKyAqIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IE5hdmlnYXRvckdlb2xvY2F0aW9uX2gKKyNkZWZpbmUgTmF2aWdhdG9yR2VvbG9jYXRpb25faAor
CisjaW5jbHVkZSAiRE9NV2luZG93UHJvcGVydHkuaCIKKyNpbmNsdWRlICJOYXZpZ2F0b3JTdXBw
bGVtZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRnJhbWU7CitjbGFzcyBH
ZW9sb2NhdGlvbjsKK2NsYXNzIE5hdmlnYXRvcjsKKworY2xhc3MgTmF2aWdhdG9yR2VvbG9jYXRp
b24gOiBwdWJsaWMgTmF2aWdhdG9yU3VwcGxlbWVudCwgcHVibGljIERPTVdpbmRvd1Byb3BlcnR5
IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5OYXZpZ2F0b3JHZW9sb2NhdGlvbigpOworICAgIHN0
YXRpYyBOYXZpZ2F0b3JHZW9sb2NhdGlvbiogZnJvbShOYXZpZ2F0b3IqKTsKKworICAgIHN0YXRp
YyBHZW9sb2NhdGlvbiogZ2VvbG9jYXRpb24oTmF2aWdhdG9yKik7CisgICAgR2VvbG9jYXRpb24q
IGdlb2xvY2F0aW9uKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgTmF2aWdhdG9yR2VvbG9jYXRp
b24oRnJhbWUqKTsKKworICAgIHZpcnR1YWwgdm9pZCB3aWxsRGV0YWNoUGFnZSgpIE9WRVJSSURF
OworCisgICAgbXV0YWJsZSBSZWZQdHI8R2VvbG9jYXRpb24+IG1fZ2VvbG9jYXRpb247Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBOYXZpZ2F0b3JHZW9sb2NhdGlv
bl9oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdl
b2xvY2F0aW9uLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmlkbAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaWRsCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENP
UFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKK21vZHVsZSB3aW5kb3cgeworCisgICAgaW50ZXJm
YWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9R0VPTE9DQVRJT04sCisgICAgICAgIFN1cHBsZW1l
bnRhbD1OYXZpZ2F0b3IKKyAgICBdIE5hdmlnYXRvckdlb2xvY2F0aW9uIHsKKyNpZiAhZGVmaW5l
ZChMQU5HVUFHRV9HT0JKRUNUKSB8fCAhTEFOR1VBR0VfR09CSkVDVAorCQkvLyBGSVhNRTogRW5h
YmxlIHRoaXMgaW50ZXJmYWNlIGZvciBHT0JKRUNULgorICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgW1Y4RW5hYmxlZEF0UnVudGltZV0gR2VvbG9jYXRpb24gZ2VvbG9jYXRpb247CisjZW5kaWYK
KyAgICB9OworCit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAko
cmV2aXNpb24gMTA4Mzg5KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5n
eXAJKHdvcmtpbmcgY29weSkKQEAgLTUyLDYgKzUyLDcgQEAKICAgICAgICcuLi8nLAogICAgICAg
Jy4uLy4uJywKICAgICAgICcuLi9Nb2R1bGVzL2dhbWVwYWQnLAorICAgICAgJy4uL01vZHVsZXMv
Z2VvbG9jYXRpb24nLAogICAgICAgJy4uL01vZHVsZXMvaW50ZW50cycsCiAgICAgICAnLi4vTW9k
dWxlcy9pbmRleGVkZGInLAogICAgICAgJy4uL2FjY2Vzc2liaWxpdHknLApJbmRleDogU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHJldmlzaW9uIDEwODM4
OSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNDA1MSw2ICsyNDA1MSwyMiBAQAogCQkJPC9GaWxlPgogCQk8L0ZpbHRl
cj4KIAkJPEZpbHRlcgorCQkJTmFtZT0iTW9kdWxlcyIKKwkJCT4KKwkJCTxGaWx0ZXIKKwkJCQlO
YW1lPSJnZW9sb2NhdGlvbiIKKwkJCQk+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxNb2R1bGVzXGdlb2xvY2F0aW9uXE5hdmlnYXRvckdlb2xvY2F0aW9uLmNwcCIKKwkJCQkJPgor
CQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcZ2Vv
bG9jYXRpb25cTmF2aWdhdG9yR2VvbG9jYXRpb24uaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJ
CTwvRmlsdGVyPgorCQk8L0ZpbHRlcj4KKwkJPEZpbHRlcgogCQkJTmFtZT0iYWNjZXNzaWJpbGl0
eSIKIAkJCT4KIAkJCTxGaWxlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlQ29tbW9uLnZzcHJvcHMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZUNvbW1vbi52c3Byb3BzCShyZXZpc2lvbiAxMDgzODkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlQ29tbW9uLnZzcHJvcHMJKHdvcmtpbmcg
Y29weSkKQEAgLTcsNyArNyw3IEBACiAJPgogCTxUb29sCiAJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiCi0JCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiZxdW90OyQoUHJvamVjdERpciku
LiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYWNjZXNzaWJpbGl0eSZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5cYWNjZXNzaWJpbGl0eVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXGJyaWRnZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYnJpZGdlXGMmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXGJyaWRnZVxqc2MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4u
XGNzcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cZWRpdGluZyZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpLi5cZmlsZWFwaSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccmVuZGVyaW5n
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxyZW5kZXJpbmdcbWF0aG1sJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcikuLlxyZW5kZXJpbmdcc3R5bGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXHJlbmRlcmluZ1xzdmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJpbmRpbmdzJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxiaW5kaW5nc1xnZW5lcmljJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcikuLlxiaW5kaW5nc1xqcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYmlu
ZGluZ3NcanNcc3BlY2lhbGl6YXRpb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGRvbSZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cZG9tXGRlZmF1bHQmcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKS4uXGhpc3RvcnkmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGh0bWwmcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGh0bWxcY2FudmFzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cikuLlxodG1sXHBhcnNlciZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5caHRtbFxzaGFkb3cm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGluc3BlY3RvciZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5cbG9hZGVyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxsb2FkZXJcYXBwY2Fj
aGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGxvYWRlclxhcmNoaXZlJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcikuLlxsb2FkZXJcYXJjaGl2ZVxjZiZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpLi5cbG9hZGVyXGNhY2hlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxsb2FkZXJcaWNv
biZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbWF0aG1sJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcikuLlxub3RpZmljYXRpb25zJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwYWdlJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwYWdlXGFuaW1hdGlvbiZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpLi5ccGFnZVxzY3JvbGxpbmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBh
Z2Vcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybSZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5ccGxhdGZvcm1cYW5pbWF0aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cikuLlxwbGF0Zm9ybVxtb2NrJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxz
cWwmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXHdpbiZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5ccGxhdGZvcm1cbmV0d29yayZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
Li5ccGxhdGZvcm1cbmV0d29ya1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRm
b3JtXGNmJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljcyZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3NcY2EmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzXGZpbHRlcnMmcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzXGZpbHRlcnNcYXJtJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1xvcGVudHlwZSZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3NcdHJhbnNmb3JtcyZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpLi5ccGxhdGZvcm1cdGV4dCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxh
dGZvcm1cdGV4dFx0cmFuc2NvZGVyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9y
bVxncmFwaGljc1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHhtbCZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpLi5ceG1sXHBhcnNlciZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25C
dWlsZERpcilcb2JqXFdlYkNvcmVcRGVyaXZlZFNvdXJjZXMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKS4uXHBsdWdpbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsdWdpbnNcd2luJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxzdmdcYW5pbWF0aW9uJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxzdmdcZ3JhcGhpY3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2Z1xw
cm9wZXJ0aWVzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxzdmdcZ3JhcGhpY3NcZmlsdGVy
cyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cc3ZnJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cikuLlx0ZXN0aW5nJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlx3bWwmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKS4uXHN0b3JhZ2UmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHdlYnNv
Y2tldHMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHdvcmtlcnMmcXVvdDs7JnF1b3Q7JChD
b25maWd1cmF0aW9uQnVpbGREaXIpXGluY2x1ZGUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9u
QnVpbGREaXIpXGluY2x1ZGVccHJpdmF0ZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWls
ZERpcilcaW5jbHVkZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25C
dWlsZERpcilcaW5jbHVkZVxwcml2YXRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxGb3J3YXJkaW5nSGVhZGVycyZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmll
c0RpcilcaW5jbHVkZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZVxw
cml2YXRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXHByaXZhdGVc
SmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVc
cHRocmVhZHMmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVcc3FsaXRl
JnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXEphdmFTY3JpcHRDb3Jl
JnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXHpsaWImcXVvdDsiCisJ
CUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiZxdW90OyQoUHJvamVjdERpcikuLiZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpLi5cTW9kdWxlc1xnZW9sb2NhdGlvbiZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5cYWNjZXNzaWJpbGl0eSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5c
YWNjZXNzaWJpbGl0eVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJyaWRnZSZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpLi5cYnJpZGdlXGMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXGJyaWRnZVxqc2MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGNzcyZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpLi5cZWRpdGluZyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cZmls
ZWFwaSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccmVuZGVyaW5nJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcikuLlxyZW5kZXJpbmdcbWF0aG1sJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpciku
LlxyZW5kZXJpbmdcc3R5bGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHJlbmRlcmluZ1xz
dmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJpbmRpbmdzJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxiaW5kaW5nc1xnZW5lcmljJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxi
aW5kaW5nc1xqcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYmluZGluZ3NcanNcc3BlY2lh
bGl6YXRpb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGRvbSZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpLi5cZG9tXGRlZmF1bHQmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGhpc3Rv
cnkmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGh0bWwmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKS4uXGh0bWxcY2FudmFzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxodG1sXHBhcnNl
ciZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5caHRtbFxzaGFkb3cmcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKS4uXGluc3BlY3RvciZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbG9hZGVy
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxsb2FkZXJcYXBwY2FjaGUmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKS4uXGxvYWRlclxhcmNoaXZlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpciku
Llxsb2FkZXJcYXJjaGl2ZVxjZiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbG9hZGVyXGNh
Y2hlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxsb2FkZXJcaWNvbiZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5cbWF0aG1sJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxub3RpZmlj
YXRpb25zJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwYWdlJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxwYWdlXGFuaW1hdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGFn
ZVxzY3JvbGxpbmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBhZ2Vcd2luJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5c
cGxhdGZvcm1cYW5pbWF0aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxt
b2NrJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxzcWwmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5c
cGxhdGZvcm1cbmV0d29yayZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cbmV0
d29ya1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGNmJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljcyZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3NcY2EmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4u
XHBsYXRmb3JtXGdyYXBoaWNzXGZpbHRlcnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBs
YXRmb3JtXGdyYXBoaWNzXGZpbHRlcnNcYXJtJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxw
bGF0Zm9ybVxncmFwaGljc1xvcGVudHlwZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxh
dGZvcm1cZ3JhcGhpY3NcdHJhbnNmb3JtcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxh
dGZvcm1cdGV4dCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cdGV4dFx0cmFu
c2NvZGVyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1x3aW4m
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHhtbCZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
Li5ceG1sXHBhcnNlciZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXFdl
YkNvcmVcRGVyaXZlZFNvdXJjZXMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsdWdpbnMm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsdWdpbnNcd2luJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxzdmdcYW5pbWF0aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxzdmdc
Z3JhcGhpY3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2Z1xwcm9wZXJ0aWVzJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcikuLlxzdmdcZ3JhcGhpY3NcZmlsdGVycyZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5cc3ZnJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlx0ZXN0aW5nJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlx3bWwmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4u
XHN0b3JhZ2UmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHdlYnNvY2tldHMmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXHdvcmtlcnMmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVp
bGREaXIpXGluY2x1ZGUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXGluY2x1
ZGVccHJpdmF0ZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcaW5jbHVkZVxK
YXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcaW5jbHVk
ZVxwcml2YXRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxGb3J3
YXJkaW5nSGVhZGVycyZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZSZx
dW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZx
dW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXHByaXZhdGVcSmF2YVNjcmlwdENvcmUm
cXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVccHRocmVhZHMmcXVvdDs7
JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVcc3FsaXRlJnF1b3Q7OyZxdW90OyQo
V2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQo
V2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXHpsaWImcXVvdDsiCiAJCVByZXByb2Nlc3NvckRl
ZmluaXRpb25zPSJfX1dJTjMyX187RElTQUJMRV8zRF9SRU5ERVJJTkc7V0VCQ09SRV9DT05URVhU
X01FTlVTIgogCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMiIKIAkJUHJlY29tcGlsZWRIZWFkZXJU
aHJvdWdoPSJXZWJDb3JlUHJlZml4LmgiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxMDgzODkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29w
eSkKQEAgLTMzMjMsNiArMzMyMyw4IEBACiAJCTk3MDU5OTdBMTA3RDk3NTIwMEE1MEE3QyAvKiBQ
b2xpY3lDaGVja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5NzA1OTk3NjEwN0Q5NzUyMDBBNTBBN0MgLyogUG9saWN5Q2hlY2tlci5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk3MEI3MjhBMTQ0RkZB
QzYwMEYwMEEzNyAvKiBFdmVudEludGVyZmFjZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MEI3Mjg5MTQ0RkZBQzYwMEYwMEEzNyAvKiBFdmVudElu
dGVyZmFjZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk5NzBCNzJBNjE0NTAwOEVCMDBGMDBBMzcgLyogRXZlbnRIZWFkZXJzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzBCNzJBNTE0NTAwOEVCMDBG
MDBBMzcgLyogRXZlbnRIZWFkZXJzLmggKi87IH07CisJCTk3MTE0NjAzMTRFRjAwOUEwMDY3NEZE
OSAvKiBOYXZpZ2F0b3JHZW9sb2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5NzExNDYwMDE0RUYwMDlBMDA2NzRGRDkgLyogTmF2aWdhdG9y
R2VvbG9jYXRpb24uY3BwICovOyB9OworCQk5NzExNDYwNDE0RUYwMDlBMDA2NzRGRDkgLyogTmF2
aWdhdG9yR2VvbG9jYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDk3MTE0NjAxMTRFRjAwOUEwMDY3NEZEOSAvKiBOYXZpZ2F0b3JHZW9sb2NhdGlv
bi5oICovOyB9OwogCQk5NzIwNUFBRjEyMzkyOENBMDBCMTczODAgLyogRlRQRGlyZWN0b3J5RG9j
dW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTcyMDVBQUQxMjM5MjhDQTAwQjE3MzgwIC8qIEZUUERpcmVjdG9yeURvY3VtZW50LmNwcCAqLzsg
fTsKIAkJOTcyMDVBQjAxMjM5MjhDQTAwQjE3MzgwIC8qIEZUUERpcmVjdG9yeURvY3VtZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzIwNUFBRTEy
MzkyOENBMDBCMTczODAgLyogRlRQRGlyZWN0b3J5RG9jdW1lbnQuaCAqLzsgfTsKIAkJOTcyMDVB
QjUxMjM5MjkxMDAwQjE3MzgwIC8qIEltYWdlRG9jdW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcyMDVBQjExMjM5MjkxMDAwQjE3MzgwIC8q
IEltYWdlRG9jdW1lbnQuY3BwICovOyB9OwpAQCAtMTAxODQsNiArMTAxODYsOSBAQAogCQk5NzA1
OTk3NjEwN0Q5NzUyMDBBNTBBN0MgLyogUG9saWN5Q2hlY2tlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBQb2xpY3lDaGVja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTk3MEI3Mjg5MTQ0RkZBQzYwMEYwMEEzNyAvKiBFdmVudEludGVyZmFjZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXZlbnRJbnRlcmZhY2VzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3MEI3MkE1MTQ1MDA4RUIwMEYwMEEzNyAvKiBFdmVudEhl
YWRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXZlbnRIZWFkZXJzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk3MTE0NjAwMTRFRjAwOUEwMDY3NEZEOSAv
KiBOYXZpZ2F0b3JHZW9sb2NhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBOYXZpZ2F0b3JHZW9sb2NhdGlvbi5jcHA7IHBhdGggPSBNb2R1bGVzL2dlb2xvY2F0
aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOTcxMTQ2MDExNEVGMDA5QTAwNjc0RkQ5IC8qIE5hdmlnYXRvckdlb2xvY2F0aW9uLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE5hdmlnYXRvckdlb2xvY2F0aW9uLmg7IHBh
dGggPSBNb2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTk3MTE0NjAyMTRFRjAwOUEwMDY3NEZEOSAvKiBOYXZpZ2F0
b3JHZW9sb2NhdGlvbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gTmF2aWdhdG9yR2VvbG9j
YXRpb24uaWRsOyBwYXRoID0gTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlv
bi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3MjA1QUFEMTIzOTI4Q0EwMEIx
NzM4MCAvKiBGVFBEaXJlY3RvcnlEb2N1bWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBGVFBEaXJlY3RvcnlEb2N1bWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTk3MjA1QUFFMTIzOTI4Q0EwMEIxNzM4MCAvKiBGVFBEaXJlY3RvcnlEb2N1
bWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGVFBEaXJlY3RvcnlEb2N1
bWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzIwNUFCMTEyMzkyOTEwMDBC
MTczODAgLyogSW1hZ2VEb2N1bWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBJbWFnZURvY3VtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTEzNDU3LDYgKzEzNDYyLDcgQEAKIAkJCQlFREVDOTgwMjBBRUQ3RTE3MDA1OTEzN0YgLyogV2Vi
Q29yZVByZWZpeC5oICovLAogCQkJCTkzMDcwNjEzMDlFMENBODIwMEIxN0ZFNCAvKiBEZXJpdmVk
U291cmNlcy5tYWtlICovLAogCQkJCTkzRjE5QjE5MDgyNDVFNTkwMDFFOUFCQyAvKiBJbmZvLnBs
aXN0ICovLAorCQkJCTk3MTE0NUZFMTRFRjAwNkUwMDY3NEZEOSAvKiBNb2R1bGVzICovLAogCQkJ
CTI5QTgxMjA0MEZCQjlCNDEwMDUxMDI5MyAvKiBhY2Nlc3NpYmlsaXR5ICovLAogCQkJCUJDMUEz
NzkwMDk3QzZGOTcwMDE5RjNEOCAvKiBiaW5kaW5ncyAqLywKIAkJCQkxQTU2OUNDNDBEN0UyQjYw
MDA3QzM5ODMgLyogYnJpZGdlICovLApAQCAtMTcwNzUsNiArMTcwODEsMjQgQEAKIAkJCXRhYldp
ZHRoID0gNDsKIAkJCXVzZXNUYWJzID0gMDsKIAkJfTsKKwkJOTcxMTQ1RkUxNEVGMDA2RTAwNjc0
RkQ5IC8qIE1vZHVsZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0g
KAorCQkJCTk3MTE0NUZGMTRFRjAwNzkwMDY3NEZEOSAvKiBnZW9sb2NhdGlvbiAqLywKKwkJCSk7
CisJCQluYW1lID0gTW9kdWxlczsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CisJ
CTk3MTE0NUZGMTRFRjAwNzkwMDY3NEZEOSAvKiBnZW9sb2NhdGlvbiAqLyA9IHsKKwkJCWlzYSA9
IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJOTcxMTQ2MDAxNEVGMDA5QTAwNjc0RkQ5
IC8qIE5hdmlnYXRvckdlb2xvY2F0aW9uLmNwcCAqLywKKwkJCQk5NzExNDYwMTE0RUYwMDlBMDA2
NzRGRDkgLyogTmF2aWdhdG9yR2VvbG9jYXRpb24uaCAqLywKKwkJCQk5NzExNDYwMjE0RUYwMDlB
MDA2NzRGRDkgLyogTmF2aWdhdG9yR2VvbG9jYXRpb24uaWRsICovLAorCQkJKTsKKwkJCW5hbWUg
PSBnZW9sb2NhdGlvbjsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTk3NkQ2
QzU3MTIyQjhBMTgwMDFGRDFGNyAvKiBmaWxlYXBpICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7
CiAJCQljaGlsZHJlbiA9ICgKQEAgLTIzMjgwLDYgKzIzMzA0LDcgQEAKIAkJCQk5NzlGNDNENDEw
NzVFNDRBMDAwMEY4M0IgLyogTmF2aWdhdGlvblNjaGVkdWxlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTlDNkU1QTYwRDc0NjQ1ODAwNjQ0MkU5IC8qIE5hdmlnYXRvci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRTEyNzE5QzcwRUVFQzE2ODAwRjYxMjEzIC8qIE5hdmlnYXRvckJhc2UuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTk3MTE0NjA0MTRFRjAwOUEwMDY3NEZEOSAvKiBOYXZpZ2F0b3JHZW9sb2Nh
dGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTdDQzNBRTMxNEU4RTRBMjAwODk0OTg4IC8qIE5h
dmlnYXRvclN1cHBsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCThBMzA5QzlGMTIzOTUwQkUw
MENCOTIwNCAvKiBOZXN0aW5nTGV2ZWxJbmNyZW1lbnRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NjU2RDM3NDMwQURCQTVERTAwQTQ1NTREIC8qIE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmgg
aW4gSGVhZGVycyAqLywKQEAgLTI2NDM0LDYgKzI2NDU5LDcgQEAKIAkJCQk5NzlGNDNEMzEwNzVF
NDRBMDAwMEY4M0IgLyogTmF2aWdhdGlvblNjaGVkdWxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBOUM2RTVBNTBENzQ2NDU4MDA2NDQyRTkgLyogTmF2aWdhdG9yLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUUxMjcxOUNBMEVFRUMyMTMwMEY2MTIxMyAvKiBOYXZpZ2F0b3JCYXNlLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTk3MTE0NjAzMTRFRjAwOUEwMDY3NEZEOSAvKiBOYXZpZ2F0b3JHZW9s
b2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5N0NDM0FFMjE0RThFNEEyMDA4OTQ5ODgg
LyogTmF2aWdhdG9yU3VwcGxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1RDg3NEYxMzBE
MTYxRDMyMDA3OTZDM0IgLyogTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNTlDMjdGMDUxMzhEMjhDMTAwNzlCN0UyIC8qIE5ldHdvcmtSZXNvdXJjZXNE
YXRhLmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCShyZXZpc2lvbiAxMDgz
ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2Jq
ZWN0LnBtCSh3b3JraW5nIGNvcHkpCkBAIC00MTgsNyArNDE4LDcgQEAgc3ViIEdlbmVyYXRlUHJv
cGVydHkgewogICAgICAgICBwdXNoKEB0eHRHZXRQcm9wcywgIiAgICAgICAgZ192YWx1ZV90YWtl
X3N0cmluZyh2YWx1ZSwgY29udmVydFRvVVRGOFN0cmluZygke2dldHRlckZ1bmN0aW9uTmFtZX0o
IiAuIGpvaW4oIiwgIiwgQGdldHRlckFyZ3VtZW50cykgLiAiKSkpO1xuIik7CiAgICAgICAgICRk
b25lID0gMTsKICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgIm9iamVjdCIpIHsKLSAgICAgICAgcHVz
aChAdHh0R2V0UHJvcHMsICIgICAgICAgIFJlZlB0cjxXZWJDb3JlOjoke3Byb3BUeXBlfT4gcHRy
ID0gY29yZVNlbGYtPiR7Z2V0UHJvcE5hbWVGdW5jdGlvbn0oIiAuIChAeyRhdHRyaWJ1dGUtPmdl
dHRlckV4Y2VwdGlvbnN9ID8gImVjIiA6ICIiKSAuICIpO1xuIik7CisgICAgICAgIHB1c2goQHR4
dEdldFByb3BzLCAiICAgICAgICBSZWZQdHI8V2ViQ29yZTo6JHtwcm9wVHlwZX0+IHB0ciA9ICR7
Z2V0dGVyRnVuY3Rpb25OYW1lfSgiIC4gam9pbigiLCAiLCBAZ2V0dGVyQXJndW1lbnRzKSAuICIp
O1xuIik7CiAgICAgICAgIHB1c2goQHR4dEdldFByb3BzLCAiICAgICAgICBnX3ZhbHVlX3NldF9v
YmplY3QodmFsdWUsIFdlYktpdDo6a2l0KHB0ci5nZXQoKSkpO1xuIik7CiAgICAgICAgICRkb25l
ID0gMTsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
VGVzdFN1cHBsZW1lbnRhbC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L1Rlc3RTdXBwbGVtZW50YWwuaWRsCShyZXZpc2lvbiAxMDgzODkpCisr
KyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdFN1cHBsZW1lbnRhbC5p
ZGwJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDcgQEAgbW9kdWxlIHRlc3QgewogICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHN1cHBsZW1lbnRhbFN0cjE7CiAgICAgICAg
IGF0dHJpYnV0ZSBET01TdHJpbmcgc3VwcGxlbWVudGFsU3RyMjsKICAgICAgICAgYXR0cmlidXRl
IFtDdXN0b21HZXR0ZXIsIEN1c3RvbVNldHRlcl0gRE9NU3RyaW5nIHN1cHBsZW1lbnRhbFN0cjM7
CisgICAgICAgIGF0dHJpYnV0ZSBOb2RlIHN1cHBsZW1lbnRhbE5vZGU7CiAKICAgICAgICAgdm9p
ZCBzdXBwbGVtZW50YWxNZXRob2QxKCk7CiAgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRp
b25Db250ZXh0XSBUZXN0T2JqIHN1cHBsZW1lbnRhbE1ldGhvZDIoaW4gRE9NU3RyaW5nIHN0ckFy
ZywgaW4gVGVzdE9iaiBvYmpBcmcpIHJhaXNlcyhET01FeGNlcHRpb24pOwpJbmRleDogU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0SW50ZXJmYWNlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQ
L1dlYkRPTVRlc3RJbnRlcmZhY2UuY3BwCShyZXZpc2lvbiAxMDgzODkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RJbnRlcmZhY2UuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yNSw4ICsyNSwxMCBAQAogI2luY2x1ZGUgIldlYkRPTVRlc3RJbnRl
cmZhY2UuaCIKIAogI2luY2x1ZGUgIktVUkwuaCIKKyNpbmNsdWRlICJOb2RlLmgiCiAjaW5jbHVk
ZSAiVGVzdEludGVyZmFjZS5oIgogI2luY2x1ZGUgIlRlc3RTdXBwbGVtZW50YWwuaCIKKyNpbmNs
dWRlICJXZWJET01Ob2RlLmgiCiAjaW5jbHVkZSAiV2ViRE9NU3RyaW5nLmgiCiAjaW5jbHVkZSAi
V2ViRXhjZXB0aW9uSGFuZGxlci5oIgogI2luY2x1ZGUgInd0Zi90ZXh0L0F0b21pY1N0cmluZy5o
IgpAQCAtMTA2LDYgKzEwOCwyNCBAQCB2b2lkIFdlYkRPTVRlc3RJbnRlcmZhY2U6OnNldFN1cHBs
ZW1lbnRhCiB9CiAKICNlbmRpZgorI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENv
bmRpdGlvbjEyKQorV2ViRE9NTm9kZSBXZWJET01UZXN0SW50ZXJmYWNlOjpzdXBwbGVtZW50YWxO
b2RlKCkgY29uc3QKK3sKKyAgICBpZiAoIWltcGwoKSkKKyAgICAgICAgcmV0dXJuIFdlYkRPTU5v
ZGUoKTsKKworICAgIHJldHVybiB0b1dlYktpdChXVEY6OmdldFB0cihUZXN0U3VwcGxlbWVudGFs
OjpzdXBwbGVtZW50YWxOb2RlKGltcGwoKSkpKTsKK30KKwordm9pZCBXZWJET01UZXN0SW50ZXJm
YWNlOjpzZXRTdXBwbGVtZW50YWxOb2RlKGNvbnN0IFdlYkRPTU5vZGUmIG5ld1N1cHBsZW1lbnRh
bE5vZGUpCit7CisgICAgaWYgKCFpbXBsKCkpCisgICAgICAgIHJldHVybjsKKworICAgIFRlc3RT
dXBwbGVtZW50YWw6OnNldFN1cHBsZW1lbnRhbE5vZGUoaW1wbCgpLCB0b1dlYkNvcmUobmV3U3Vw
cGxlbWVudGFsTm9kZSkpOworfQorCisjZW5kaWYKIAogI2lmIEVOQUJMRShDb25kaXRpb24xMSkg
fHwgRU5BQkxFKENvbmRpdGlvbjEyKQogdm9pZCBXZWJET01UZXN0SW50ZXJmYWNlOjpzdXBwbGVt
ZW50YWxNZXRob2QxKCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9DUFAvV2ViRE9NVGVzdEludGVyZmFjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdEludGVyZmFjZS5oCShyZXZpc2lv
biAxMDgzODkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dl
YkRPTVRlc3RJbnRlcmZhY2UuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBUZXN0SW50ZXJmYWNlOwogfTsKIAorY2xhc3MgV2ViRE9N
Tm9kZTsKIAogY2xhc3MgV2ViRE9NVGVzdEludGVyZmFjZSA6IHB1YmxpYyBXZWJET01PYmplY3Qg
ewogcHVibGljOgpAQCAtNTgsNiArNTksMTAgQEAgcHVibGljOgogICAgIFdlYkRPTVN0cmluZyBz
dXBwbGVtZW50YWxTdHIyKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRTdXBwbGVtZW50YWxTdHIyKGNv
bnN0IFdlYkRPTVN0cmluZyYpOwogI2VuZGlmCisjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBF
TkFCTEUoQ29uZGl0aW9uMTIpCisgICAgV2ViRE9NTm9kZSBzdXBwbGVtZW50YWxOb2RlKCkgY29u
c3Q7CisgICAgdm9pZCBzZXRTdXBwbGVtZW50YWxOb2RlKGNvbnN0IFdlYkRPTU5vZGUmKTsKKyNl
bmRpZgogCiAgICAgdm9pZCBzdXBwbGVtZW50YWxNZXRob2QxKCk7CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RJbnRlcmZh
Y2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9HT2JqZWN0L1dlYktpdERPTVRlc3RJbnRlcmZhY2UuY3BwCShyZXZpc2lvbiAxMDgzODkpCisr
KyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01U
ZXN0SW50ZXJmYWNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsMTEgKzI4LDE0IEBACiAjaW5j
bHVkZSAiRE9NT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5j
bHVkZSAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW5jbHVkZSAiTm9kZS5oIgogI2luY2x1
ZGUgIlRlc3RJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJUZXN0T2JqLmgiCiAjaW5jbHVkZSAiVGVz
dFN1cHBsZW1lbnRhbC5oIgogI2luY2x1ZGUgIldlYktpdERPTUJpbmRpbmcuaCIKICNpbmNsdWRl
ICJnb2JqZWN0L0NvbnZlcnRUb1VURjhTdHJpbmcuaCIKKyNpbmNsdWRlICJ3ZWJraXQvV2ViS2l0
RE9NTm9kZS5oIgorI2luY2x1ZGUgIndlYmtpdC9XZWJLaXRET01Ob2RlUHJpdmF0ZS5oIgogI2lu
Y2x1ZGUgIndlYmtpdC9XZWJLaXRET01UZXN0SW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAid2Via2l0
L1dlYktpdERPTVRlc3RJbnRlcmZhY2VQcml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0L1dlYktp
dERPTVRlc3RPYmouaCIKQEAgLTEzNSw2ICsxMzgsMzggQEAgd2Via2l0X2RvbV90ZXN0X2ludGVy
ZmFjZV9zZXRfc3VwcGxlbWVudAogI2VuZGlmIC8qIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5B
QkxFKENvbmRpdGlvbjEyKSAqLwogfQogCitXZWJLaXRET01Ob2RlKgord2Via2l0X2RvbV90ZXN0
X2ludGVyZmFjZV9nZXRfc3VwcGxlbWVudGFsX25vZGUoV2ViS2l0RE9NVGVzdEludGVyZmFjZSog
c2VsZikKK3sKKyNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikK
KyAgICBnX3JldHVybl92YWxfaWZfZmFpbChzZWxmLCAwKTsKKyAgICBXZWJDb3JlOjpKU01haW5U
aHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgV2ViQ29yZTo6VGVzdEludGVyZmFjZSAqIGl0ZW0g
PSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgUGFzc1JlZlB0cjxXZWJDb3JlOjpOb2RlPiBnX3Jl
cyA9IFdURjo6Z2V0UHRyKFRlc3RTdXBwbGVtZW50YWw6OnN1cHBsZW1lbnRhbE5vZGUoaXRlbSkp
OworICAgIFdlYktpdERPTU5vZGUqIHJlcyA9IFdlYktpdDo6a2l0KGdfcmVzLmdldCgpKTsKKyAg
ICByZXR1cm4gcmVzOworI2Vsc2UKKyAgICByZXR1cm4gTlVMTDsKKyNlbmRpZiAvKiBFTkFCTEUo
Q29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikgKi8KK30KKwordm9pZAord2Via2l0
X2RvbV90ZXN0X2ludGVyZmFjZV9zZXRfc3VwcGxlbWVudGFsX25vZGUoV2ViS2l0RE9NVGVzdElu
dGVyZmFjZSogc2VsZiwgV2ViS2l0RE9NTm9kZSogdmFsdWUpCit7CisjaWYgRU5BQkxFKENvbmRp
dGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCisgICAgZ19yZXR1cm5faWZfZmFpbChzZWxm
KTsKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgV2ViQ29y
ZTo6VGVzdEludGVyZmFjZSAqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgZ19yZXR1
cm5faWZfZmFpbCh2YWx1ZSk7CisgICAgV2ViQ29yZTo6Tm9kZSAqIGNvbnZlcnRlZF92YWx1ZSA9
IE5VTEw7CisgICAgaWYgKHZhbHVlICE9IE5VTEwpIHsKKyAgICAgICAgY29udmVydGVkX3ZhbHVl
ID0gV2ViS2l0Ojpjb3JlKHZhbHVlKTsKKyAgICAgICAgZ19yZXR1cm5faWZfZmFpbChjb252ZXJ0
ZWRfdmFsdWUpOworICAgIH0KKyAgICBUZXN0U3VwcGxlbWVudGFsOjpzZXRTdXBwbGVtZW50YWxO
b2RlKGl0ZW0sIGNvbnZlcnRlZF92YWx1ZSk7CisjZW5kaWYgLyogRU5BQkxFKENvbmRpdGlvbjEx
KSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpICovCit9CisKIAogR19ERUZJTkVfVFlQRShXZWJLaXRE
T01UZXN0SW50ZXJmYWNlLCB3ZWJraXRfZG9tX3Rlc3RfaW50ZXJmYWNlLCBXRUJLSVRfVFlQRV9E
T01fT0JKRUNUKQogCkBAIC0xNTksNiArMTk0LDkgQEAgZW51bSB7CiAjaWYgRU5BQkxFKENvbmRp
dGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCiAgICAgUFJPUF9TVVBQTEVNRU5UQUxfU1RS
MiwKICNlbmRpZiAvKiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikg
Ki8KKyNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKKyAgICBQ
Uk9QX1NVUFBMRU1FTlRBTF9OT0RFLAorI2VuZGlmIC8qIEVOQUJMRShDb25kaXRpb24xMSkgfHwg
RU5BQkxFKENvbmRpdGlvbjEyKSAqLwogfTsKIAogCkBAIC0yMTgsNiArMjU2LDE0IEBAIHN0YXRp
YyB2b2lkIHdlYmtpdF9kb21fdGVzdF9pbnRlcmZhY2VfZ2UKICAgICAgICAgYnJlYWs7CiAgICAg
fQogI2VuZGlmIC8qIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKSAq
LworI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQorICAgIGNh
c2UgUFJPUF9TVVBQTEVNRU5UQUxfTk9ERToKKyAgICB7CisgICAgICAgIFJlZlB0cjxXZWJDb3Jl
OjpOb2RlPiBwdHIgPSBUZXN0U3VwcGxlbWVudGFsOjpzdXBwbGVtZW50YWxOb2RlKGNvcmVTZWxm
KTsKKyAgICAgICAgZ192YWx1ZV9zZXRfb2JqZWN0KHZhbHVlLCBXZWJLaXQ6OmtpdChwdHIuZ2V0
KCkpKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorI2VuZGlmIC8qIEVOQUJMRShDb25kaXRpb24x
MSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKSAqLwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEdfT0JK
RUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3BfaWQsIHBzcGVjKTsKICAg
ICAgICAgYnJlYWs7CkBAIC0yNTgsNiArMzA0LDE1IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9kb21f
dGVzdF9pbnRlcmZhY2VfY2wKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIiIsIC8qIGRlZmF1bHQgKi8KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JF
QURXUklURSkpOwogI2VuZGlmIC8qIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRp
dGlvbjEyKSAqLworI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEy
KQorICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVjdENsYXNzLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9TVVBQTEVNRU5UQUxfTk9ERSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19vYmplY3Qo
InN1cHBsZW1lbnRhbC1ub2RlIiwgLyogbmFtZSAqLworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGVzdF9pbnRlcmZhY2Vfc3VwcGxl
bWVudGFsLW5vZGUiLCAvKiBzaG9ydCBkZXNjcmlwdGlvbiAqLworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVhZC13cml0ZSAgV2Vi
S2l0RE9NTm9kZSogVGVzdEludGVyZmFjZS5zdXBwbGVtZW50YWwtbm9kZSIsIC8qIGxvbmdlciAt
IGNvdWxkIGRvIHdpdGggc29tZSBleHRyYSBkb2Mgc3R1ZmYgaGVyZSAqLworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRfVFlQ
RV9ET01fTk9ERSwgLyogZ29iamVjdCB0eXBlICovCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEV1JJVEUp
KTsKKyNlbmRpZiAvKiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikg
Ki8KIAogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09i
amVjdC9XZWJLaXRET01UZXN0SW50ZXJmYWNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdEludGVyZmFjZS5o
CShyZXZpc2lvbiAxMDgzODkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvR09iamVjdC9XZWJLaXRET01UZXN0SW50ZXJmYWNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEw
MCw2ICsxMDAsMjcgQEAgd2Via2l0X2RvbV90ZXN0X2ludGVyZmFjZV9nZXRfc3VwcGxlbWVudAog
V0VCS0lUX0FQSSB2b2lkCiB3ZWJraXRfZG9tX3Rlc3RfaW50ZXJmYWNlX3NldF9zdXBwbGVtZW50
YWxfc3RyMihXZWJLaXRET01UZXN0SW50ZXJmYWNlKiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUp
OwogCisvKioKKyAqIHdlYmtpdF9kb21fdGVzdF9pbnRlcmZhY2VfZ2V0X3N1cHBsZW1lbnRhbF9u
b2RlOgorICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RJbnRlcmZhY2UKKyAqCisgKiBSZXR1cm5z
OiAodHJhbnNmZXIgbm9uZSk6CisgKgorKiovCitXRUJLSVRfQVBJIFdlYktpdERPTU5vZGUqCit3
ZWJraXRfZG9tX3Rlc3RfaW50ZXJmYWNlX2dldF9zdXBwbGVtZW50YWxfbm9kZShXZWJLaXRET01U
ZXN0SW50ZXJmYWNlKiBzZWxmKTsKKworLyoqCisgKiB3ZWJraXRfZG9tX3Rlc3RfaW50ZXJmYWNl
X3NldF9zdXBwbGVtZW50YWxfbm9kZToKKyAqIEBzZWxmOiBBICNXZWJLaXRET01UZXN0SW50ZXJm
YWNlCisgKiBAdmFsdWU6IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBSZXR1cm5zOiAodHJhbnNm
ZXIgbm9uZSk6CisgKgorKiovCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9kb21fdGVzdF9pbnRl
cmZhY2Vfc2V0X3N1cHBsZW1lbnRhbF9ub2RlKFdlYktpdERPTVRlc3RJbnRlcmZhY2UqIHNlbGYs
IFdlYktpdERPTU5vZGUqIHZhbHVlKTsKKwogR19FTkRfREVDTFMKIAogI2VuZGlmIC8qIFdlYktp
dERPTVRlc3RJbnRlcmZhY2VfaCAqLwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAJKHJldmlz
aW9uIDEwODM4OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RJbnRlcmZhY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSwxMCArMzUsMTUgQEAKICNp
bmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAKICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJM
RShDb25kaXRpb24xMikKKyNpbmNsdWRlICJKU05vZGUuaCIKICNpbmNsdWRlICJLVVJMLmgiCiAj
aW5jbHVkZSA8cnVudGltZS9KU1N0cmluZy5oPgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQ29uZGl0
aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKKyNpbmNsdWRlICJOb2RlLmgiCisjZW5kaWYK
KwogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTcsMTEg
KzYyLDE0IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RJbnRlcmYKICNpZiBF
TkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKICAgICB7ICJzdXBwbGVt
ZW50YWxTdHIzIiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xv
dDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIzKSwgKGludHB0
cl90KXNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjMsIE5vSW50cmluc2ljIH0sCiAj
ZW5kaWYKKyNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKKyAg
ICB7ICJzdXBwbGVtZW50YWxOb2RlIiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0
PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxO
b2RlKSwgKGludHB0cl90KXNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbE5vZGUsIE5vSW50
cmluc2ljIH0sCisjZW5kaWYKICAgICB7ICJjb25zdHJ1Y3RvciIsIERvbnRFbnVtIHwgUmVhZE9u
bHksIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNU
ZXN0SW50ZXJmYWNlQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpMCwgTm9JbnRyaW5zaWMgfSwKICAg
ICB7IDAsIDAsIDAsIDAsIE5vSW50cmluc2ljIH0KIH07CiAKLXN0YXRpYyBjb25zdCBIYXNoVGFi
bGUgSlNUZXN0SW50ZXJmYWNlVGFibGUgPSB7IDksIDcsIEpTVGVzdEludGVyZmFjZVRhYmxlVmFs
dWVzLCAwIH07CitzdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTVGVzdEludGVyZmFjZVRhYmxlID0g
eyAxNiwgMTUsIEpTVGVzdEludGVyZmFjZVRhYmxlVmFsdWVzLCAwIH07CiAvKiBIYXNoIHRhYmxl
IGZvciBjb25zdHJ1Y3RvciAqLwogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0
SW50ZXJmYWNlQ29uc3RydWN0b3JUYWJsZVZhbHVlc1tdID0KQEAgLTI1Nyw2ICsyNjUsMTggQEAg
SlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIzKAogCiAjZW5kaWYKIAorI2lm
IEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQorSlNWYWx1ZSBqc1Rl
c3RJbnRlcmZhY2VTdXBwbGVtZW50YWxOb2RlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90
QmFzZSwgY29uc3QgSWRlbnRpZmllciYpCit7CisgICAgSlNUZXN0SW50ZXJmYWNlKiBjYXN0ZWRU
aGlzID0gc3RhdGljX2Nhc3Q8SlNUZXN0SW50ZXJmYWNlKj4oYXNPYmplY3Qoc2xvdEJhc2UpKTsK
KyAgICBVTlVTRURfUEFSQU0oZXhlYyk7CisgICAgVGVzdEludGVyZmFjZSogaW1wbCA9IHN0YXRp
Y19jYXN0PFRlc3RJbnRlcmZhY2UqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOworICAgIEpTVmFsdWUg
cmVzdWx0ID0gdG9KUyhleGVjLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgV1RGOjpnZXRQ
dHIoVGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsTm9kZShpbXBsKSkpOworICAgIHJldHVy
biByZXN1bHQ7Cit9CisKKyNlbmRpZgorCiBKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUNvbnN0cnVj
dG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRpZmllciYp
CiB7CiAgICAgSlNUZXN0SW50ZXJmYWNlKiBkb21PYmplY3QgPSBzdGF0aWNfY2FzdDxKU1Rlc3RJ
bnRlcmZhY2UqPihhc09iamVjdChzbG90QmFzZSkpOwpAQCAtMjkwLDYgKzMxMCwxNiBAQCB2b2lk
IHNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjMoCiAKICNlbmRpZgogCisjaWYgRU5B
QkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCit2b2lkIHNldEpTVGVzdElu
dGVyZmFjZVN1cHBsZW1lbnRhbE5vZGUoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogdGhpc09i
amVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3sKKyAgICBKU1Rlc3RJbnRlcmZhY2UqIGNhc3RlZFRoaXMg
PSBzdGF0aWNfY2FzdDxKU1Rlc3RJbnRlcmZhY2UqPih0aGlzT2JqZWN0KTsKKyAgICBUZXN0SW50
ZXJmYWNlKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdEludGVyZmFjZSo+KGNhc3RlZFRoaXMtPmlt
cGwoKSk7CisgICAgVGVzdFN1cHBsZW1lbnRhbDo6c2V0U3VwcGxlbWVudGFsTm9kZShpbXBsLCB0
b05vZGUodmFsdWUpKTsKK30KKworI2VuZGlmCisKIEpTVmFsdWUgSlNUZXN0SW50ZXJmYWNlOjpn
ZXRDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QpCiB7CiAgICAgcmV0dXJuIGdldERPTUNvbnN0cnVjdG9yPEpTVGVzdEludGVyZmFjZUNvbnN0
cnVjdG9yPihleGVjLCBzdGF0aWNfY2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVj
dCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEludGVyZmFjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuaAkocmV2aXNpb24gMTA4Mzg5KQorKysgU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNTksNiArMTU5LDggQEAgSlNDOjpKU1ZhbHVlIGpzVGVzdEludGVyZmFj
ZVN1cHBsZW1lbnRhbAogdm9pZCBzZXRKU1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIyKEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6SlNWYWx1ZSk7CiBKU0M6OkpTVmFs
dWUganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
SlNWYWx1ZSwgY29uc3QgSlNDOjpJZGVudGlmaWVyJik7CiB2b2lkIHNldEpTVGVzdEludGVyZmFj
ZVN1cHBsZW1lbnRhbFN0cjMoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpK
U1ZhbHVlKTsKK0pTQzo6SlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxOb2RlKEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6OklkZW50aWZpZXImKTsKK3Zv
aWQgc2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsTm9kZShKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6SlNPYmplY3QqLCBKU0M6OkpTVmFsdWUpOwogSlNDOjpKU1ZhbHVlIGpzVGVzdEludGVyZmFj
ZUNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6Oklk
ZW50aWZpZXImKTsKIC8vIENvbnN0YW50cwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0SW50ZXJmYWNlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdEludGVyZmFjZS5o
CShyZXZpc2lvbiAxMDgzODkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvT2JqQy9ET01UZXN0SW50ZXJmYWNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcg
QEAKIAogI2lmIFdFQktJVF9WRVJTSU9OX01BWF9BTExPV0VEID49IFdFQktJVF9WRVJTSU9OX0xB
VEVTVAogCitAY2xhc3MgRE9NTm9kZTsKIEBjbGFzcyBET01UZXN0T2JqOwogQGNsYXNzIE5TU3Ry
aW5nOwogCkBAIC01Myw2ICs1NCwxMCBAQCBlbnVtIHsKIC0gKE5TU3RyaW5nICopc3VwcGxlbWVu
dGFsU3RyMzsKIC0gKHZvaWQpc2V0U3VwcGxlbWVudGFsU3RyMzooTlNTdHJpbmcgKiluZXdTdXBw
bGVtZW50YWxTdHIzOwogI2VuZGlmCisjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUo
Q29uZGl0aW9uMTIpCistIChET01Ob2RlICopc3VwcGxlbWVudGFsTm9kZTsKKy0gKHZvaWQpc2V0
U3VwcGxlbWVudGFsTm9kZTooRE9NTm9kZSAqKW5ld1N1cHBsZW1lbnRhbE5vZGU7CisjZW5kaWYK
IC0gKHZvaWQpc3VwcGxlbWVudGFsTWV0aG9kMTsKIC0gKERPTVRlc3RPYmogKilzdXBwbGVtZW50
YWxNZXRob2QyOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmc7
CiAtICh2b2lkKXN1cHBsZW1lbnRhbE1ldGhvZDM7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0SW50ZXJmYWNlLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RJbnRlcmZh
Y2UubW0JKHJldmlzaW9uIDEwODM4OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9PYmpDL0RPTVRlc3RJbnRlcmZhY2UubW0JKHdvcmtpbmcgY29weSkKQEAgLTQzLDYg
KzQzLDcgQEAKICNpbXBvcnQgIkV4Y2VwdGlvbkhhbmRsZXJzLmgiCiAjaW1wb3J0ICJKU01haW5U
aHJlYWRFeGVjU3RhdGUuaCIKICNpbXBvcnQgIktVUkwuaCIKKyNpbXBvcnQgIk5vZGUuaCIKICNp
bXBvcnQgIlRlc3RJbnRlcmZhY2UuaCIKICNpbXBvcnQgIlRlc3RPYmouaCIKICNpbXBvcnQgIlRl
c3RTdXBwbGVtZW50YWwuaCIKQEAgLTEwOCw2ICsxMDksMjIgQEAgLSAodm9pZClzZXRTdXBwbGVt
ZW50YWxTdHIzOihOU1N0cmluZyAqKQogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQ29uZGl0aW9u
MTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKKy0gKERPTU5vZGUgKilzdXBwbGVtZW50YWxOb2Rl
Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVy
biBraXQoV1RGOjpnZXRQdHIoVGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsTm9kZShJTVBM
KSkpOworfQorCistICh2b2lkKXNldFN1cHBsZW1lbnRhbE5vZGU6KERPTU5vZGUgKiluZXdTdXBw
bGVtZW50YWxOb2RlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRl
OworICAgIEFTU0VSVChuZXdTdXBwbGVtZW50YWxOb2RlKTsKKworICAgIFRlc3RTdXBwbGVtZW50
YWw6OnNldFN1cHBsZW1lbnRhbE5vZGUoSU1QTCwgY29yZShuZXdTdXBwbGVtZW50YWxOb2RlKSk7
Cit9CisjZW5kaWYKKwogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0
aW9uMTIpCiAtICh2b2lkKXN1cHBsZW1lbnRhbE1ldGhvZDEKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJbnRlcmZhY2UuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJbnRlcmZh
Y2UuY3BwCShyZXZpc2lvbiAxMDgzODkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVjgvVjhUZXN0SW50ZXJmYWNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiAr
MzEsNyBAQAogI2luY2x1ZGUgIlY4QmluZGluZ1N0YXRlLmgiCiAjaW5jbHVkZSAiVjhET01XcmFw
cGVyLmgiCiAjaW5jbHVkZSAiVjhJc29sYXRlZENvbnRleHQuaCIKKyNpbmNsdWRlICJWOE5vZGUu
aCIKICNpbmNsdWRlICJWOFByb3h5LmgiCiAjaW5jbHVkZSAiVjhUZXN0T2JqLmgiCiAjaW5jbHVk
ZSA8d3RmL0dldFB0ci5oPgpAQCAtODMsNiArODQsMzAgQEAgc3RhdGljIHZvaWQgc3VwcGxlbWVu
dGFsU3RyMkF0dHJTZXR0ZXIodgogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUo
Q29uZGl0aW9uMTIpCiAKK3N0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gc3VwcGxlbWVudGFs
Tm9kZUF0dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nl
c3NvckluZm8mIGluZm8pCit7CisgICAgSU5DX1NUQVRTKCJET00uVGVzdEludGVyZmFjZS5zdXBw
bGVtZW50YWxOb2RlLl9nZXQiKTsKKyAgICBUZXN0SW50ZXJmYWNlKiBpbXAgPSBWOFRlc3RJbnRl
cmZhY2U6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOworICAgIHJldHVybiB0b1Y4KFRlc3RTdXBw
bGVtZW50YWw6OnN1cHBsZW1lbnRhbE5vZGUoaW1wKSk7Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUo
Q29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKKworI2lmIEVOQUJMRShDb25kaXRp
b24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQorCitzdGF0aWMgdm9pZCBzdXBwbGVtZW50YWxO
b2RlQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpW
YWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit7CisgICAgSU5DX1NU
QVRTKCJET00uVGVzdEludGVyZmFjZS5zdXBwbGVtZW50YWxOb2RlLl9zZXQiKTsKKyAgICBUZXN0
SW50ZXJmYWNlKiBpbXAgPSBWOFRlc3RJbnRlcmZhY2U6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkp
OworICAgIE5vZGUqIHYgPSBWOE5vZGU6Okhhc0luc3RhbmNlKHZhbHVlKSA/IFY4Tm9kZTo6dG9O
YXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdCh2YWx1ZSkpIDogMDsKKyAgICBUZXN0
U3VwcGxlbWVudGFsOjpzZXRTdXBwbGVtZW50YWxOb2RlKGltcCwgV1RGOjpnZXRQdHIodikpOwor
ICAgIHJldHVybjsKK30KKworI2VuZGlmIC8vIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxF
KENvbmRpdGlvbjEyKQorCisjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0
aW9uMTIpCisKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gc3VwcGxlbWVudGFsTWV0aG9k
MUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKCJE
T00uVGVzdEludGVyZmFjZS5zdXBwbGVtZW50YWxNZXRob2QxIik7CkBAIC0xMzUsNiArMTYwLDEw
IEBAIHN0YXRpYyBjb25zdCBCYXRjaGVkQXR0cmlidXRlIFRlc3RJbnRlcmYKICAgICAvLyBBdHRy
aWJ1dGUgJ3N1cHBsZW1lbnRhbFN0cjMnIChUeXBlOiAnYXR0cmlidXRlJyBFeHRBdHRyOiAnQ3Vz
dG9tU2V0dGVyIEN1c3RvbUdldHRlciBDb25kaXRpb25hbCBJbXBsZW1lbnRlZEJ5JykKICAgICB7
InN1cHBsZW1lbnRhbFN0cjMiLCBWOFRlc3RJbnRlcmZhY2U6OnN1cHBsZW1lbnRhbFN0cjNBY2Nl
c3NvckdldHRlciwgVjhUZXN0SW50ZXJmYWNlOjpzdXBwbGVtZW50YWxTdHIzQWNjZXNzb3JTZXR0
ZXIsIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpE
RUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAg
Lyogb24gaW5zdGFuY2UgKi99LAogI2VuZGlmIC8vIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5B
QkxFKENvbmRpdGlvbjEyKQorI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRp
dGlvbjEyKQorICAgIC8vIEF0dHJpYnV0ZSAnc3VwcGxlbWVudGFsTm9kZScgKFR5cGU6ICdhdHRy
aWJ1dGUnIEV4dEF0dHI6ICdDb25kaXRpb25hbCBJbXBsZW1lbnRlZEJ5JykKKyAgICB7InN1cHBs
ZW1lbnRhbE5vZGUiLCBUZXN0SW50ZXJmYWNlSW50ZXJuYWw6OnN1cHBsZW1lbnRhbE5vZGVBdHRy
R2V0dGVyLCBUZXN0SW50ZXJmYWNlSW50ZXJuYWw6OnN1cHBsZW1lbnRhbE5vZGVBdHRyU2V0dGVy
LCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVG
QVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8q
IG9uIGluc3RhbmNlICovfSwKKyNlbmRpZiAvLyBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJM
RShDb25kaXRpb24xMikKIH07CiAKIHN0YXRpYyBjb25zdCBCYXRjaGVkQ2FsbGJhY2sgVGVzdElu
dGVyZmFjZUNhbGxiYWNrc1tdID0gewpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwCShyZXZpc2lvbiAxMDgzODkpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDM5LDggKzI0MzksNyBAQCB2b2lkIEZyYW1l
TG9hZGVyOjpjbG9zZUFuZFJlbW92ZUNoaWxkKEZyCiAgICAgY2hpbGQtPnNldFZpZXcoMCk7CiAg
ICAgaWYgKGNoaWxkLT5vd25lckVsZW1lbnQoKSAmJiBjaGlsZC0+cGFnZSgpKQogICAgICAgICBj
aGlsZC0+cGFnZSgpLT5kZWNyZW1lbnRGcmFtZUNvdW50KCk7Ci0gICAgLy8gRklYTUU6IFRoZSBw
YWdlIGlzbid0IGJlaW5nIGRlc3Ryb3llZCwgc28gaXQncyBub3QgcmlnaHQgdG8gY2FsbCBhIGZ1
bmN0aW9uIG5hbWVkIHBhZ2VEZXN0cm95ZWQoKS4KLSAgICBjaGlsZC0+cGFnZURlc3Ryb3llZCgp
OworICAgIGNoaWxkLT5kZXRhY2hGcm9tUGFnZSgpOwogCiAgICAgbV9mcmFtZS0+dHJlZSgpLT5y
ZW1vdmVDaGlsZChjaGlsZCk7CiB9CkBAIC0yNTE4LDggKzI1MTcsNyBAQCB2b2lkIEZyYW1lTG9h
ZGVyOjpkZXRhY2hGcm9tUGFyZW50KCkKICAgICAgICAgcGFyZW50LT5sb2FkZXIoKS0+c2NoZWR1
bGVDaGVja0NvbXBsZXRlZCgpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIG1fZnJhbWUtPnNldFZp
ZXcoMCk7Ci0gICAgICAgIC8vIEZJWE1FOiBUaGUgcGFnZSBpc24ndCBiZWluZyBkZXN0cm95ZWQs
IHNvIGl0J3Mgbm90IHJpZ2h0IHRvIGNhbGwgYSBmdW5jdGlvbiBuYW1lZCBwYWdlRGVzdHJveWVk
KCkuCi0gICAgICAgIG1fZnJhbWUtPnBhZ2VEZXN0cm95ZWQoKTsKKyAgICAgICAgbV9mcmFtZS0+
ZGV0YWNoRnJvbVBhZ2UoKTsKICAgICB9CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
dy5jcHAJKHJldmlzaW9uIDEwODM4OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgwLDYgKzQ4MCwyMSBAQCB2b2lkIERPTVdpbmRvdzo6
ZnJhbWVEZXN0cm95ZWQoKQogICAgIGNsZWFyKCk7CiB9CiAKK3ZvaWQgRE9NV2luZG93Ojp3aWxs
RGV0YWNoUGFnZSgpCit7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcmFtZVdpbmRv
d0Rpc2NhcmRlZChtX2ZyYW1lLCB0aGlzKTsKKworI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQor
ICAgIC8vIENsZWFyaW5nIE5vdGlmaWNhdGlvbnMgcmVxdWVzdHMgaW52b2x2ZXMgYWNjZXNzaW5n
IHRoZSBjbGllbnQgc28gaXQgbXVzdCBiZSBkb25lCisgICAgLy8gYmVmb3JlIHRoZSBmcmFtZSBp
cyBkZXRhY2hlZC4KKyAgICByZXNldE5vdGlmaWNhdGlvbnMoKTsKKyNlbmRpZgorCisgICAgSGFz
aFNldDxET01XaW5kb3dQcm9wZXJ0eSo+OjppdGVyYXRvciBzdG9wID0gbV9wcm9wZXJ0aWVzLmVu
ZCgpOworICAgIGZvciAoSGFzaFNldDxET01XaW5kb3dQcm9wZXJ0eSo+OjppdGVyYXRvciBpdCA9
IG1fcHJvcGVydGllcy5iZWdpbigpOyBpdCAhPSBzdG9wOyArK2l0KQorICAgICAgICAoKml0KS0+
d2lsbERldGFjaFBhZ2UoKTsKK30KKwogdm9pZCBET01XaW5kb3c6OnJlZ2lzdGVyUHJvcGVydHko
RE9NV2luZG93UHJvcGVydHkqIHByb3BlcnR5KQogewogICAgIG1fcHJvcGVydGllcy5hZGQocHJv
cGVydHkpOwpAQCAtNzMxLDIzICs3NDYsNiBAQCB2b2lkIERPTVdpbmRvdzo6cmVzZXROb3RpZmlj
YXRpb25zKCkKIH0KICNlbmRpZgogCi12b2lkIERPTVdpbmRvdzo6cGFnZURlc3Ryb3llZCgpCi17
Ci0gICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcmFtZVdpbmRvd0Rpc2NhcmRlZChtX2Zy
YW1lLCB0aGlzKTsKLSNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLSAgICAvLyBDbGVhcmluZyBO
b3RpZmljYXRpb25zIHJlcXVlc3RzIGludm9sdmVzIGFjY2Vzc2luZyB0aGUgY2xpZW50IHNvIGl0
IG11c3QgYmUgZG9uZQotICAgIC8vIGJlZm9yZSB0aGUgZnJhbWUgaXMgZGV0YWNoZWQuCi0gICAg
cmVzZXROb3RpZmljYXRpb25zKCk7Ci0jZW5kaWYKLX0KLQotdm9pZCBET01XaW5kb3c6OnJlc2V0
R2VvbG9jYXRpb24oKQotewotICAgIC8vIEdlb2xvY2F0aW9uIHNob3VsZCBjYW5jZWwgYWN0aXZp
dGllcyBhbmQgcGVybWlzc2lvbiByZXF1ZXN0cyB3aGVuIHRoZSBwYWdlIGlzIGRldGFjaGVkLgot
ICAgIGlmIChtX25hdmlnYXRvcikKLSAgICAgICAgbV9uYXZpZ2F0b3ItPnJlc2V0R2VvbG9jYXRp
b24oKTsKLX0KLQogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogdm9pZCBET01XaW5kb3c6
OnNldElEQkZhY3RvcnkoUGFzc1JlZlB0cjxJREJGYWN0b3J5PiBpZGJGYWN0b3J5KQogewpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCShyZXZpc2lvbiAxMDgzODkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5oCSh3b3JraW5nIGNvcHkpCkBAIC05Miw4ICs5Miw2IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2aXJ0dWFsIERPTVdpbmRvdyogdG9ET01XaW5k
b3coKTsKIAotICAgICAgICB2aXJ0dWFsIHZvaWQgZnJhbWVEZXN0cm95ZWQoKSBPVkVSUklERTsK
LQogICAgICAgICB2b2lkIHJlZ2lzdGVyUHJvcGVydHkoRE9NV2luZG93UHJvcGVydHkqKTsKICAg
ICAgICAgdm9pZCB1bnJlZ2lzdGVyUHJvcGVydHkoRE9NV2luZG93UHJvcGVydHkqKTsKIApAQCAt
MjMxLDkgKzIyOSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBwcmludEVy
cm9yTWVzc2FnZShjb25zdCBTdHJpbmcmKTsKICAgICAgICAgU3RyaW5nIGNyb3NzRG9tYWluQWNj
ZXNzRXJyb3JNZXNzYWdlKERPTVdpbmRvdyogYWN0aXZlV2luZG93KTsKIAotICAgICAgICB2b2lk
IHBhZ2VEZXN0cm95ZWQoKTsKLSAgICAgICAgdm9pZCByZXNldEdlb2xvY2F0aW9uKCk7Ci0KICAg
ICAgICAgdm9pZCBwb3N0TWVzc2FnZShQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4g
bWVzc2FnZSwgY29uc3QgTWVzc2FnZVBvcnRBcnJheSosIGNvbnN0IFN0cmluZyYgdGFyZ2V0T3Jp
Z2luLCBET01XaW5kb3cqIHNvdXJjZSwgRXhjZXB0aW9uQ29kZSYpOwogICAgICAgICAvLyBGSVhN
RTogcmVtb3ZlIHRoaXMgd2hlbiB3ZSB1cGRhdGUgdGhlIE9iakMgYmluZGluZ3MgKGJ1ZyAjMjg3
NzQpLgogICAgICAgICB2b2lkIHBvc3RNZXNzYWdlKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPiBtZXNzYWdlLCBNZXNzYWdlUG9ydCosIGNvbnN0IFN0cmluZyYgdGFyZ2V0T3JpZ2lu
LCBET01XaW5kb3cqIHNvdXJjZSwgRXhjZXB0aW9uQ29kZSYpOwpAQCAtNDE5LDYgKzQxNCw5IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBwcml2YXRlOgogICAgICAgICBleHBsaWNpdCBET01X
aW5kb3coRnJhbWUqKTsKIAorICAgICAgICB2aXJ0dWFsIHZvaWQgZnJhbWVEZXN0cm95ZWQoKSBP
VkVSUklERTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHdpbGxEZXRhY2hQYWdlKCkgT1ZFUlJJREU7
CisKICAgICAgICAgdmlydHVhbCB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgeyByZWYoKTsgfQogICAg
ICAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIHsgZGVyZWYoKTsgfQogICAgICAg
ICB2aXJ0dWFsIEV2ZW50VGFyZ2V0RGF0YSogZXZlbnRUYXJnZXREYXRhKCk7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd1Byb3BlcnR5LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd1Byb3BlcnR5LmNwcAkocmV2aXNpb24gMTA4Mzg5KQor
KysgU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3dQcm9wZXJ0eS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQ5LDQgKzQ5LDkgQEAgdm9pZCBET01XaW5kb3dQcm9wZXJ0eTo6ZGlzY29ubmVjdEZy
YW1lKAogICAgIG1fZnJhbWUgPSAwOwogfQogCit2b2lkIERPTVdpbmRvd1Byb3BlcnR5Ojp3aWxs
RGV0YWNoUGFnZSgpCit7CisgICAgLy8gU3ViY2xhc3NlcyBzaG91bGQgb3ZlcnJpZGUgdGhpcyBm
dW5jdGlvbiB0byBoYW5kbGUgdGhpcyBub3RpZmljYXRpb24uCit9CisKIH0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93UHJvcGVydHkuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvd1Byb3BlcnR5LmgJKHJldmlzaW9uIDEwODM4OSkKKysrIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93UHJvcGVydHkuaAkod29ya2luZyBjb3B5KQpAQCAt
MzMsNyArMzMsOSBAQCBjbGFzcyBGcmFtZTsKIGNsYXNzIERPTVdpbmRvd1Byb3BlcnR5IHsKIHB1
YmxpYzoKICAgICBleHBsaWNpdCBET01XaW5kb3dQcm9wZXJ0eShGcmFtZSopOworCiAgICAgdmly
dHVhbCB2b2lkIGRpc2Nvbm5lY3RGcmFtZSgpOworICAgIHZpcnR1YWwgdm9pZCB3aWxsRGV0YWNo
UGFnZSgpOwogCiAgICAgRnJhbWUqIGZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZTsgfQog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAkocmV2aXNpb24gMTA4Mzg5KQorKysgU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY2MCwyMSArNjYwLDE5IEBA
IERPTVdpbmRvdyogRnJhbWU6OmRvbVdpbmRvdygpIGNvbnN0CiAgICAgcmV0dXJuIG1fZG9tV2lu
ZG93LmdldCgpOwogfQogCi12b2lkIEZyYW1lOjpwYWdlRGVzdHJveWVkKCkKK3ZvaWQgRnJhbWU6
OndpbGxEZXRhY2hQYWdlKCkKIHsKLSAgICAvLyBGSVhNRTogUmVuYW1lIHRoaXMgZnVuY3Rpb24s
IHNpbmNlIGl0J3MgY2FsbGVkIG5vdCBvbmx5IGZyb20gUGFnZSBkZXN0cnVjdG9yLCBidXQgaW4g
c2V2ZXJhbCBvdGhlciBjYXNlcy4KLSAgICAvLyBUaGlzIGNsZWFudXAgaXMgbmVlZGVkIHdoZW5l
dmVyIHdlIHJlbW92ZSBhIGZyYW1lIGZyb20gcGFnZS4KLQogICAgIGlmIChGcmFtZSogcGFyZW50
ID0gdHJlZSgpLT5wYXJlbnQoKSkKICAgICAgICAgcGFyZW50LT5sb2FkZXIoKS0+Y2hlY2tMb2Fk
Q29tcGxldGUoKTsKIAotICAgIGlmIChtX2RvbVdpbmRvdykgewotICAgICAgICBtX2RvbVdpbmRv
dy0+cmVzZXRHZW9sb2NhdGlvbigpOwogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQorICAgIGlm
IChtX2RvbVdpbmRvdykKICAgICAgICAgbV9kb21XaW5kb3ctPnJlc2V0Tm90aWZpY2F0aW9ucygp
OwogI2VuZGlmCi0gICAgICAgIG1fZG9tV2luZG93LT5wYWdlRGVzdHJveWVkKCk7Ci0gICAgfQor
CisgICAgSGFzaFNldDxGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIqPjo6aXRlcmF0b3Igc3RvcCA9
IG1fZGVzdHJ1Y3Rpb25PYnNlcnZlcnMuZW5kKCk7CisgICAgZm9yIChIYXNoU2V0PEZyYW1lRGVz
dHJ1Y3Rpb25PYnNlcnZlcio+OjppdGVyYXRvciBpdCA9IG1fZGVzdHJ1Y3Rpb25PYnNlcnZlcnMu
YmVnaW4oKTsgaXQgIT0gc3RvcDsgKytpdCkKKyAgICAgICAgKCppdCktPndpbGxEZXRhY2hQYWdl
KCk7CiAKICAgICAvLyBGSVhNRTogSXQncyB1bmNsZWFyIGFzIHRvIHdoeSB0aGlzIGlzIGNhbGxl
ZCBtb3JlIHRoYW4gb25jZSwgYnV0IGl0IGlzLAogICAgIC8vIHNvIHBhZ2UoKSBjb3VsZCBiZSBO
VUxMLgpAQCAtNjgzLDggKzY4MSw2IEBAIHZvaWQgRnJhbWU6OnBhZ2VEZXN0cm95ZWQoKQogCiAg
ICAgc2NyaXB0KCktPmNsZWFyU2NyaXB0T2JqZWN0cygpOwogICAgIHNjcmlwdCgpLT51cGRhdGVQ
bGF0Zm9ybVNjcmlwdE9iamVjdHMoKTsKLQotICAgIGRldGFjaEZyb21QYWdlKCk7CiB9CiAKIHZv
aWQgRnJhbWU6OmRpc2Nvbm5lY3RPd25lckVsZW1lbnQoKQpAQCAtNzE4LDE3ICs3MTQsMTYgQEAg
dm9pZCBGcmFtZTo6dHJhbnNmZXJDaGlsZEZyYW1lVG9OZXdEb2N1bQogICAgICAgICAgICAgIG1f
cGFnZS0+ZGVjcmVtZW50RnJhbWVDb3VudCgpOwogICAgICAgICB9CiAKLSAgICAgICAgLy8gRklY
TUU6IFdlIHNob3VsZCBpZGVhbGx5IGFsbG93IGV4aXN0aW5nIEdlb2xvY2F0aW9uIGFjdGl2aXRp
ZXMgdG8gY29udGludWUKLSAgICAgICAgLy8gd2hlbiB0aGUgR2VvbG9jYXRpb24ncyBpZnJhbWUg
aXMgcmVwYXJlbnRlZC4KLSAgICAgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD01NTU3NwotICAgICAgICAvLyBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTUyODc3CiAgICAgICAgIGlmIChtX2RvbVdpbmRvdykgewotICAg
ICAgICAgICAgbV9kb21XaW5kb3ctPnJlc2V0R2VvbG9jYXRpb24oKTsKICNpZiBFTkFCTEUoTk9U
SUZJQ0FUSU9OUykKICAgICAgICAgICAgIG1fZG9tV2luZG93LT5yZXNldE5vdGlmaWNhdGlvbnMo
KTsKICNlbmRpZgogICAgICAgICB9CiAKKyAgICAgICAgSGFzaFNldDxGcmFtZURlc3RydWN0aW9u
T2JzZXJ2ZXIqPjo6aXRlcmF0b3Igc3RvcCA9IG1fZGVzdHJ1Y3Rpb25PYnNlcnZlcnMuZW5kKCk7
CisgICAgICAgIGZvciAoSGFzaFNldDxGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIqPjo6aXRlcmF0
b3IgaXQgPSBtX2Rlc3RydWN0aW9uT2JzZXJ2ZXJzLmJlZ2luKCk7IGl0ICE9IHN0b3A7ICsraXQp
CisgICAgICAgICAgICAoKml0KS0+d2lsbERldGFjaFBhZ2UoKTsKKwogICAgICAgICBtX3BhZ2Ug
PSBuZXdQYWdlOwogCiAgICAgICAgIGlmIChuZXdQYWdlKQpJbmRleDogU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaAko
cmV2aXNpb24gMTA4Mzg5KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC04OSw4ICs4OSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9p
ZCBhZGREZXN0cnVjdGlvbk9ic2VydmVyKEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlciopOwogICAg
ICAgICB2b2lkIHJlbW92ZURlc3RydWN0aW9uT2JzZXJ2ZXIoRnJhbWVEZXN0cnVjdGlvbk9ic2Vy
dmVyKik7CiAKKyAgICAgICAgdm9pZCB3aWxsRGV0YWNoUGFnZSgpOwogICAgICAgICB2b2lkIGRl
dGFjaEZyb21QYWdlKCk7Ci0gICAgICAgIHZvaWQgcGFnZURlc3Ryb3llZCgpOwogICAgICAgICB2
b2lkIGRpc2Nvbm5lY3RPd25lckVsZW1lbnQoKTsKIAogICAgICAgICBQYWdlKiBwYWdlKCkgY29u
c3Q7CkBAIC0zNDgsNiArMzQ4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgaW5saW5l
IHZvaWQgRnJhbWU6OmRldGFjaEZyb21QYWdlKCkKICAgICB7CisgICAgICAgIHdpbGxEZXRhY2hQ
YWdlKCk7CiAgICAgICAgIG1fcGFnZSA9IDA7CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuY3BwCShyZXZpc2lvbiAxMDgz
ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTU4LDQgKzU4LDkgQEAgdm9pZCBGcmFtZURlc3RydWN0aW9uT2Jz
ZXJ2ZXI6OmZyYW1lRGVzdAogICAgIG1fZnJhbWUgPSAwOwogfQogCit2b2lkIEZyYW1lRGVzdHJ1
Y3Rpb25PYnNlcnZlcjo6d2lsbERldGFjaFBhZ2UoKQoreworICAgIC8vIFN1YmNsYXNzZXMgc2hv
dWxkIG92ZXJyaWRlIHRoaXMgZnVuY3Rpb24gdG8gaGFuZGxlIHRoaXMgbm90aWZpY2F0aW9uLgor
fQorCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZl
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVEZXN0cnVjdGlvbk9i
c2VydmVyLmgJKHJldmlzaW9uIDEwODM4OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVE
ZXN0cnVjdGlvbk9ic2VydmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDEwIEBAIGNs
YXNzIEZyYW1lOwogY2xhc3MgRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyIHsKIHB1YmxpYzoKICAg
ICBleHBsaWNpdCBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIoRnJhbWUqKTsKKwogICAgIHZpcnR1
YWwgdm9pZCBmcmFtZURlc3Ryb3llZCgpOworICAgIHZpcnR1YWwgdm9pZCB3aWxsRGV0YWNoUGFn
ZSgpOworCiAgICAgRnJhbWUqIGZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZTsgfQogCiBw
cm90ZWN0ZWQ6CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuY3BwCShyZXZpc2lvbiAxMDgz
ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTY3LDEyICs2Nyw2IEBAIE5hdmlnYXRvclN1cHBsZW1lbnQqIE5hdmlnYXRvcjo6cmVxdWly
ZVMKICAgICByZXR1cm4gbV9zdXBwbGltZW50cy5nZXQobmFtZS5pbXBsKCkpOwogfQogCi12b2lk
IE5hdmlnYXRvcjo6cmVzZXRHZW9sb2NhdGlvbigpCi17Ci0gICAgaWYgKG1fZ2VvbG9jYXRpb24p
Ci0gICAgICAgIG1fZ2VvbG9jYXRpb24tPnJlc2V0KCk7Ci19Ci0KIC8vIElmIHRoaXMgZnVuY3Rp
b24gcmV0dXJucyB0cnVlLCB3ZSBuZWVkIHRvIGhpZGUgdGhlIHN1YnN0cmluZyAiNC4iIHRoYXQg
d291bGQgb3RoZXJ3aXNlCiAvLyBhcHBlYXIgaW4gdGhlIGFwcFZlcnNpb24gc3RyaW5nLiBUaGlz
IGlzIHRvIGF2b2lkIHByb2JsZW1zIHdpdGggb2xkIHZlcnNpb25zIG9mIGEKIC8vIGxpYnJhcnkg
Y2FsbGVkIE9wZW5DdWJlIFF1aWNrTWVudSwgd2hpY2ggYXMgb2YgdGhpcyB3cml0aW5nIGlzIHN0
aWxsIGJlaW5nIHVzZWQgb24KQEAgLTE1MSwxMyArMTQ1LDYgQEAgYm9vbCBOYXZpZ2F0b3I6Omph
dmFFbmFibGVkKCkgY29uc3QKICAgICByZXR1cm4gbV9mcmFtZS0+c2V0dGluZ3MoKS0+aXNKYXZh
RW5hYmxlZCgpOwogfQogCi1HZW9sb2NhdGlvbiogTmF2aWdhdG9yOjpnZW9sb2NhdGlvbigpIGNv
bnN0Ci17Ci0gICAgaWYgKCFtX2dlb2xvY2F0aW9uKQotICAgICAgICBtX2dlb2xvY2F0aW9uID0g
R2VvbG9jYXRpb246OmNyZWF0ZShtX2ZyYW1lKTsKLSAgICByZXR1cm4gbV9nZW9sb2NhdGlvbi5n
ZXQoKTsKLX0KLQogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiBQb2ludGVyTG9jayogTmF2aWdh
dG9yOjp3ZWJraXRQb2ludGVyKCkgY29uc3QKIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
TmF2aWdhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3Iu
aAkocmV2aXNpb24gMTA4Mzg5KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuaAko
d29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFz
cyBET01NaW1lVHlwZUFycmF5OwogY2xhc3MgRE9NUGx1Z2luQXJyYXk7CiBjbGFzcyBGcmFtZTsK
LWNsYXNzIEdlb2xvY2F0aW9uOwogY2xhc3MgUG9pbnRlckxvY2s7CiBjbGFzcyBQbHVnaW5EYXRh
OwogCkBAIC00NSw4ICs0NCw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxOYXZp
Z2F0b3I+IGNyZWF0ZShGcmFtZSogZnJhbWUpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBOYXZpZ2F0
b3IoZnJhbWUpKTsgfQogICAgIHZpcnR1YWwgfk5hdmlnYXRvcigpOwogCi0gICAgdm9pZCByZXNl
dEdlb2xvY2F0aW9uKCk7Ci0KICAgICBTdHJpbmcgYXBwVmVyc2lvbigpIGNvbnN0OwogICAgIFN0
cmluZyBsYW5ndWFnZSgpIGNvbnN0OwogICAgIERPTVBsdWdpbkFycmF5KiBwbHVnaW5zKCkgY29u
c3Q7CkBAIC01Niw4ICs1Myw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgU3RyaW5nIHVzZXJB
Z2VudCgpIGNvbnN0OwogCi0gICAgR2VvbG9jYXRpb24qIGdlb2xvY2F0aW9uKCkgY29uc3Q7Ci0K
ICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgIFBvaW50ZXJMb2NrKiB3ZWJraXRQb2ludGVy
KCkgY29uc3Q7CiAjZW5kaWYKQEAgLTgwLDcgKzc1LDYgQEAgcHJpdmF0ZToKIAogICAgIG11dGFi
bGUgUmVmUHRyPERPTVBsdWdpbkFycmF5PiBtX3BsdWdpbnM7CiAgICAgbXV0YWJsZSBSZWZQdHI8
RE9NTWltZVR5cGVBcnJheT4gbV9taW1lVHlwZXM7Ci0gICAgbXV0YWJsZSBSZWZQdHI8R2VvbG9j
YXRpb24+IG1fZ2VvbG9jYXRpb247CiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICBtdXRh
YmxlIFJlZlB0cjxQb2ludGVyTG9jaz4gbV9wb2ludGVyOwogI2VuZGlmCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wYWdlL05hdmlnYXRvci5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGFnZS9OYXZpZ2F0b3IuaWRsCShyZXZpc2lvbiAxMDgzODkpCisrKyBTb3VyY2UvV2ViQ29yZS9w
YWdlL05hdmlnYXRvci5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTQwLDEwICs0MCw2IEBAIG1vZHVs
ZSB3aW5kb3cgewogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIG9uTGluZTsK
IAotI2lmIGRlZmluZWQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAmJiBFTkFCTEVfR0VPTE9DQVRJT04K
LSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIEdlb2xvY2F0
aW9uIGdlb2xvY2F0aW9uOwotI2VuZGlmCi0KICNpZiBkZWZpbmVkKEVOQUJMRV9QT0lOVEVSX0xP
Q0spICYmIEVOQUJMRV9QT0lOVEVSX0xPQ0sKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtW
OEVuYWJsZWRBdFJ1bnRpbWVdIFBvaW50ZXJMb2NrIHdlYmtpdFBvaW50ZXI7CiAjZW5kaWYKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmNwcAkocmV2aXNpb24gMTA4Mzg5KQorKysgU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjAwLDcgKzIwMCw3IEBAIFBhZ2U6On5Q
YWdlKCkKICAgICBhbGxQYWdlcy0+cmVtb3ZlKHRoaXMpOwogICAgIAogICAgIGZvciAoRnJhbWUq
IGZyYW1lID0gbWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCktPnRyYXZl
cnNlTmV4dCgpKQotICAgICAgICBmcmFtZS0+cGFnZURlc3Ryb3llZCgpOworICAgICAgICBmcmFt
ZS0+ZGV0YWNoRnJvbVBhZ2UoKTsKIAogICAgIG1fZWRpdG9yQ2xpZW50LT5wYWdlRGVzdHJveWVk
KCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYJKHJldmlzaW9uIDEwODM4OSkKKysrIFNv
dXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgkod29ya2luZyBjb3B5KQpAQCAtMjAxLDMgKzIw
MSw0IEBAIEVYUE9SVFMKICAgICAgICAgP3VwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNo
ZWV0c0BEb2N1bWVudEBXZWJDb3JlQEBRQUVYWFoKICAgICAgICAgP3VzZXJQcmVmZXJyZWRMYW5n
dWFnZXNAV2ViQ29yZUBAWUE/QVY/JFZlY3RvckBWU3RyaW5nQFdURkBAJDBBQEBXVEZAQFhaCiAg
ICAgICAgID92aWV3QERvY3VtZW50QFdlYkNvcmVAQFFCRVBBVkZyYW1lVmlld0AyQFhaCisgICAg
ICAgID93aWxsRGV0YWNoUGFnZUBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXJAV2ViQ29yZUBAVUFF
WFhaCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128065</attachid>
            <date>2012-02-21 15:52:26 -0800</date>
            <delta_ts>2012-02-21 16:59:15 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-78860-20120221155224.patch</filename>
            <type>text/plain</type>
            <size>61416</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwODM4OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU0IEBACisyMDEyLTAyLTIxICBBZGFtIEJh
cnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRnJhbWUgYW5kIE5hdmlnYXRvciBz
aG91bGRuJ3QgbmVlZCB0byB3b3JyeSBhYm91dCBHZW9sb2NhdGlvbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg4NjAKKworICAgICAgICBSZXZpZXdl
ZCBieSBFcmljIFNlaWRlbC4KKworICAgICAgICBUaGlzIHBhdGNoIHJlbW92ZXMgc29tZSBHZW9s
b2NhdGlvbi1zcGVjaWZpYyBjb2RlIGZyb20gRnJhbWUgYW5kCisgICAgICAgIE5hdmlnYXRvciBp
biBmYXZvciBvZiBvdXIgbmV3IHN1cHBsZW1lbnRhbCBtb2R1bGUgbWVjaGFuaXNtLiAgV2UncmUK
KyAgICAgICAgc3RpbGwgcmVmaW5pbmcgdGhlIG1vZHVsZSBzeXN0ZW0sIGJ1dCB3ZSBzZWVtIHRv
IGJlIGNvbnZlcmdpbmcgb24gYQorICAgICAgICBzaW1wbGUgT2JzZXJ2ZXIvU3VwcGxlbWVudCBk
ZXNpZ24uCisKKyAgICAgICAgSW4gYSBmdXR1cmUgcGF0Y2gsIEknbGwgbW92ZSB0aGUgcmVtYWlu
aW5nIEdlb2xvY2F0aW9uLXJlbGF0ZWQgZmlsZXMgaW4KKyAgICAgICAgV2ViQ29yZSBpbnRvIE1v
ZHVsZXMvZ2VvbG9jYXRpb24uICBUaGlzIHBhdGNoIGFwcGVhcnMgdG8gYmUgdGhlIGZpcnN0Cisg
ICAgICAgIHBhdGNoIHRoYXQgaW50cm9kdWNlcyBhIG1vZHVsZSB1c2VkIGJ5IGFsbCB0aGUgdmFy
aW91cyBidWlsZCBzeXN0ZW1zLAorICAgICAgICB3aGljaCBpcyB3aHkgdGhlcmUncyBhIGJpdCBt
b3JlIGJ1aWxkIHN5c3RlbSBvdmVyaGVhZCB0aGFuIHVzdWFsLgorCisgICAgICAgICogTW9kdWxl
cy9nZW9sb2NhdGlvbjogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZp
Z2F0b3JHZW9sb2NhdGlvbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6TmF2aWdhdG9yR2VvbG9jYXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdG9yR2VvbG9jYXRpb246On5OYXZpZ2F0b3JHZW9sb2Nh
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6cGFnZURlc3Ry
b3llZCk6CisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6ZnJvbSk6Cisg
ICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6Z2VvbG9jYXRpb24pOgorICAg
ICAgICAqIE1vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKE5hdmlnYXRvckdlb2xvY2F0aW9uKToKKyAg
ICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmlkbDogQWRk
ZWQuCisgICAgICAgICAgICAtIEkndmUgdGVtcG9yYXJpbHkgZGlzYWJsZWQgdGhpcyBBUEkgZm9y
IEdPYmplY3QgYmVjYXVzZSBpdCBnZW5lcmF0ZXMKKyAgICAgICAgICAgICAgYSBzdHJhbmdlIGNv
bXBpbGUgZXJyb3IuICBPbmNlIEkgbGFuZCB0aGlzIHBhdGNoLCBJJ2xsIHNwZW5kIHNvbWUKKyAg
ICAgICAgICAgICAgbW9yZSB0aW1lIGZpeGluZyB0aGUgY29tcGlsZSBlcnJvci4KKyAgICAgICAg
KiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwYWdl
L0RPTVdpbmRvdy5oOgorICAgICAgICAoRE9NV2luZG93KToKKyAgICAgICAgKiBwYWdlL0ZyYW1l
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpwYWdlRGVzdHJveWVkKToKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lOjp0cmFuc2ZlckNoaWxkRnJhbWVUb05ld0RvY3VtZW50KToKKyAgICAg
ICAgKiBwYWdlL0ZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXI6OnBhZ2VEZXN0cm95ZWQpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgICogcGFnZS9GcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuaDoKKyAgICAg
ICAgKEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlcik6CisgICAgICAgICogcGFnZS9OYXZpZ2F0b3Iu
Y3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGFnZS9OYXZpZ2F0b3IuaDoKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoTmF2aWdhdG9yKToKKyAgICAgICAgKiBwYWdlL05h
dmlnYXRvci5pZGw6CisKIDIwMTItMDItMjEgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBh
cHBsZS5jb20+CiAKICAgICAgICAgU2V0IFJlZmVycmVyIGhlYWRlciBmb3IgbWVkaWEgZG93bmxv
YWRzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMTA4Mzg5KQorKysgU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw2IEBACiBT
RVQoV2ViQ29yZV9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCQ09SRV9ESVJ9IgorICAg
ICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL2dlb2xvY2F0aW9uIgogICAgICIke1dFQkNPUkVfRElS
fS9hY2Nlc3NpYmlsaXR5IgogICAgICIke1dFQkNPUkVfRElSfS9iaW5kaW5ncyIKICAgICAiJHtX
RUJDT1JFX0RJUn0vYmluZGluZ3MvZ2VuZXJpYyIKQEAgLTg3LDYgKzg4LDcgQEAgU0VUKFdlYkNv
cmVfSU5DTFVERV9ESVJFQ1RPUklFUwogKQogCiBTRVQoV2ViQ29yZV9JRExfSU5DTFVERVMKKyAg
ICBNb2R1bGVzL2dlb2xvY2F0aW9uCiAgICAgYmluZGluZ3MvZ2VuZXJpYwogICAgIGNzcwogICAg
IGRvbQpAQCAtMTA1LDYgKzEwNyw4IEBAIFNFVChXZWJDb3JlX0lETF9JTkNMVURFUwogKQogCiBT
RVQoV2ViQ29yZV9JRExfRklMRVMKKyAgICBNb2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdl
b2xvY2F0aW9uLmlkbAorCiAgICAgY3NzL0NvdW50ZXIuaWRsCiAgICAgY3NzL0NTU0NoYXJzZXRS
dWxlLmlkbAogICAgIGNzcy9DU1NGb250RmFjZVJ1bGUuaWRsCkBAIC00MDAsNiArNDA0LDggQEAg
U0VUKFdlYkNvcmVfSURMX0ZJTEVTCiApCiAKIFNFVChXZWJDb3JlX1NPVVJDRVMKKyAgICBNb2R1
bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmNwcAorCiAgICAgYWNjZXNzaWJp
bGl0eS9BWE9iamVjdENhY2hlLmNwcAogICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFS
SUFHcmlkLmNwcAogICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5j
cHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gMTA4Mzg5KQor
KysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAt
MjgsNiArMjgsNyBAQAogCiBWUEFUSCA9IFwKICAgICAkKFdlYkNvcmUpIFwKKyAgICAkKFdlYkNv
cmUpL01vZHVsZXMvZ2VvbG9jYXRpb24gXAogICAgICQoV2ViQ29yZSkvYmluZGluZ3MvZ2VuZXJp
YyBcCiAgICAgJChXZWJDb3JlKS9iaW5kaW5ncy9qcyBcCiAgICAgJChXZWJDb3JlKS9iaW5kaW5n
cy9vYmpjIFwKQEAgLTUzLDYgKzU0LDcgQEAgVlBBVEggPSBcCiAjCiAKIEJJTkRJTkdfSURMUyA9
IFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRp
b24uaWRsIFwKICAgICAkKFdlYkNvcmUpL2Nzcy9DU1NDaGFyc2V0UnVsZS5pZGwgXAogICAgICQo
V2ViQ29yZSkvY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGwgXAogICAgICQoV2ViQ29yZSkvY3NzL0NT
U0ltcG9ydFJ1bGUuaWRsIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnBy
aQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkJKHJldmlz
aW9uIDEwODM4OSkKKysrIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQkod29ya2lu
ZyBjb3B5KQpAQCAtODYsNiArODYsNyBAQCBTVFlMRVNIRUVUU19FTUJFRCA9IFwKICAgICAkJFBX
RC9jc3MvbW9iaWxlVGhlbWVRdC5jc3MKIAogSURMX0JJTkRJTkdTICs9IFwKKyAgICAkJFBXRC9N
b2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmlkbCBcCiAgICAgJCRQV0Qv
Y3NzL0NvdW50ZXIuaWRsIFwKICAgICAkJFBXRC9jc3MvQ1NTQ2hhcnNldFJ1bGUuaWRsIFwKICAg
ICAkJFBXRC9jc3MvQ1NTRm9udEZhY2VSdWxlLmlkbCBcCkBAIC02ODIsNiArNjgzLDcgQEAgZWxz
ZTogZ2VuZXJhdG9yID0gSlMKIGdlbmVyYXRlQmluZGluZ3MuY29tbWFuZHMgPSBwZXJsIC1JJCRQ
V0QvYmluZGluZ3Mvc2NyaXB0cyAkJGdlbmVyYXRlQmluZGluZ3Muc2NyaXB0IFwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAtLWRlZmluZXMgXCIkJHtGRUFUVVJFX0RFRklORVNfSkFWQVND
UklQVH1cIiBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS1nZW5lcmF0b3IgJCRnZW5l
cmF0b3IgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0taW5jbHVkZSAkJFBXRC9Nb2R1
bGVzL2dlb2xvY2F0aW9uIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLWluY2x1ZGUg
JCRQV0QvZG9tIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLWluY2x1ZGUgJCRQV0Qv
ZmlsZWFwaSBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS1pbmNsdWRlICQkUFdEL2h0
bWwgXApJbmRleDogU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHJldmlzaW9uIDEwODM4OSkKKysrIFNvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0xMSw2ICsxMSw3IEBA
IHdlYmNvcmVfY3BwZmxhZ3MgKz0gXAogCS1JJChzcmNkaXIpL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL2luY2x1ZGUgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2luY2x1
ZGUvR0xTTEFORyBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUgXAorCS1JJChzcmNkaXIp
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24gXAogCS1JJChzcmNkaXIpL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljIFwK
QEAgLTc1OCw2ICs3NTksNyBAQCBEZXJpdmVkU291cmNlcy9BTkdMRS9nbHNsYW5nX3RhYi5jcHA6
IFNvCiBEZXJpdmVkU291cmNlcy9BTkdMRS9nbHNsYW5nX3RhYi5oOiBEZXJpdmVkU291cmNlcy9B
TkdMRS9nbHNsYW5nX3RhYi5jcHAKIAogSURMX1BBVEggOj0gXAorICAgICQoV2ViQ29yZSkvTW9k
dWxlcy9nZW9sb2NhdGlvbiBcCiAgICAgJChXZWJDb3JlKS9iaW5kaW5ncy9qcyBcCiAgICAgJChX
ZWJDb3JlKS9jc3MgXAogICAgICQoV2ViQ29yZSkvZG9tIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvR05VbWFr
ZWZpbGUubGlzdC5hbQkocmV2aXNpb24gMTA4Mzg5KQorKysgU291cmNlL1dlYkNvcmUvR05VbWFr
ZWZpbGUubGlzdC5hbQkod29ya2luZyBjb3B5KQpAQCAtNjUwLDYgKzY1MCw3IEBAIHdlYmNvcmVf
YnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9YUGF0aEdyYW1tYXIu
aAogCiBkb21fYmluZGluZ19pZGxzICs9IFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvZ2VvbG9jYXRp
b24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaWRsIFwKIAkkKFdlYkNvcmUpL2Nzcy9DU1NDaGFyc2V0
UnVsZS5pZGwgXAogCSQoV2ViQ29yZSkvY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGwgXAogCSQoV2Vi
Q29yZSkvY3NzL0NTU0ltcG9ydFJ1bGUuaWRsIFwKQEAgLTk1MSw2ICs5NTIsOCBAQCBkb21fYmlu
ZGluZ19pZGxzICs9IFwKIAkkKFdlYkNvcmUpL3htbC9YU0xUUHJvY2Vzc29yLmlkbAogCiB3ZWJj
b3JlX3NvdXJjZXMgKz0gXAorCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vTmF2
aWdhdG9yR2VvbG9jYXRpb24uY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0
aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmggXAogCVNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZC5jcHAgXApJbmRleDogU291cmNlL1dl
YkNvcmUvVGFyZ2V0LnByaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJp
CShyZXZpc2lvbiAxMDgzODkpCisrKyBTb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCSh3b3JraW5n
IGNvcHkpCkBAIC0zNCw2ICszNCw4IEBAIGluY2x1ZGVfd2ViaW5zcGVjdG9yIHsKIH0KIAogU09V
UkNFUyArPSBcCisgICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5j
cHAgXAorICAgIFwKICAgICBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlJbWFnZU1hcExpbmsu
Y3BwIFwKICAgICBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzLmNwcCBc
CiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3QuY3BwIFwKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluCShyZXZpc2lvbiAxMDgzODkpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbgkod29ya2luZyBjb3B5KQpAQCAtNjcyLDYgKzY3Miw3IEBAIF9fWk43V2ViQ29y
ZTI0RnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyRDIKIF9fWk43V2ViQ29yZTI0RnJhbWVEZXN0cnVj
dGlvbk9ic2VydmVyQzJFUE5TXzVGcmFtZUUKIF9fWk43V2ViQ29yZTI0RnJhbWVEZXN0cnVjdGlv
bk9ic2VydmVyMTJvYnNlcnZlRnJhbWVFUE5TXzVGcmFtZUUKIF9fWk43V2ViQ29yZTI0RnJhbWVE
ZXN0cnVjdGlvbk9ic2VydmVyMTRmcmFtZURlc3Ryb3llZEV2CitfX1pON1dlYkNvcmUyNEZyYW1l
RGVzdHJ1Y3Rpb25PYnNlcnZlcjE0d2lsbERldGFjaFBhZ2VFdgogX19aTjdXZWJDb3JlMjRrZXlJ
ZGVudGlmaWVyRm9yS2V5RXZlbnRFUDdOU0V2ZW50CiBfX1pON1dlYkNvcmUyNG5vdGlmeUhpc3Rv
cnlJdGVtQ2hhbmdlZEUKIF9fWk43V2ViQ29yZTI1SGlzdG9yeVByb3BlcnR5TGlzdFdyaXRlcjEx
cmVsZWFzZURhdGFFdgpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNpb24gMTA4Mzg5KQorKysg
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC03MjAsNiArNzIw
LDcgQEAKICAgICAgICAgICAgICdNb2R1bGVzL2dhbWVwYWQvR2FtZXBhZC5pZGwnLAogICAgICAg
ICAgICAgJ01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkTGlzdC5pZGwnLAogICAgICAgICAgICAgJ01v
ZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0b3JHYW1lcGFkLmlkbCcsCisgICAgICAgICAgICAnTW9kdWxl
cy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5pZGwnLAogICAgICAgICAgICAgJ01v
ZHVsZXMvaW5kZXhlZGRiL0RPTVdpbmRvd0luZGV4ZWREYXRhYmFzZS5pZGwnLAogICAgICAgICAg
ICAgJ01vZHVsZXMvaW50ZW50cy9ET01XaW5kb3dJbnRlbnRzLmlkbCcsCiAgICAgICAgICAgICAn
TW9kdWxlcy9pbnRlbnRzL0ludGVudC5pZGwnLApAQCAtMTI3Nyw2ICsxMjc4LDggQEAKICAgICAg
ICAgICAgICdNb2R1bGVzL2dhbWVwYWQvR2FtZXBhZExpc3QuaCcsCiAgICAgICAgICAgICAnTW9k
dWxlcy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQuY3BwJywKICAgICAgICAgICAgICdNb2R1bGVz
L2dhbWVwYWQvTmF2aWdhdG9yR2FtZXBhZC5oJywKKyAgICAgICAgICAgICdNb2R1bGVzL2dlb2xv
Y2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmNwcCcsCisgICAgICAgICAgICAnTW9kdWxlcy9n
ZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5oJywKICAgICAgICAgICAgICdNb2R1bGVz
L2luZGV4ZWRkYi9ET01XaW5kb3dJbmRleGVkRGF0YWJhc2UuY3BwJywKICAgICAgICAgICAgICdN
b2R1bGVzL2luZGV4ZWRkYi9ET01XaW5kb3dJbmRleGVkRGF0YWJhc2UuaCcsCiAgICAgICAgICAg
ICAnTW9kdWxlcy9pbnRlbnRzL0ludGVudC5jcHAnLApJbmRleDogU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5wcmkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkJKHJldmlz
aW9uIDEwODM4OSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJpCSh3b3JraW5nIGNvcHkp
CkBAIC0xOCw2ICsxOCw3IEBAIFdFQkNPUkVfR0VORVJBVEVEX1NPVVJDRVNfRElSID0gJCR7Uk9P
VF8KIAogSU5DTFVERVBBVEggKz0gXAogICAgICQkU09VUkNFX0RJUiBcCisgICAgJCRTT1VSQ0Vf
RElSL01vZHVsZXMvZ2VvbG9jYXRpb24gXAogICAgICQkU09VUkNFX0RJUi9hY2Nlc3NpYmlsaXR5
IFwKICAgICAkJFNPVVJDRV9ESVIvYmluZGluZ3MgXAogICAgICQkU09VUkNFX0RJUi9iaW5kaW5n
cy9nZW5lcmljIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vTmF2
aWdhdG9yR2VvbG9jYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uY3BwCShyZXZpc2lvbiAwKQorKysg
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5j
cHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKyAq
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAqIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSAorICogREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJOYXZpZ2F0b3JHZW9sb2NhdGlvbi5oIgorCisjaW5jbHVk
ZSAiR2VvbG9jYXRpb24uaCIKKyNpbmNsdWRlICJOYXZpZ2F0b3IuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6TmF2aWdhdG9yR2VvbG9jYXRpb24oRnJh
bWUqIGZyYW1lKQorICAgIDogRE9NV2luZG93UHJvcGVydHkoZnJhbWUpCit7Cit9CisKK05hdmln
YXRvckdlb2xvY2F0aW9uOjp+TmF2aWdhdG9yR2VvbG9jYXRpb24oKQoreworfQorCit2b2lkIE5h
dmlnYXRvckdlb2xvY2F0aW9uOjp3aWxsRGV0YWNoUGFnZSgpCit7CisgICAgLy8gRklYTUU6IFdl
IHNob3VsZCBpZGVhbGx5IGFsbG93IGV4aXN0aW5nIEdlb2xvY2F0aW9uIGFjdGl2aXRpZXMgdG8g
Y29udGludWUKKyAgICAvLyB3aGVuIHRoZSBHZW9sb2NhdGlvbidzIGlmcmFtZSBpcyByZXBhcmVu
dGVkLiAoQXNzdW1pbmcgd2UgY29udGludWUgdG8KKyAgICAvLyBzdXBwb3J0IHJlcGFyZW50aW5n
IGlmcmFtZXMuKQorICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTU1NzcKKyAgICAvLyBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTUyODc3CisgICAgaWYgKG1fZ2VvbG9jYXRpb24pCisgICAgICAgIG1fZ2VvbG9jYXRp
b24tPnJlc2V0KCk7Cit9CisKK05hdmlnYXRvckdlb2xvY2F0aW9uKiBOYXZpZ2F0b3JHZW9sb2Nh
dGlvbjo6ZnJvbShOYXZpZ2F0b3IqIG5hdmlnYXRvcikKK3sKKyAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJOYXZpZ2F0b3JHZW9sb2NhdGlvbiIpKTsKKyAgICBO
YXZpZ2F0b3JHZW9sb2NhdGlvbiogc3VwcGxlbWVudCA9IHN0YXRpY19jYXN0PE5hdmlnYXRvckdl
b2xvY2F0aW9uKj4oTmF2aWdhdG9yU3VwcGxlbWVudDo6ZnJvbShuYXZpZ2F0b3IsIG5hbWUpKTsK
KyAgICBpZiAoIXN1cHBsZW1lbnQpIHsKKyAgICAgICAgc3VwcGxlbWVudCA9IG5ldyBOYXZpZ2F0
b3JHZW9sb2NhdGlvbihuYXZpZ2F0b3ItPmZyYW1lKCkpOworICAgICAgICBwcm92aWRlVG8obmF2
aWdhdG9yLCBuYW1lLCBhZG9wdFB0cihzdXBwbGVtZW50KSk7CisgICAgfQorICAgIHJldHVybiBz
dXBwbGVtZW50OworfQorCitHZW9sb2NhdGlvbiogTmF2aWdhdG9yR2VvbG9jYXRpb246Omdlb2xv
Y2F0aW9uKE5hdmlnYXRvciogbmF2aWdhdG9yKQoreworICAgIHJldHVybiBOYXZpZ2F0b3JHZW9s
b2NhdGlvbjo6ZnJvbShuYXZpZ2F0b3IpLT5nZW9sb2NhdGlvbigpOworfQorCitHZW9sb2NhdGlv
biogTmF2aWdhdG9yR2VvbG9jYXRpb246Omdlb2xvY2F0aW9uKCkgY29uc3QKK3sKKyAgICBpZiAo
IW1fZ2VvbG9jYXRpb24pCisgICAgICAgIG1fZ2VvbG9jYXRpb24gPSBHZW9sb2NhdGlvbjo6Y3Jl
YXRlKGZyYW1lKCkpOworICAgIHJldHVybiBtX2dlb2xvY2F0aW9uLmdldCgpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0
aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5oCShyZXZpc2lvbiAwKQor
KysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlv
bi5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDExLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisg
KiBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gKKyAqIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IE5hdmlnYXRvckdlb2xvY2F0aW9uX2gKKyNkZWZpbmUgTmF2aWdhdG9yR2VvbG9jYXRpb25faAor
CisjaW5jbHVkZSAiRE9NV2luZG93UHJvcGVydHkuaCIKKyNpbmNsdWRlICJOYXZpZ2F0b3JTdXBw
bGVtZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRnJhbWU7CitjbGFzcyBH
ZW9sb2NhdGlvbjsKK2NsYXNzIE5hdmlnYXRvcjsKKworY2xhc3MgTmF2aWdhdG9yR2VvbG9jYXRp
b24gOiBwdWJsaWMgTmF2aWdhdG9yU3VwcGxlbWVudCwgcHVibGljIERPTVdpbmRvd1Byb3BlcnR5
IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5OYXZpZ2F0b3JHZW9sb2NhdGlvbigpOworICAgIHN0
YXRpYyBOYXZpZ2F0b3JHZW9sb2NhdGlvbiogZnJvbShOYXZpZ2F0b3IqKTsKKworICAgIHN0YXRp
YyBHZW9sb2NhdGlvbiogZ2VvbG9jYXRpb24oTmF2aWdhdG9yKik7CisgICAgR2VvbG9jYXRpb24q
IGdlb2xvY2F0aW9uKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgTmF2aWdhdG9yR2VvbG9jYXRp
b24oRnJhbWUqKTsKKworICAgIHZpcnR1YWwgdm9pZCB3aWxsRGV0YWNoUGFnZSgpIE9WRVJSSURF
OworCisgICAgbXV0YWJsZSBSZWZQdHI8R2VvbG9jYXRpb24+IG1fZ2VvbG9jYXRpb247Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBOYXZpZ2F0b3JHZW9sb2NhdGlv
bl9oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdl
b2xvY2F0aW9uLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmlkbAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaWRsCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENP
UFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKK21vZHVsZSB3aW5kb3cgeworCisgICAgaW50ZXJm
YWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9R0VPTE9DQVRJT04sCisgICAgICAgIFN1cHBsZW1l
bnRhbD1OYXZpZ2F0b3IKKyAgICBdIE5hdmlnYXRvckdlb2xvY2F0aW9uIHsKKyNpZiAhZGVmaW5l
ZChMQU5HVUFHRV9HT0JKRUNUKSB8fCAhTEFOR1VBR0VfR09CSkVDVAorCQkvLyBGSVhNRTogRW5h
YmxlIHRoaXMgaW50ZXJmYWNlIGZvciBHT0JKRUNULgorICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgW1Y4RW5hYmxlZEF0UnVudGltZV0gR2VvbG9jYXRpb24gZ2VvbG9jYXRpb247CisjZW5kaWYK
KyAgICB9OworCit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAko
cmV2aXNpb24gMTA4Mzg5KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5n
eXAJKHdvcmtpbmcgY29weSkKQEAgLTUyLDYgKzUyLDcgQEAKICAgICAgICcuLi8nLAogICAgICAg
Jy4uLy4uJywKICAgICAgICcuLi9Nb2R1bGVzL2dhbWVwYWQnLAorICAgICAgJy4uL01vZHVsZXMv
Z2VvbG9jYXRpb24nLAogICAgICAgJy4uL01vZHVsZXMvaW50ZW50cycsCiAgICAgICAnLi4vTW9k
dWxlcy9pbmRleGVkZGInLAogICAgICAgJy4uL2FjY2Vzc2liaWxpdHknLApJbmRleDogU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHJldmlzaW9uIDEwODM4
OSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNDA1MSw2ICsyNDA1MSwyMiBAQAogCQkJPC9GaWxlPgogCQk8L0ZpbHRl
cj4KIAkJPEZpbHRlcgorCQkJTmFtZT0iTW9kdWxlcyIKKwkJCT4KKwkJCTxGaWx0ZXIKKwkJCQlO
YW1lPSJnZW9sb2NhdGlvbiIKKwkJCQk+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxNb2R1bGVzXGdlb2xvY2F0aW9uXE5hdmlnYXRvckdlb2xvY2F0aW9uLmNwcCIKKwkJCQkJPgor
CQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcZ2Vv
bG9jYXRpb25cTmF2aWdhdG9yR2VvbG9jYXRpb24uaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJ
CTwvRmlsdGVyPgorCQk8L0ZpbHRlcj4KKwkJPEZpbHRlcgogCQkJTmFtZT0iYWNjZXNzaWJpbGl0
eSIKIAkJCT4KIAkJCTxGaWxlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlQ29tbW9uLnZzcHJvcHMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZUNvbW1vbi52c3Byb3BzCShyZXZpc2lvbiAxMDgzODkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlQ29tbW9uLnZzcHJvcHMJKHdvcmtpbmcg
Y29weSkKQEAgLTcsNyArNyw3IEBACiAJPgogCTxUb29sCiAJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiCi0JCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiZxdW90OyQoUHJvamVjdERpciku
LiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYWNjZXNzaWJpbGl0eSZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5cYWNjZXNzaWJpbGl0eVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXGJyaWRnZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYnJpZGdlXGMmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXGJyaWRnZVxqc2MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4u
XGNzcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cZWRpdGluZyZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpLi5cZmlsZWFwaSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccmVuZGVyaW5n
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxyZW5kZXJpbmdcbWF0aG1sJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcikuLlxyZW5kZXJpbmdcc3R5bGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXHJlbmRlcmluZ1xzdmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJpbmRpbmdzJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxiaW5kaW5nc1xnZW5lcmljJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcikuLlxiaW5kaW5nc1xqcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYmlu
ZGluZ3NcanNcc3BlY2lhbGl6YXRpb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGRvbSZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cZG9tXGRlZmF1bHQmcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKS4uXGhpc3RvcnkmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGh0bWwmcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGh0bWxcY2FudmFzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cikuLlxodG1sXHBhcnNlciZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5caHRtbFxzaGFkb3cm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGluc3BlY3RvciZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5cbG9hZGVyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxsb2FkZXJcYXBwY2Fj
aGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGxvYWRlclxhcmNoaXZlJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcikuLlxsb2FkZXJcYXJjaGl2ZVxjZiZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpLi5cbG9hZGVyXGNhY2hlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxsb2FkZXJcaWNv
biZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbWF0aG1sJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcikuLlxub3RpZmljYXRpb25zJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwYWdlJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwYWdlXGFuaW1hdGlvbiZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpLi5ccGFnZVxzY3JvbGxpbmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBh
Z2Vcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybSZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5ccGxhdGZvcm1cYW5pbWF0aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cikuLlxwbGF0Zm9ybVxtb2NrJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxz
cWwmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXHdpbiZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5ccGxhdGZvcm1cbmV0d29yayZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
Li5ccGxhdGZvcm1cbmV0d29ya1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRm
b3JtXGNmJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljcyZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3NcY2EmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzXGZpbHRlcnMmcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzXGZpbHRlcnNcYXJtJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1xvcGVudHlwZSZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3NcdHJhbnNmb3JtcyZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpLi5ccGxhdGZvcm1cdGV4dCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxh
dGZvcm1cdGV4dFx0cmFuc2NvZGVyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9y
bVxncmFwaGljc1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHhtbCZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpLi5ceG1sXHBhcnNlciZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25C
dWlsZERpcilcb2JqXFdlYkNvcmVcRGVyaXZlZFNvdXJjZXMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKS4uXHBsdWdpbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsdWdpbnNcd2luJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxzdmdcYW5pbWF0aW9uJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxzdmdcZ3JhcGhpY3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2Z1xw
cm9wZXJ0aWVzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxzdmdcZ3JhcGhpY3NcZmlsdGVy
cyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cc3ZnJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cikuLlx0ZXN0aW5nJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlx3bWwmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKS4uXHN0b3JhZ2UmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHdlYnNv
Y2tldHMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHdvcmtlcnMmcXVvdDs7JnF1b3Q7JChD
b25maWd1cmF0aW9uQnVpbGREaXIpXGluY2x1ZGUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9u
QnVpbGREaXIpXGluY2x1ZGVccHJpdmF0ZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWls
ZERpcilcaW5jbHVkZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25C
dWlsZERpcilcaW5jbHVkZVxwcml2YXRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxGb3J3YXJkaW5nSGVhZGVycyZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmll
c0RpcilcaW5jbHVkZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZVxw
cml2YXRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXHByaXZhdGVc
SmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVc
cHRocmVhZHMmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVcc3FsaXRl
JnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXEphdmFTY3JpcHRDb3Jl
JnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXHpsaWImcXVvdDsiCisJ
CUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiZxdW90OyQoUHJvamVjdERpcikuLiZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpLi5cTW9kdWxlc1xnZW9sb2NhdGlvbiZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5cYWNjZXNzaWJpbGl0eSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5c
YWNjZXNzaWJpbGl0eVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJyaWRnZSZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpLi5cYnJpZGdlXGMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXGJyaWRnZVxqc2MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGNzcyZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpLi5cZWRpdGluZyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cZmls
ZWFwaSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccmVuZGVyaW5nJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcikuLlxyZW5kZXJpbmdcbWF0aG1sJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpciku
LlxyZW5kZXJpbmdcc3R5bGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHJlbmRlcmluZ1xz
dmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJpbmRpbmdzJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxiaW5kaW5nc1xnZW5lcmljJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxi
aW5kaW5nc1xqcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYmluZGluZ3NcanNcc3BlY2lh
bGl6YXRpb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGRvbSZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpLi5cZG9tXGRlZmF1bHQmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGhpc3Rv
cnkmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGh0bWwmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKS4uXGh0bWxcY2FudmFzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxodG1sXHBhcnNl
ciZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5caHRtbFxzaGFkb3cmcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKS4uXGluc3BlY3RvciZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbG9hZGVy
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxsb2FkZXJcYXBwY2FjaGUmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKS4uXGxvYWRlclxhcmNoaXZlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpciku
Llxsb2FkZXJcYXJjaGl2ZVxjZiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbG9hZGVyXGNh
Y2hlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxsb2FkZXJcaWNvbiZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5cbWF0aG1sJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxub3RpZmlj
YXRpb25zJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwYWdlJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxwYWdlXGFuaW1hdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGFn
ZVxzY3JvbGxpbmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBhZ2Vcd2luJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5c
cGxhdGZvcm1cYW5pbWF0aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxt
b2NrJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxzcWwmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5c
cGxhdGZvcm1cbmV0d29yayZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cbmV0
d29ya1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGNmJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljcyZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3NcY2EmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4u
XHBsYXRmb3JtXGdyYXBoaWNzXGZpbHRlcnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBs
YXRmb3JtXGdyYXBoaWNzXGZpbHRlcnNcYXJtJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxw
bGF0Zm9ybVxncmFwaGljc1xvcGVudHlwZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxh
dGZvcm1cZ3JhcGhpY3NcdHJhbnNmb3JtcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxh
dGZvcm1cdGV4dCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cdGV4dFx0cmFu
c2NvZGVyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1x3aW4m
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHhtbCZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
Li5ceG1sXHBhcnNlciZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXFdl
YkNvcmVcRGVyaXZlZFNvdXJjZXMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsdWdpbnMm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsdWdpbnNcd2luJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxzdmdcYW5pbWF0aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxzdmdc
Z3JhcGhpY3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2Z1xwcm9wZXJ0aWVzJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcikuLlxzdmdcZ3JhcGhpY3NcZmlsdGVycyZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5cc3ZnJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlx0ZXN0aW5nJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlx3bWwmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4u
XHN0b3JhZ2UmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHdlYnNvY2tldHMmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXHdvcmtlcnMmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVp
bGREaXIpXGluY2x1ZGUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXGluY2x1
ZGVccHJpdmF0ZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcaW5jbHVkZVxK
YXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcaW5jbHVk
ZVxwcml2YXRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxGb3J3
YXJkaW5nSGVhZGVycyZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZSZx
dW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZx
dW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXHByaXZhdGVcSmF2YVNjcmlwdENvcmUm
cXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVccHRocmVhZHMmcXVvdDs7
JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVcc3FsaXRlJnF1b3Q7OyZxdW90OyQo
V2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQo
V2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXHpsaWImcXVvdDsiCiAJCVByZXByb2Nlc3NvckRl
ZmluaXRpb25zPSJfX1dJTjMyX187RElTQUJMRV8zRF9SRU5ERVJJTkc7V0VCQ09SRV9DT05URVhU
X01FTlVTIgogCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMiIKIAkJUHJlY29tcGlsZWRIZWFkZXJU
aHJvdWdoPSJXZWJDb3JlUHJlZml4LmgiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxMDgzODkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29w
eSkKQEAgLTMzMjMsNiArMzMyMyw4IEBACiAJCTk3MDU5OTdBMTA3RDk3NTIwMEE1MEE3QyAvKiBQ
b2xpY3lDaGVja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5NzA1OTk3NjEwN0Q5NzUyMDBBNTBBN0MgLyogUG9saWN5Q2hlY2tlci5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk3MEI3MjhBMTQ0RkZB
QzYwMEYwMEEzNyAvKiBFdmVudEludGVyZmFjZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MEI3Mjg5MTQ0RkZBQzYwMEYwMEEzNyAvKiBFdmVudElu
dGVyZmFjZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk5NzBCNzJBNjE0NTAwOEVCMDBGMDBBMzcgLyogRXZlbnRIZWFkZXJzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzBCNzJBNTE0NTAwOEVCMDBG
MDBBMzcgLyogRXZlbnRIZWFkZXJzLmggKi87IH07CisJCTk3MTE0NjAzMTRFRjAwOUEwMDY3NEZE
OSAvKiBOYXZpZ2F0b3JHZW9sb2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5NzExNDYwMDE0RUYwMDlBMDA2NzRGRDkgLyogTmF2aWdhdG9y
R2VvbG9jYXRpb24uY3BwICovOyB9OworCQk5NzExNDYwNDE0RUYwMDlBMDA2NzRGRDkgLyogTmF2
aWdhdG9yR2VvbG9jYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDk3MTE0NjAxMTRFRjAwOUEwMDY3NEZEOSAvKiBOYXZpZ2F0b3JHZW9sb2NhdGlv
bi5oICovOyB9OwogCQk5NzIwNUFBRjEyMzkyOENBMDBCMTczODAgLyogRlRQRGlyZWN0b3J5RG9j
dW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTcyMDVBQUQxMjM5MjhDQTAwQjE3MzgwIC8qIEZUUERpcmVjdG9yeURvY3VtZW50LmNwcCAqLzsg
fTsKIAkJOTcyMDVBQjAxMjM5MjhDQTAwQjE3MzgwIC8qIEZUUERpcmVjdG9yeURvY3VtZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzIwNUFBRTEy
MzkyOENBMDBCMTczODAgLyogRlRQRGlyZWN0b3J5RG9jdW1lbnQuaCAqLzsgfTsKIAkJOTcyMDVB
QjUxMjM5MjkxMDAwQjE3MzgwIC8qIEltYWdlRG9jdW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcyMDVBQjExMjM5MjkxMDAwQjE3MzgwIC8q
IEltYWdlRG9jdW1lbnQuY3BwICovOyB9OwpAQCAtMTAxODQsNiArMTAxODYsOSBAQAogCQk5NzA1
OTk3NjEwN0Q5NzUyMDBBNTBBN0MgLyogUG9saWN5Q2hlY2tlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBQb2xpY3lDaGVja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTk3MEI3Mjg5MTQ0RkZBQzYwMEYwMEEzNyAvKiBFdmVudEludGVyZmFjZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXZlbnRJbnRlcmZhY2VzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3MEI3MkE1MTQ1MDA4RUIwMEYwMEEzNyAvKiBFdmVudEhl
YWRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXZlbnRIZWFkZXJzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk3MTE0NjAwMTRFRjAwOUEwMDY3NEZEOSAv
KiBOYXZpZ2F0b3JHZW9sb2NhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBOYXZpZ2F0b3JHZW9sb2NhdGlvbi5jcHA7IHBhdGggPSBNb2R1bGVzL2dlb2xvY2F0
aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOTcxMTQ2MDExNEVGMDA5QTAwNjc0RkQ5IC8qIE5hdmlnYXRvckdlb2xvY2F0aW9uLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE5hdmlnYXRvckdlb2xvY2F0aW9uLmg7IHBh
dGggPSBNb2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTk3MTE0NjAyMTRFRjAwOUEwMDY3NEZEOSAvKiBOYXZpZ2F0
b3JHZW9sb2NhdGlvbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gTmF2aWdhdG9yR2VvbG9j
YXRpb24uaWRsOyBwYXRoID0gTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlv
bi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3MjA1QUFEMTIzOTI4Q0EwMEIx
NzM4MCAvKiBGVFBEaXJlY3RvcnlEb2N1bWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBGVFBEaXJlY3RvcnlEb2N1bWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTk3MjA1QUFFMTIzOTI4Q0EwMEIxNzM4MCAvKiBGVFBEaXJlY3RvcnlEb2N1
bWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGVFBEaXJlY3RvcnlEb2N1
bWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzIwNUFCMTEyMzkyOTEwMDBC
MTczODAgLyogSW1hZ2VEb2N1bWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBJbWFnZURvY3VtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTEzNDU3LDYgKzEzNDYyLDcgQEAKIAkJCQlFREVDOTgwMjBBRUQ3RTE3MDA1OTEzN0YgLyogV2Vi
Q29yZVByZWZpeC5oICovLAogCQkJCTkzMDcwNjEzMDlFMENBODIwMEIxN0ZFNCAvKiBEZXJpdmVk
U291cmNlcy5tYWtlICovLAogCQkJCTkzRjE5QjE5MDgyNDVFNTkwMDFFOUFCQyAvKiBJbmZvLnBs
aXN0ICovLAorCQkJCTk3MTE0NUZFMTRFRjAwNkUwMDY3NEZEOSAvKiBNb2R1bGVzICovLAogCQkJ
CTI5QTgxMjA0MEZCQjlCNDEwMDUxMDI5MyAvKiBhY2Nlc3NpYmlsaXR5ICovLAogCQkJCUJDMUEz
NzkwMDk3QzZGOTcwMDE5RjNEOCAvKiBiaW5kaW5ncyAqLywKIAkJCQkxQTU2OUNDNDBEN0UyQjYw
MDA3QzM5ODMgLyogYnJpZGdlICovLApAQCAtMTcwNzUsNiArMTcwODEsMjQgQEAKIAkJCXRhYldp
ZHRoID0gNDsKIAkJCXVzZXNUYWJzID0gMDsKIAkJfTsKKwkJOTcxMTQ1RkUxNEVGMDA2RTAwNjc0
RkQ5IC8qIE1vZHVsZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0g
KAorCQkJCTk3MTE0NUZGMTRFRjAwNzkwMDY3NEZEOSAvKiBnZW9sb2NhdGlvbiAqLywKKwkJCSk7
CisJCQluYW1lID0gTW9kdWxlczsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CisJ
CTk3MTE0NUZGMTRFRjAwNzkwMDY3NEZEOSAvKiBnZW9sb2NhdGlvbiAqLyA9IHsKKwkJCWlzYSA9
IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJOTcxMTQ2MDAxNEVGMDA5QTAwNjc0RkQ5
IC8qIE5hdmlnYXRvckdlb2xvY2F0aW9uLmNwcCAqLywKKwkJCQk5NzExNDYwMTE0RUYwMDlBMDA2
NzRGRDkgLyogTmF2aWdhdG9yR2VvbG9jYXRpb24uaCAqLywKKwkJCQk5NzExNDYwMjE0RUYwMDlB
MDA2NzRGRDkgLyogTmF2aWdhdG9yR2VvbG9jYXRpb24uaWRsICovLAorCQkJKTsKKwkJCW5hbWUg
PSBnZW9sb2NhdGlvbjsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTk3NkQ2
QzU3MTIyQjhBMTgwMDFGRDFGNyAvKiBmaWxlYXBpICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7
CiAJCQljaGlsZHJlbiA9ICgKQEAgLTIzMjgwLDYgKzIzMzA0LDcgQEAKIAkJCQk5NzlGNDNENDEw
NzVFNDRBMDAwMEY4M0IgLyogTmF2aWdhdGlvblNjaGVkdWxlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTlDNkU1QTYwRDc0NjQ1ODAwNjQ0MkU5IC8qIE5hdmlnYXRvci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRTEyNzE5QzcwRUVFQzE2ODAwRjYxMjEzIC8qIE5hdmlnYXRvckJhc2UuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTk3MTE0NjA0MTRFRjAwOUEwMDY3NEZEOSAvKiBOYXZpZ2F0b3JHZW9sb2Nh
dGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTdDQzNBRTMxNEU4RTRBMjAwODk0OTg4IC8qIE5h
dmlnYXRvclN1cHBsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCThBMzA5QzlGMTIzOTUwQkUw
MENCOTIwNCAvKiBOZXN0aW5nTGV2ZWxJbmNyZW1lbnRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NjU2RDM3NDMwQURCQTVERTAwQTQ1NTREIC8qIE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmgg
aW4gSGVhZGVycyAqLywKQEAgLTI2NDM0LDYgKzI2NDU5LDcgQEAKIAkJCQk5NzlGNDNEMzEwNzVF
NDRBMDAwMEY4M0IgLyogTmF2aWdhdGlvblNjaGVkdWxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBOUM2RTVBNTBENzQ2NDU4MDA2NDQyRTkgLyogTmF2aWdhdG9yLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUUxMjcxOUNBMEVFRUMyMTMwMEY2MTIxMyAvKiBOYXZpZ2F0b3JCYXNlLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTk3MTE0NjAzMTRFRjAwOUEwMDY3NEZEOSAvKiBOYXZpZ2F0b3JHZW9s
b2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5N0NDM0FFMjE0RThFNEEyMDA4OTQ5ODgg
LyogTmF2aWdhdG9yU3VwcGxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1RDg3NEYxMzBE
MTYxRDMyMDA3OTZDM0IgLyogTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNTlDMjdGMDUxMzhEMjhDMTAwNzlCN0UyIC8qIE5ldHdvcmtSZXNvdXJjZXNE
YXRhLmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCShyZXZpc2lvbiAxMDgz
ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2Jq
ZWN0LnBtCSh3b3JraW5nIGNvcHkpCkBAIC00MTgsNyArNDE4LDcgQEAgc3ViIEdlbmVyYXRlUHJv
cGVydHkgewogICAgICAgICBwdXNoKEB0eHRHZXRQcm9wcywgIiAgICAgICAgZ192YWx1ZV90YWtl
X3N0cmluZyh2YWx1ZSwgY29udmVydFRvVVRGOFN0cmluZygke2dldHRlckZ1bmN0aW9uTmFtZX0o
IiAuIGpvaW4oIiwgIiwgQGdldHRlckFyZ3VtZW50cykgLiAiKSkpO1xuIik7CiAgICAgICAgICRk
b25lID0gMTsKICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgIm9iamVjdCIpIHsKLSAgICAgICAgcHVz
aChAdHh0R2V0UHJvcHMsICIgICAgICAgIFJlZlB0cjxXZWJDb3JlOjoke3Byb3BUeXBlfT4gcHRy
ID0gY29yZVNlbGYtPiR7Z2V0UHJvcE5hbWVGdW5jdGlvbn0oIiAuIChAeyRhdHRyaWJ1dGUtPmdl
dHRlckV4Y2VwdGlvbnN9ID8gImVjIiA6ICIiKSAuICIpO1xuIik7CisgICAgICAgIHB1c2goQHR4
dEdldFByb3BzLCAiICAgICAgICBSZWZQdHI8V2ViQ29yZTo6JHtwcm9wVHlwZX0+IHB0ciA9ICR7
Z2V0dGVyRnVuY3Rpb25OYW1lfSgiIC4gam9pbigiLCAiLCBAZ2V0dGVyQXJndW1lbnRzKSAuICIp
O1xuIik7CiAgICAgICAgIHB1c2goQHR4dEdldFByb3BzLCAiICAgICAgICBnX3ZhbHVlX3NldF9v
YmplY3QodmFsdWUsIFdlYktpdDo6a2l0KHB0ci5nZXQoKSkpO1xuIik7CiAgICAgICAgICRkb25l
ID0gMTsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
VGVzdFN1cHBsZW1lbnRhbC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L1Rlc3RTdXBwbGVtZW50YWwuaWRsCShyZXZpc2lvbiAxMDgzODkpCisr
KyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdFN1cHBsZW1lbnRhbC5p
ZGwJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDcgQEAgbW9kdWxlIHRlc3QgewogICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHN1cHBsZW1lbnRhbFN0cjE7CiAgICAgICAg
IGF0dHJpYnV0ZSBET01TdHJpbmcgc3VwcGxlbWVudGFsU3RyMjsKICAgICAgICAgYXR0cmlidXRl
IFtDdXN0b21HZXR0ZXIsIEN1c3RvbVNldHRlcl0gRE9NU3RyaW5nIHN1cHBsZW1lbnRhbFN0cjM7
CisgICAgICAgIGF0dHJpYnV0ZSBOb2RlIHN1cHBsZW1lbnRhbE5vZGU7CiAKICAgICAgICAgdm9p
ZCBzdXBwbGVtZW50YWxNZXRob2QxKCk7CiAgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRp
b25Db250ZXh0XSBUZXN0T2JqIHN1cHBsZW1lbnRhbE1ldGhvZDIoaW4gRE9NU3RyaW5nIHN0ckFy
ZywgaW4gVGVzdE9iaiBvYmpBcmcpIHJhaXNlcyhET01FeGNlcHRpb24pOwpJbmRleDogU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0SW50ZXJmYWNlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQ
L1dlYkRPTVRlc3RJbnRlcmZhY2UuY3BwCShyZXZpc2lvbiAxMDgzODkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RJbnRlcmZhY2UuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yNSw4ICsyNSwxMCBAQAogI2luY2x1ZGUgIldlYkRPTVRlc3RJbnRl
cmZhY2UuaCIKIAogI2luY2x1ZGUgIktVUkwuaCIKKyNpbmNsdWRlICJOb2RlLmgiCiAjaW5jbHVk
ZSAiVGVzdEludGVyZmFjZS5oIgogI2luY2x1ZGUgIlRlc3RTdXBwbGVtZW50YWwuaCIKKyNpbmNs
dWRlICJXZWJET01Ob2RlLmgiCiAjaW5jbHVkZSAiV2ViRE9NU3RyaW5nLmgiCiAjaW5jbHVkZSAi
V2ViRXhjZXB0aW9uSGFuZGxlci5oIgogI2luY2x1ZGUgInd0Zi90ZXh0L0F0b21pY1N0cmluZy5o
IgpAQCAtMTA2LDYgKzEwOCwyNCBAQCB2b2lkIFdlYkRPTVRlc3RJbnRlcmZhY2U6OnNldFN1cHBs
ZW1lbnRhCiB9CiAKICNlbmRpZgorI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENv
bmRpdGlvbjEyKQorV2ViRE9NTm9kZSBXZWJET01UZXN0SW50ZXJmYWNlOjpzdXBwbGVtZW50YWxO
b2RlKCkgY29uc3QKK3sKKyAgICBpZiAoIWltcGwoKSkKKyAgICAgICAgcmV0dXJuIFdlYkRPTU5v
ZGUoKTsKKworICAgIHJldHVybiB0b1dlYktpdChXVEY6OmdldFB0cihUZXN0U3VwcGxlbWVudGFs
OjpzdXBwbGVtZW50YWxOb2RlKGltcGwoKSkpKTsKK30KKwordm9pZCBXZWJET01UZXN0SW50ZXJm
YWNlOjpzZXRTdXBwbGVtZW50YWxOb2RlKGNvbnN0IFdlYkRPTU5vZGUmIG5ld1N1cHBsZW1lbnRh
bE5vZGUpCit7CisgICAgaWYgKCFpbXBsKCkpCisgICAgICAgIHJldHVybjsKKworICAgIFRlc3RT
dXBwbGVtZW50YWw6OnNldFN1cHBsZW1lbnRhbE5vZGUoaW1wbCgpLCB0b1dlYkNvcmUobmV3U3Vw
cGxlbWVudGFsTm9kZSkpOworfQorCisjZW5kaWYKIAogI2lmIEVOQUJMRShDb25kaXRpb24xMSkg
fHwgRU5BQkxFKENvbmRpdGlvbjEyKQogdm9pZCBXZWJET01UZXN0SW50ZXJmYWNlOjpzdXBwbGVt
ZW50YWxNZXRob2QxKCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9DUFAvV2ViRE9NVGVzdEludGVyZmFjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdEludGVyZmFjZS5oCShyZXZpc2lv
biAxMDgzODkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dl
YkRPTVRlc3RJbnRlcmZhY2UuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBUZXN0SW50ZXJmYWNlOwogfTsKIAorY2xhc3MgV2ViRE9N
Tm9kZTsKIAogY2xhc3MgV2ViRE9NVGVzdEludGVyZmFjZSA6IHB1YmxpYyBXZWJET01PYmplY3Qg
ewogcHVibGljOgpAQCAtNTgsNiArNTksMTAgQEAgcHVibGljOgogICAgIFdlYkRPTVN0cmluZyBz
dXBwbGVtZW50YWxTdHIyKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRTdXBwbGVtZW50YWxTdHIyKGNv
bnN0IFdlYkRPTVN0cmluZyYpOwogI2VuZGlmCisjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBF
TkFCTEUoQ29uZGl0aW9uMTIpCisgICAgV2ViRE9NTm9kZSBzdXBwbGVtZW50YWxOb2RlKCkgY29u
c3Q7CisgICAgdm9pZCBzZXRTdXBwbGVtZW50YWxOb2RlKGNvbnN0IFdlYkRPTU5vZGUmKTsKKyNl
bmRpZgogCiAgICAgdm9pZCBzdXBwbGVtZW50YWxNZXRob2QxKCk7CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RJbnRlcmZh
Y2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9HT2JqZWN0L1dlYktpdERPTVRlc3RJbnRlcmZhY2UuY3BwCShyZXZpc2lvbiAxMDgzODkpCisr
KyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01U
ZXN0SW50ZXJmYWNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsMTEgKzI4LDE0IEBACiAjaW5j
bHVkZSAiRE9NT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5j
bHVkZSAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW5jbHVkZSAiTm9kZS5oIgogI2luY2x1
ZGUgIlRlc3RJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJUZXN0T2JqLmgiCiAjaW5jbHVkZSAiVGVz
dFN1cHBsZW1lbnRhbC5oIgogI2luY2x1ZGUgIldlYktpdERPTUJpbmRpbmcuaCIKICNpbmNsdWRl
ICJnb2JqZWN0L0NvbnZlcnRUb1VURjhTdHJpbmcuaCIKKyNpbmNsdWRlICJ3ZWJraXQvV2ViS2l0
RE9NTm9kZS5oIgorI2luY2x1ZGUgIndlYmtpdC9XZWJLaXRET01Ob2RlUHJpdmF0ZS5oIgogI2lu
Y2x1ZGUgIndlYmtpdC9XZWJLaXRET01UZXN0SW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAid2Via2l0
L1dlYktpdERPTVRlc3RJbnRlcmZhY2VQcml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0L1dlYktp
dERPTVRlc3RPYmouaCIKQEAgLTEzNSw2ICsxMzgsMzggQEAgd2Via2l0X2RvbV90ZXN0X2ludGVy
ZmFjZV9zZXRfc3VwcGxlbWVudAogI2VuZGlmIC8qIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5B
QkxFKENvbmRpdGlvbjEyKSAqLwogfQogCitXZWJLaXRET01Ob2RlKgord2Via2l0X2RvbV90ZXN0
X2ludGVyZmFjZV9nZXRfc3VwcGxlbWVudGFsX25vZGUoV2ViS2l0RE9NVGVzdEludGVyZmFjZSog
c2VsZikKK3sKKyNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikK
KyAgICBnX3JldHVybl92YWxfaWZfZmFpbChzZWxmLCAwKTsKKyAgICBXZWJDb3JlOjpKU01haW5U
aHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgV2ViQ29yZTo6VGVzdEludGVyZmFjZSAqIGl0ZW0g
PSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgUGFzc1JlZlB0cjxXZWJDb3JlOjpOb2RlPiBnX3Jl
cyA9IFdURjo6Z2V0UHRyKFRlc3RTdXBwbGVtZW50YWw6OnN1cHBsZW1lbnRhbE5vZGUoaXRlbSkp
OworICAgIFdlYktpdERPTU5vZGUqIHJlcyA9IFdlYktpdDo6a2l0KGdfcmVzLmdldCgpKTsKKyAg
ICByZXR1cm4gcmVzOworI2Vsc2UKKyAgICByZXR1cm4gTlVMTDsKKyNlbmRpZiAvKiBFTkFCTEUo
Q29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikgKi8KK30KKwordm9pZAord2Via2l0
X2RvbV90ZXN0X2ludGVyZmFjZV9zZXRfc3VwcGxlbWVudGFsX25vZGUoV2ViS2l0RE9NVGVzdElu
dGVyZmFjZSogc2VsZiwgV2ViS2l0RE9NTm9kZSogdmFsdWUpCit7CisjaWYgRU5BQkxFKENvbmRp
dGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCisgICAgZ19yZXR1cm5faWZfZmFpbChzZWxm
KTsKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgV2ViQ29y
ZTo6VGVzdEludGVyZmFjZSAqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgZ19yZXR1
cm5faWZfZmFpbCh2YWx1ZSk7CisgICAgV2ViQ29yZTo6Tm9kZSAqIGNvbnZlcnRlZF92YWx1ZSA9
IE5VTEw7CisgICAgaWYgKHZhbHVlICE9IE5VTEwpIHsKKyAgICAgICAgY29udmVydGVkX3ZhbHVl
ID0gV2ViS2l0Ojpjb3JlKHZhbHVlKTsKKyAgICAgICAgZ19yZXR1cm5faWZfZmFpbChjb252ZXJ0
ZWRfdmFsdWUpOworICAgIH0KKyAgICBUZXN0U3VwcGxlbWVudGFsOjpzZXRTdXBwbGVtZW50YWxO
b2RlKGl0ZW0sIGNvbnZlcnRlZF92YWx1ZSk7CisjZW5kaWYgLyogRU5BQkxFKENvbmRpdGlvbjEx
KSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpICovCit9CisKIAogR19ERUZJTkVfVFlQRShXZWJLaXRE
T01UZXN0SW50ZXJmYWNlLCB3ZWJraXRfZG9tX3Rlc3RfaW50ZXJmYWNlLCBXRUJLSVRfVFlQRV9E
T01fT0JKRUNUKQogCkBAIC0xNTksNiArMTk0LDkgQEAgZW51bSB7CiAjaWYgRU5BQkxFKENvbmRp
dGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCiAgICAgUFJPUF9TVVBQTEVNRU5UQUxfU1RS
MiwKICNlbmRpZiAvKiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikg
Ki8KKyNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKKyAgICBQ
Uk9QX1NVUFBMRU1FTlRBTF9OT0RFLAorI2VuZGlmIC8qIEVOQUJMRShDb25kaXRpb24xMSkgfHwg
RU5BQkxFKENvbmRpdGlvbjEyKSAqLwogfTsKIAogCkBAIC0yMTgsNiArMjU2LDE0IEBAIHN0YXRp
YyB2b2lkIHdlYmtpdF9kb21fdGVzdF9pbnRlcmZhY2VfZ2UKICAgICAgICAgYnJlYWs7CiAgICAg
fQogI2VuZGlmIC8qIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKSAq
LworI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQorICAgIGNh
c2UgUFJPUF9TVVBQTEVNRU5UQUxfTk9ERToKKyAgICB7CisgICAgICAgIFJlZlB0cjxXZWJDb3Jl
OjpOb2RlPiBwdHIgPSBUZXN0U3VwcGxlbWVudGFsOjpzdXBwbGVtZW50YWxOb2RlKGNvcmVTZWxm
KTsKKyAgICAgICAgZ192YWx1ZV9zZXRfb2JqZWN0KHZhbHVlLCBXZWJLaXQ6OmtpdChwdHIuZ2V0
KCkpKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorI2VuZGlmIC8qIEVOQUJMRShDb25kaXRpb24x
MSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKSAqLwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEdfT0JK
RUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3BfaWQsIHBzcGVjKTsKICAg
ICAgICAgYnJlYWs7CkBAIC0yNTgsNiArMzA0LDE1IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9kb21f
dGVzdF9pbnRlcmZhY2VfY2wKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIiIsIC8qIGRlZmF1bHQgKi8KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JF
QURXUklURSkpOwogI2VuZGlmIC8qIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRp
dGlvbjEyKSAqLworI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEy
KQorICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVjdENsYXNzLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9TVVBQTEVNRU5UQUxfTk9ERSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19vYmplY3Qo
InN1cHBsZW1lbnRhbC1ub2RlIiwgLyogbmFtZSAqLworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGVzdF9pbnRlcmZhY2Vfc3VwcGxl
bWVudGFsLW5vZGUiLCAvKiBzaG9ydCBkZXNjcmlwdGlvbiAqLworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVhZC13cml0ZSAgV2Vi
S2l0RE9NTm9kZSogVGVzdEludGVyZmFjZS5zdXBwbGVtZW50YWwtbm9kZSIsIC8qIGxvbmdlciAt
IGNvdWxkIGRvIHdpdGggc29tZSBleHRyYSBkb2Mgc3R1ZmYgaGVyZSAqLworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRfVFlQ
RV9ET01fTk9ERSwgLyogZ29iamVjdCB0eXBlICovCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEV1JJVEUp
KTsKKyNlbmRpZiAvKiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikg
Ki8KIAogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09i
amVjdC9XZWJLaXRET01UZXN0SW50ZXJmYWNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdEludGVyZmFjZS5o
CShyZXZpc2lvbiAxMDgzODkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvR09iamVjdC9XZWJLaXRET01UZXN0SW50ZXJmYWNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEw
MCw2ICsxMDAsMjcgQEAgd2Via2l0X2RvbV90ZXN0X2ludGVyZmFjZV9nZXRfc3VwcGxlbWVudAog
V0VCS0lUX0FQSSB2b2lkCiB3ZWJraXRfZG9tX3Rlc3RfaW50ZXJmYWNlX3NldF9zdXBwbGVtZW50
YWxfc3RyMihXZWJLaXRET01UZXN0SW50ZXJmYWNlKiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUp
OwogCisvKioKKyAqIHdlYmtpdF9kb21fdGVzdF9pbnRlcmZhY2VfZ2V0X3N1cHBsZW1lbnRhbF9u
b2RlOgorICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RJbnRlcmZhY2UKKyAqCisgKiBSZXR1cm5z
OiAodHJhbnNmZXIgbm9uZSk6CisgKgorKiovCitXRUJLSVRfQVBJIFdlYktpdERPTU5vZGUqCit3
ZWJraXRfZG9tX3Rlc3RfaW50ZXJmYWNlX2dldF9zdXBwbGVtZW50YWxfbm9kZShXZWJLaXRET01U
ZXN0SW50ZXJmYWNlKiBzZWxmKTsKKworLyoqCisgKiB3ZWJraXRfZG9tX3Rlc3RfaW50ZXJmYWNl
X3NldF9zdXBwbGVtZW50YWxfbm9kZToKKyAqIEBzZWxmOiBBICNXZWJLaXRET01UZXN0SW50ZXJm
YWNlCisgKiBAdmFsdWU6IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBSZXR1cm5zOiAodHJhbnNm
ZXIgbm9uZSk6CisgKgorKiovCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9kb21fdGVzdF9pbnRl
cmZhY2Vfc2V0X3N1cHBsZW1lbnRhbF9ub2RlKFdlYktpdERPTVRlc3RJbnRlcmZhY2UqIHNlbGYs
IFdlYktpdERPTU5vZGUqIHZhbHVlKTsKKwogR19FTkRfREVDTFMKIAogI2VuZGlmIC8qIFdlYktp
dERPTVRlc3RJbnRlcmZhY2VfaCAqLwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAJKHJldmlz
aW9uIDEwODM4OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RJbnRlcmZhY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSwxMCArMzUsMTUgQEAKICNp
bmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAKICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJM
RShDb25kaXRpb24xMikKKyNpbmNsdWRlICJKU05vZGUuaCIKICNpbmNsdWRlICJLVVJMLmgiCiAj
aW5jbHVkZSA8cnVudGltZS9KU1N0cmluZy5oPgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQ29uZGl0
aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKKyNpbmNsdWRlICJOb2RlLmgiCisjZW5kaWYK
KwogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTcsMTEg
KzYyLDE0IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RJbnRlcmYKICNpZiBF
TkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKICAgICB7ICJzdXBwbGVt
ZW50YWxTdHIzIiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xv
dDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIzKSwgKGludHB0
cl90KXNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjMsIE5vSW50cmluc2ljIH0sCiAj
ZW5kaWYKKyNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKKyAg
ICB7ICJzdXBwbGVtZW50YWxOb2RlIiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0
PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxO
b2RlKSwgKGludHB0cl90KXNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbE5vZGUsIE5vSW50
cmluc2ljIH0sCisjZW5kaWYKICAgICB7ICJjb25zdHJ1Y3RvciIsIERvbnRFbnVtIHwgUmVhZE9u
bHksIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNU
ZXN0SW50ZXJmYWNlQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpMCwgTm9JbnRyaW5zaWMgfSwKICAg
ICB7IDAsIDAsIDAsIDAsIE5vSW50cmluc2ljIH0KIH07CiAKLXN0YXRpYyBjb25zdCBIYXNoVGFi
bGUgSlNUZXN0SW50ZXJmYWNlVGFibGUgPSB7IDksIDcsIEpTVGVzdEludGVyZmFjZVRhYmxlVmFs
dWVzLCAwIH07CitzdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTVGVzdEludGVyZmFjZVRhYmxlID0g
eyAxNiwgMTUsIEpTVGVzdEludGVyZmFjZVRhYmxlVmFsdWVzLCAwIH07CiAvKiBIYXNoIHRhYmxl
IGZvciBjb25zdHJ1Y3RvciAqLwogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0
SW50ZXJmYWNlQ29uc3RydWN0b3JUYWJsZVZhbHVlc1tdID0KQEAgLTI1Nyw2ICsyNjUsMTggQEAg
SlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIzKAogCiAjZW5kaWYKIAorI2lm
IEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQorSlNWYWx1ZSBqc1Rl
c3RJbnRlcmZhY2VTdXBwbGVtZW50YWxOb2RlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90
QmFzZSwgY29uc3QgSWRlbnRpZmllciYpCit7CisgICAgSlNUZXN0SW50ZXJmYWNlKiBjYXN0ZWRU
aGlzID0gc3RhdGljX2Nhc3Q8SlNUZXN0SW50ZXJmYWNlKj4oYXNPYmplY3Qoc2xvdEJhc2UpKTsK
KyAgICBVTlVTRURfUEFSQU0oZXhlYyk7CisgICAgVGVzdEludGVyZmFjZSogaW1wbCA9IHN0YXRp
Y19jYXN0PFRlc3RJbnRlcmZhY2UqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOworICAgIEpTVmFsdWUg
cmVzdWx0ID0gdG9KUyhleGVjLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgV1RGOjpnZXRQ
dHIoVGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsTm9kZShpbXBsKSkpOworICAgIHJldHVy
biByZXN1bHQ7Cit9CisKKyNlbmRpZgorCiBKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUNvbnN0cnVj
dG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRpZmllciYp
CiB7CiAgICAgSlNUZXN0SW50ZXJmYWNlKiBkb21PYmplY3QgPSBzdGF0aWNfY2FzdDxKU1Rlc3RJ
bnRlcmZhY2UqPihhc09iamVjdChzbG90QmFzZSkpOwpAQCAtMjkwLDYgKzMxMCwxNiBAQCB2b2lk
IHNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjMoCiAKICNlbmRpZgogCisjaWYgRU5B
QkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCit2b2lkIHNldEpTVGVzdElu
dGVyZmFjZVN1cHBsZW1lbnRhbE5vZGUoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogdGhpc09i
amVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3sKKyAgICBKU1Rlc3RJbnRlcmZhY2UqIGNhc3RlZFRoaXMg
PSBzdGF0aWNfY2FzdDxKU1Rlc3RJbnRlcmZhY2UqPih0aGlzT2JqZWN0KTsKKyAgICBUZXN0SW50
ZXJmYWNlKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdEludGVyZmFjZSo+KGNhc3RlZFRoaXMtPmlt
cGwoKSk7CisgICAgVGVzdFN1cHBsZW1lbnRhbDo6c2V0U3VwcGxlbWVudGFsTm9kZShpbXBsLCB0
b05vZGUodmFsdWUpKTsKK30KKworI2VuZGlmCisKIEpTVmFsdWUgSlNUZXN0SW50ZXJmYWNlOjpn
ZXRDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QpCiB7CiAgICAgcmV0dXJuIGdldERPTUNvbnN0cnVjdG9yPEpTVGVzdEludGVyZmFjZUNvbnN0
cnVjdG9yPihleGVjLCBzdGF0aWNfY2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVj
dCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEludGVyZmFjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuaAkocmV2aXNpb24gMTA4Mzg5KQorKysgU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNTksNiArMTU5LDggQEAgSlNDOjpKU1ZhbHVlIGpzVGVzdEludGVyZmFj
ZVN1cHBsZW1lbnRhbAogdm9pZCBzZXRKU1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIyKEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6SlNWYWx1ZSk7CiBKU0M6OkpTVmFs
dWUganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
SlNWYWx1ZSwgY29uc3QgSlNDOjpJZGVudGlmaWVyJik7CiB2b2lkIHNldEpTVGVzdEludGVyZmFj
ZVN1cHBsZW1lbnRhbFN0cjMoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpK
U1ZhbHVlKTsKK0pTQzo6SlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxOb2RlKEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6OklkZW50aWZpZXImKTsKK3Zv
aWQgc2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsTm9kZShKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6SlNPYmplY3QqLCBKU0M6OkpTVmFsdWUpOwogSlNDOjpKU1ZhbHVlIGpzVGVzdEludGVyZmFj
ZUNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6Oklk
ZW50aWZpZXImKTsKIC8vIENvbnN0YW50cwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0SW50ZXJmYWNlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdEludGVyZmFjZS5o
CShyZXZpc2lvbiAxMDgzODkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvT2JqQy9ET01UZXN0SW50ZXJmYWNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcg
QEAKIAogI2lmIFdFQktJVF9WRVJTSU9OX01BWF9BTExPV0VEID49IFdFQktJVF9WRVJTSU9OX0xB
VEVTVAogCitAY2xhc3MgRE9NTm9kZTsKIEBjbGFzcyBET01UZXN0T2JqOwogQGNsYXNzIE5TU3Ry
aW5nOwogCkBAIC01Myw2ICs1NCwxMCBAQCBlbnVtIHsKIC0gKE5TU3RyaW5nICopc3VwcGxlbWVu
dGFsU3RyMzsKIC0gKHZvaWQpc2V0U3VwcGxlbWVudGFsU3RyMzooTlNTdHJpbmcgKiluZXdTdXBw
bGVtZW50YWxTdHIzOwogI2VuZGlmCisjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUo
Q29uZGl0aW9uMTIpCistIChET01Ob2RlICopc3VwcGxlbWVudGFsTm9kZTsKKy0gKHZvaWQpc2V0
U3VwcGxlbWVudGFsTm9kZTooRE9NTm9kZSAqKW5ld1N1cHBsZW1lbnRhbE5vZGU7CisjZW5kaWYK
IC0gKHZvaWQpc3VwcGxlbWVudGFsTWV0aG9kMTsKIC0gKERPTVRlc3RPYmogKilzdXBwbGVtZW50
YWxNZXRob2QyOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmc7
CiAtICh2b2lkKXN1cHBsZW1lbnRhbE1ldGhvZDM7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0SW50ZXJmYWNlLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RJbnRlcmZh
Y2UubW0JKHJldmlzaW9uIDEwODM4OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9PYmpDL0RPTVRlc3RJbnRlcmZhY2UubW0JKHdvcmtpbmcgY29weSkKQEAgLTQzLDYg
KzQzLDcgQEAKICNpbXBvcnQgIkV4Y2VwdGlvbkhhbmRsZXJzLmgiCiAjaW1wb3J0ICJKU01haW5U
aHJlYWRFeGVjU3RhdGUuaCIKICNpbXBvcnQgIktVUkwuaCIKKyNpbXBvcnQgIk5vZGUuaCIKICNp
bXBvcnQgIlRlc3RJbnRlcmZhY2UuaCIKICNpbXBvcnQgIlRlc3RPYmouaCIKICNpbXBvcnQgIlRl
c3RTdXBwbGVtZW50YWwuaCIKQEAgLTEwOCw2ICsxMDksMjIgQEAgLSAodm9pZClzZXRTdXBwbGVt
ZW50YWxTdHIzOihOU1N0cmluZyAqKQogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQ29uZGl0aW9u
MTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKKy0gKERPTU5vZGUgKilzdXBwbGVtZW50YWxOb2Rl
Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVy
biBraXQoV1RGOjpnZXRQdHIoVGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsTm9kZShJTVBM
KSkpOworfQorCistICh2b2lkKXNldFN1cHBsZW1lbnRhbE5vZGU6KERPTU5vZGUgKiluZXdTdXBw
bGVtZW50YWxOb2RlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRl
OworICAgIEFTU0VSVChuZXdTdXBwbGVtZW50YWxOb2RlKTsKKworICAgIFRlc3RTdXBwbGVtZW50
YWw6OnNldFN1cHBsZW1lbnRhbE5vZGUoSU1QTCwgY29yZShuZXdTdXBwbGVtZW50YWxOb2RlKSk7
Cit9CisjZW5kaWYKKwogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0
aW9uMTIpCiAtICh2b2lkKXN1cHBsZW1lbnRhbE1ldGhvZDEKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJbnRlcmZhY2UuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJbnRlcmZh
Y2UuY3BwCShyZXZpc2lvbiAxMDgzODkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVjgvVjhUZXN0SW50ZXJmYWNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiAr
MzEsNyBAQAogI2luY2x1ZGUgIlY4QmluZGluZ1N0YXRlLmgiCiAjaW5jbHVkZSAiVjhET01XcmFw
cGVyLmgiCiAjaW5jbHVkZSAiVjhJc29sYXRlZENvbnRleHQuaCIKKyNpbmNsdWRlICJWOE5vZGUu
aCIKICNpbmNsdWRlICJWOFByb3h5LmgiCiAjaW5jbHVkZSAiVjhUZXN0T2JqLmgiCiAjaW5jbHVk
ZSA8d3RmL0dldFB0ci5oPgpAQCAtODMsNiArODQsMzAgQEAgc3RhdGljIHZvaWQgc3VwcGxlbWVu
dGFsU3RyMkF0dHJTZXR0ZXIodgogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUo
Q29uZGl0aW9uMTIpCiAKK3N0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gc3VwcGxlbWVudGFs
Tm9kZUF0dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nl
c3NvckluZm8mIGluZm8pCit7CisgICAgSU5DX1NUQVRTKCJET00uVGVzdEludGVyZmFjZS5zdXBw
bGVtZW50YWxOb2RlLl9nZXQiKTsKKyAgICBUZXN0SW50ZXJmYWNlKiBpbXAgPSBWOFRlc3RJbnRl
cmZhY2U6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOworICAgIHJldHVybiB0b1Y4KFRlc3RTdXBw
bGVtZW50YWw6OnN1cHBsZW1lbnRhbE5vZGUoaW1wKSk7Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUo
Q29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKKworI2lmIEVOQUJMRShDb25kaXRp
b24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQorCitzdGF0aWMgdm9pZCBzdXBwbGVtZW50YWxO
b2RlQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpW
YWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit7CisgICAgSU5DX1NU
QVRTKCJET00uVGVzdEludGVyZmFjZS5zdXBwbGVtZW50YWxOb2RlLl9zZXQiKTsKKyAgICBUZXN0
SW50ZXJmYWNlKiBpbXAgPSBWOFRlc3RJbnRlcmZhY2U6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkp
OworICAgIE5vZGUqIHYgPSBWOE5vZGU6Okhhc0luc3RhbmNlKHZhbHVlKSA/IFY4Tm9kZTo6dG9O
YXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdCh2YWx1ZSkpIDogMDsKKyAgICBUZXN0
U3VwcGxlbWVudGFsOjpzZXRTdXBwbGVtZW50YWxOb2RlKGltcCwgV1RGOjpnZXRQdHIodikpOwor
ICAgIHJldHVybjsKK30KKworI2VuZGlmIC8vIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxF
KENvbmRpdGlvbjEyKQorCisjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0
aW9uMTIpCisKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gc3VwcGxlbWVudGFsTWV0aG9k
MUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKCJE
T00uVGVzdEludGVyZmFjZS5zdXBwbGVtZW50YWxNZXRob2QxIik7CkBAIC0xMzUsNiArMTYwLDEw
IEBAIHN0YXRpYyBjb25zdCBCYXRjaGVkQXR0cmlidXRlIFRlc3RJbnRlcmYKICAgICAvLyBBdHRy
aWJ1dGUgJ3N1cHBsZW1lbnRhbFN0cjMnIChUeXBlOiAnYXR0cmlidXRlJyBFeHRBdHRyOiAnQ3Vz
dG9tU2V0dGVyIEN1c3RvbUdldHRlciBDb25kaXRpb25hbCBJbXBsZW1lbnRlZEJ5JykKICAgICB7
InN1cHBsZW1lbnRhbFN0cjMiLCBWOFRlc3RJbnRlcmZhY2U6OnN1cHBsZW1lbnRhbFN0cjNBY2Nl
c3NvckdldHRlciwgVjhUZXN0SW50ZXJmYWNlOjpzdXBwbGVtZW50YWxTdHIzQWNjZXNzb3JTZXR0
ZXIsIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpE
RUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAg
Lyogb24gaW5zdGFuY2UgKi99LAogI2VuZGlmIC8vIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5B
QkxFKENvbmRpdGlvbjEyKQorI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRp
dGlvbjEyKQorICAgIC8vIEF0dHJpYnV0ZSAnc3VwcGxlbWVudGFsTm9kZScgKFR5cGU6ICdhdHRy
aWJ1dGUnIEV4dEF0dHI6ICdDb25kaXRpb25hbCBJbXBsZW1lbnRlZEJ5JykKKyAgICB7InN1cHBs
ZW1lbnRhbE5vZGUiLCBUZXN0SW50ZXJmYWNlSW50ZXJuYWw6OnN1cHBsZW1lbnRhbE5vZGVBdHRy
R2V0dGVyLCBUZXN0SW50ZXJmYWNlSW50ZXJuYWw6OnN1cHBsZW1lbnRhbE5vZGVBdHRyU2V0dGVy
LCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVG
QVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8q
IG9uIGluc3RhbmNlICovfSwKKyNlbmRpZiAvLyBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJM
RShDb25kaXRpb24xMikKIH07CiAKIHN0YXRpYyBjb25zdCBCYXRjaGVkQ2FsbGJhY2sgVGVzdElu
dGVyZmFjZUNhbGxiYWNrc1tdID0gewpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwCShyZXZpc2lvbiAxMDgzODkpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDM5LDggKzI0MzksNyBAQCB2b2lkIEZyYW1l
TG9hZGVyOjpjbG9zZUFuZFJlbW92ZUNoaWxkKEZyCiAgICAgY2hpbGQtPnNldFZpZXcoMCk7CiAg
ICAgaWYgKGNoaWxkLT5vd25lckVsZW1lbnQoKSAmJiBjaGlsZC0+cGFnZSgpKQogICAgICAgICBj
aGlsZC0+cGFnZSgpLT5kZWNyZW1lbnRGcmFtZUNvdW50KCk7Ci0gICAgLy8gRklYTUU6IFRoZSBw
YWdlIGlzbid0IGJlaW5nIGRlc3Ryb3llZCwgc28gaXQncyBub3QgcmlnaHQgdG8gY2FsbCBhIGZ1
bmN0aW9uIG5hbWVkIHBhZ2VEZXN0cm95ZWQoKS4KLSAgICBjaGlsZC0+cGFnZURlc3Ryb3llZCgp
OworICAgIGNoaWxkLT5kZXRhY2hGcm9tUGFnZSgpOwogCiAgICAgbV9mcmFtZS0+dHJlZSgpLT5y
ZW1vdmVDaGlsZChjaGlsZCk7CiB9CkBAIC0yNTE4LDggKzI1MTcsNyBAQCB2b2lkIEZyYW1lTG9h
ZGVyOjpkZXRhY2hGcm9tUGFyZW50KCkKICAgICAgICAgcGFyZW50LT5sb2FkZXIoKS0+c2NoZWR1
bGVDaGVja0NvbXBsZXRlZCgpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIG1fZnJhbWUtPnNldFZp
ZXcoMCk7Ci0gICAgICAgIC8vIEZJWE1FOiBUaGUgcGFnZSBpc24ndCBiZWluZyBkZXN0cm95ZWQs
IHNvIGl0J3Mgbm90IHJpZ2h0IHRvIGNhbGwgYSBmdW5jdGlvbiBuYW1lZCBwYWdlRGVzdHJveWVk
KCkuCi0gICAgICAgIG1fZnJhbWUtPnBhZ2VEZXN0cm95ZWQoKTsKKyAgICAgICAgbV9mcmFtZS0+
ZGV0YWNoRnJvbVBhZ2UoKTsKICAgICB9CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
dy5jcHAJKHJldmlzaW9uIDEwODM4OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgwLDYgKzQ4MCwyMSBAQCB2b2lkIERPTVdpbmRvdzo6
ZnJhbWVEZXN0cm95ZWQoKQogICAgIGNsZWFyKCk7CiB9CiAKK3ZvaWQgRE9NV2luZG93Ojp3aWxs
RGV0YWNoUGFnZSgpCit7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcmFtZVdpbmRv
d0Rpc2NhcmRlZChtX2ZyYW1lLCB0aGlzKTsKKworI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQor
ICAgIC8vIENsZWFyaW5nIE5vdGlmaWNhdGlvbnMgcmVxdWVzdHMgaW52b2x2ZXMgYWNjZXNzaW5n
IHRoZSBjbGllbnQgc28gaXQgbXVzdCBiZSBkb25lCisgICAgLy8gYmVmb3JlIHRoZSBmcmFtZSBp
cyBkZXRhY2hlZC4KKyAgICByZXNldE5vdGlmaWNhdGlvbnMoKTsKKyNlbmRpZgorCisgICAgSGFz
aFNldDxET01XaW5kb3dQcm9wZXJ0eSo+OjppdGVyYXRvciBzdG9wID0gbV9wcm9wZXJ0aWVzLmVu
ZCgpOworICAgIGZvciAoSGFzaFNldDxET01XaW5kb3dQcm9wZXJ0eSo+OjppdGVyYXRvciBpdCA9
IG1fcHJvcGVydGllcy5iZWdpbigpOyBpdCAhPSBzdG9wOyArK2l0KQorICAgICAgICAoKml0KS0+
d2lsbERldGFjaFBhZ2UoKTsKK30KKwogdm9pZCBET01XaW5kb3c6OnJlZ2lzdGVyUHJvcGVydHko
RE9NV2luZG93UHJvcGVydHkqIHByb3BlcnR5KQogewogICAgIG1fcHJvcGVydGllcy5hZGQocHJv
cGVydHkpOwpAQCAtNzMxLDIzICs3NDYsNiBAQCB2b2lkIERPTVdpbmRvdzo6cmVzZXROb3RpZmlj
YXRpb25zKCkKIH0KICNlbmRpZgogCi12b2lkIERPTVdpbmRvdzo6cGFnZURlc3Ryb3llZCgpCi17
Ci0gICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcmFtZVdpbmRvd0Rpc2NhcmRlZChtX2Zy
YW1lLCB0aGlzKTsKLSNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLSAgICAvLyBDbGVhcmluZyBO
b3RpZmljYXRpb25zIHJlcXVlc3RzIGludm9sdmVzIGFjY2Vzc2luZyB0aGUgY2xpZW50IHNvIGl0
IG11c3QgYmUgZG9uZQotICAgIC8vIGJlZm9yZSB0aGUgZnJhbWUgaXMgZGV0YWNoZWQuCi0gICAg
cmVzZXROb3RpZmljYXRpb25zKCk7Ci0jZW5kaWYKLX0KLQotdm9pZCBET01XaW5kb3c6OnJlc2V0
R2VvbG9jYXRpb24oKQotewotICAgIC8vIEdlb2xvY2F0aW9uIHNob3VsZCBjYW5jZWwgYWN0aXZp
dGllcyBhbmQgcGVybWlzc2lvbiByZXF1ZXN0cyB3aGVuIHRoZSBwYWdlIGlzIGRldGFjaGVkLgot
ICAgIGlmIChtX25hdmlnYXRvcikKLSAgICAgICAgbV9uYXZpZ2F0b3ItPnJlc2V0R2VvbG9jYXRp
b24oKTsKLX0KLQogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogdm9pZCBET01XaW5kb3c6
OnNldElEQkZhY3RvcnkoUGFzc1JlZlB0cjxJREJGYWN0b3J5PiBpZGJGYWN0b3J5KQogewpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCShyZXZpc2lvbiAxMDgzODkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5oCSh3b3JraW5nIGNvcHkpCkBAIC05Miw4ICs5Miw2IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2aXJ0dWFsIERPTVdpbmRvdyogdG9ET01XaW5k
b3coKTsKIAotICAgICAgICB2aXJ0dWFsIHZvaWQgZnJhbWVEZXN0cm95ZWQoKSBPVkVSUklERTsK
LQogICAgICAgICB2b2lkIHJlZ2lzdGVyUHJvcGVydHkoRE9NV2luZG93UHJvcGVydHkqKTsKICAg
ICAgICAgdm9pZCB1bnJlZ2lzdGVyUHJvcGVydHkoRE9NV2luZG93UHJvcGVydHkqKTsKIApAQCAt
MjMxLDkgKzIyOSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBwcmludEVy
cm9yTWVzc2FnZShjb25zdCBTdHJpbmcmKTsKICAgICAgICAgU3RyaW5nIGNyb3NzRG9tYWluQWNj
ZXNzRXJyb3JNZXNzYWdlKERPTVdpbmRvdyogYWN0aXZlV2luZG93KTsKIAotICAgICAgICB2b2lk
IHBhZ2VEZXN0cm95ZWQoKTsKLSAgICAgICAgdm9pZCByZXNldEdlb2xvY2F0aW9uKCk7Ci0KICAg
ICAgICAgdm9pZCBwb3N0TWVzc2FnZShQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4g
bWVzc2FnZSwgY29uc3QgTWVzc2FnZVBvcnRBcnJheSosIGNvbnN0IFN0cmluZyYgdGFyZ2V0T3Jp
Z2luLCBET01XaW5kb3cqIHNvdXJjZSwgRXhjZXB0aW9uQ29kZSYpOwogICAgICAgICAvLyBGSVhN
RTogcmVtb3ZlIHRoaXMgd2hlbiB3ZSB1cGRhdGUgdGhlIE9iakMgYmluZGluZ3MgKGJ1ZyAjMjg3
NzQpLgogICAgICAgICB2b2lkIHBvc3RNZXNzYWdlKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPiBtZXNzYWdlLCBNZXNzYWdlUG9ydCosIGNvbnN0IFN0cmluZyYgdGFyZ2V0T3JpZ2lu
LCBET01XaW5kb3cqIHNvdXJjZSwgRXhjZXB0aW9uQ29kZSYpOwpAQCAtNDE5LDYgKzQxNCw5IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBwcml2YXRlOgogICAgICAgICBleHBsaWNpdCBET01X
aW5kb3coRnJhbWUqKTsKIAorICAgICAgICB2aXJ0dWFsIHZvaWQgZnJhbWVEZXN0cm95ZWQoKSBP
VkVSUklERTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHdpbGxEZXRhY2hQYWdlKCkgT1ZFUlJJREU7
CisKICAgICAgICAgdmlydHVhbCB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgeyByZWYoKTsgfQogICAg
ICAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIHsgZGVyZWYoKTsgfQogICAgICAg
ICB2aXJ0dWFsIEV2ZW50VGFyZ2V0RGF0YSogZXZlbnRUYXJnZXREYXRhKCk7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd1Byb3BlcnR5LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd1Byb3BlcnR5LmNwcAkocmV2aXNpb24gMTA4Mzg5KQor
KysgU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3dQcm9wZXJ0eS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQ5LDQgKzQ5LDkgQEAgdm9pZCBET01XaW5kb3dQcm9wZXJ0eTo6ZGlzY29ubmVjdEZy
YW1lKAogICAgIG1fZnJhbWUgPSAwOwogfQogCit2b2lkIERPTVdpbmRvd1Byb3BlcnR5Ojp3aWxs
RGV0YWNoUGFnZSgpCit7CisgICAgLy8gU3ViY2xhc3NlcyBzaG91bGQgb3ZlcnJpZGUgdGhpcyBm
dW5jdGlvbiB0byBoYW5kbGUgdGhpcyBub3RpZmljYXRpb24uCit9CisKIH0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93UHJvcGVydHkuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvd1Byb3BlcnR5LmgJKHJldmlzaW9uIDEwODM4OSkKKysrIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93UHJvcGVydHkuaAkod29ya2luZyBjb3B5KQpAQCAt
MzMsNyArMzMsOSBAQCBjbGFzcyBGcmFtZTsKIGNsYXNzIERPTVdpbmRvd1Byb3BlcnR5IHsKIHB1
YmxpYzoKICAgICBleHBsaWNpdCBET01XaW5kb3dQcm9wZXJ0eShGcmFtZSopOworCiAgICAgdmly
dHVhbCB2b2lkIGRpc2Nvbm5lY3RGcmFtZSgpOworICAgIHZpcnR1YWwgdm9pZCB3aWxsRGV0YWNo
UGFnZSgpOwogCiAgICAgRnJhbWUqIGZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZTsgfQog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAkocmV2aXNpb24gMTA4Mzg5KQorKysgU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY2MCwyMSArNjYwLDE5IEBA
IERPTVdpbmRvdyogRnJhbWU6OmRvbVdpbmRvdygpIGNvbnN0CiAgICAgcmV0dXJuIG1fZG9tV2lu
ZG93LmdldCgpOwogfQogCi12b2lkIEZyYW1lOjpwYWdlRGVzdHJveWVkKCkKK3ZvaWQgRnJhbWU6
OndpbGxEZXRhY2hQYWdlKCkKIHsKLSAgICAvLyBGSVhNRTogUmVuYW1lIHRoaXMgZnVuY3Rpb24s
IHNpbmNlIGl0J3MgY2FsbGVkIG5vdCBvbmx5IGZyb20gUGFnZSBkZXN0cnVjdG9yLCBidXQgaW4g
c2V2ZXJhbCBvdGhlciBjYXNlcy4KLSAgICAvLyBUaGlzIGNsZWFudXAgaXMgbmVlZGVkIHdoZW5l
dmVyIHdlIHJlbW92ZSBhIGZyYW1lIGZyb20gcGFnZS4KLQogICAgIGlmIChGcmFtZSogcGFyZW50
ID0gdHJlZSgpLT5wYXJlbnQoKSkKICAgICAgICAgcGFyZW50LT5sb2FkZXIoKS0+Y2hlY2tMb2Fk
Q29tcGxldGUoKTsKIAotICAgIGlmIChtX2RvbVdpbmRvdykgewotICAgICAgICBtX2RvbVdpbmRv
dy0+cmVzZXRHZW9sb2NhdGlvbigpOwogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQorICAgIGlm
IChtX2RvbVdpbmRvdykKICAgICAgICAgbV9kb21XaW5kb3ctPnJlc2V0Tm90aWZpY2F0aW9ucygp
OwogI2VuZGlmCi0gICAgICAgIG1fZG9tV2luZG93LT5wYWdlRGVzdHJveWVkKCk7Ci0gICAgfQor
CisgICAgSGFzaFNldDxGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIqPjo6aXRlcmF0b3Igc3RvcCA9
IG1fZGVzdHJ1Y3Rpb25PYnNlcnZlcnMuZW5kKCk7CisgICAgZm9yIChIYXNoU2V0PEZyYW1lRGVz
dHJ1Y3Rpb25PYnNlcnZlcio+OjppdGVyYXRvciBpdCA9IG1fZGVzdHJ1Y3Rpb25PYnNlcnZlcnMu
YmVnaW4oKTsgaXQgIT0gc3RvcDsgKytpdCkKKyAgICAgICAgKCppdCktPndpbGxEZXRhY2hQYWdl
KCk7CiAKICAgICAvLyBGSVhNRTogSXQncyB1bmNsZWFyIGFzIHRvIHdoeSB0aGlzIGlzIGNhbGxl
ZCBtb3JlIHRoYW4gb25jZSwgYnV0IGl0IGlzLAogICAgIC8vIHNvIHBhZ2UoKSBjb3VsZCBiZSBO
VUxMLgpAQCAtNjgzLDggKzY4MSw2IEBAIHZvaWQgRnJhbWU6OnBhZ2VEZXN0cm95ZWQoKQogCiAg
ICAgc2NyaXB0KCktPmNsZWFyU2NyaXB0T2JqZWN0cygpOwogICAgIHNjcmlwdCgpLT51cGRhdGVQ
bGF0Zm9ybVNjcmlwdE9iamVjdHMoKTsKLQotICAgIGRldGFjaEZyb21QYWdlKCk7CiB9CiAKIHZv
aWQgRnJhbWU6OmRpc2Nvbm5lY3RPd25lckVsZW1lbnQoKQpAQCAtNzE4LDE3ICs3MTQsMTYgQEAg
dm9pZCBGcmFtZTo6dHJhbnNmZXJDaGlsZEZyYW1lVG9OZXdEb2N1bQogICAgICAgICAgICAgIG1f
cGFnZS0+ZGVjcmVtZW50RnJhbWVDb3VudCgpOwogICAgICAgICB9CiAKLSAgICAgICAgLy8gRklY
TUU6IFdlIHNob3VsZCBpZGVhbGx5IGFsbG93IGV4aXN0aW5nIEdlb2xvY2F0aW9uIGFjdGl2aXRp
ZXMgdG8gY29udGludWUKLSAgICAgICAgLy8gd2hlbiB0aGUgR2VvbG9jYXRpb24ncyBpZnJhbWUg
aXMgcmVwYXJlbnRlZC4KLSAgICAgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD01NTU3NwotICAgICAgICAvLyBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTUyODc3CiAgICAgICAgIGlmIChtX2RvbVdpbmRvdykgewotICAg
ICAgICAgICAgbV9kb21XaW5kb3ctPnJlc2V0R2VvbG9jYXRpb24oKTsKICNpZiBFTkFCTEUoTk9U
SUZJQ0FUSU9OUykKICAgICAgICAgICAgIG1fZG9tV2luZG93LT5yZXNldE5vdGlmaWNhdGlvbnMo
KTsKICNlbmRpZgogICAgICAgICB9CiAKKyAgICAgICAgSGFzaFNldDxGcmFtZURlc3RydWN0aW9u
T2JzZXJ2ZXIqPjo6aXRlcmF0b3Igc3RvcCA9IG1fZGVzdHJ1Y3Rpb25PYnNlcnZlcnMuZW5kKCk7
CisgICAgICAgIGZvciAoSGFzaFNldDxGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIqPjo6aXRlcmF0
b3IgaXQgPSBtX2Rlc3RydWN0aW9uT2JzZXJ2ZXJzLmJlZ2luKCk7IGl0ICE9IHN0b3A7ICsraXQp
CisgICAgICAgICAgICAoKml0KS0+d2lsbERldGFjaFBhZ2UoKTsKKwogICAgICAgICBtX3BhZ2Ug
PSBuZXdQYWdlOwogCiAgICAgICAgIGlmIChuZXdQYWdlKQpJbmRleDogU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaAko
cmV2aXNpb24gMTA4Mzg5KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC04OSw4ICs4OSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9p
ZCBhZGREZXN0cnVjdGlvbk9ic2VydmVyKEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlciopOwogICAg
ICAgICB2b2lkIHJlbW92ZURlc3RydWN0aW9uT2JzZXJ2ZXIoRnJhbWVEZXN0cnVjdGlvbk9ic2Vy
dmVyKik7CiAKKyAgICAgICAgdm9pZCB3aWxsRGV0YWNoUGFnZSgpOwogICAgICAgICB2b2lkIGRl
dGFjaEZyb21QYWdlKCk7Ci0gICAgICAgIHZvaWQgcGFnZURlc3Ryb3llZCgpOwogICAgICAgICB2
b2lkIGRpc2Nvbm5lY3RPd25lckVsZW1lbnQoKTsKIAogICAgICAgICBQYWdlKiBwYWdlKCkgY29u
c3Q7CkBAIC0zNDgsNiArMzQ4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgaW5saW5l
IHZvaWQgRnJhbWU6OmRldGFjaEZyb21QYWdlKCkKICAgICB7CisgICAgICAgIHdpbGxEZXRhY2hQ
YWdlKCk7CiAgICAgICAgIG1fcGFnZSA9IDA7CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuY3BwCShyZXZpc2lvbiAxMDgz
ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTU4LDQgKzU4LDkgQEAgdm9pZCBGcmFtZURlc3RydWN0aW9uT2Jz
ZXJ2ZXI6OmZyYW1lRGVzdAogICAgIG1fZnJhbWUgPSAwOwogfQogCit2b2lkIEZyYW1lRGVzdHJ1
Y3Rpb25PYnNlcnZlcjo6d2lsbERldGFjaFBhZ2UoKQoreworICAgIC8vIFN1YmNsYXNzZXMgc2hv
dWxkIG92ZXJyaWRlIHRoaXMgZnVuY3Rpb24gdG8gaGFuZGxlIHRoaXMgbm90aWZpY2F0aW9uLgor
fQorCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZl
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVEZXN0cnVjdGlvbk9i
c2VydmVyLmgJKHJldmlzaW9uIDEwODM4OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVE
ZXN0cnVjdGlvbk9ic2VydmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDEwIEBAIGNs
YXNzIEZyYW1lOwogY2xhc3MgRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyIHsKIHB1YmxpYzoKICAg
ICBleHBsaWNpdCBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIoRnJhbWUqKTsKKwogICAgIHZpcnR1
YWwgdm9pZCBmcmFtZURlc3Ryb3llZCgpOworICAgIHZpcnR1YWwgdm9pZCB3aWxsRGV0YWNoUGFn
ZSgpOworCiAgICAgRnJhbWUqIGZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZTsgfQogCiBw
cm90ZWN0ZWQ6CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuY3BwCShyZXZpc2lvbiAxMDgz
ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTY3LDEyICs2Nyw2IEBAIE5hdmlnYXRvclN1cHBsZW1lbnQqIE5hdmlnYXRvcjo6cmVxdWly
ZVMKICAgICByZXR1cm4gbV9zdXBwbGltZW50cy5nZXQobmFtZS5pbXBsKCkpOwogfQogCi12b2lk
IE5hdmlnYXRvcjo6cmVzZXRHZW9sb2NhdGlvbigpCi17Ci0gICAgaWYgKG1fZ2VvbG9jYXRpb24p
Ci0gICAgICAgIG1fZ2VvbG9jYXRpb24tPnJlc2V0KCk7Ci19Ci0KIC8vIElmIHRoaXMgZnVuY3Rp
b24gcmV0dXJucyB0cnVlLCB3ZSBuZWVkIHRvIGhpZGUgdGhlIHN1YnN0cmluZyAiNC4iIHRoYXQg
d291bGQgb3RoZXJ3aXNlCiAvLyBhcHBlYXIgaW4gdGhlIGFwcFZlcnNpb24gc3RyaW5nLiBUaGlz
IGlzIHRvIGF2b2lkIHByb2JsZW1zIHdpdGggb2xkIHZlcnNpb25zIG9mIGEKIC8vIGxpYnJhcnkg
Y2FsbGVkIE9wZW5DdWJlIFF1aWNrTWVudSwgd2hpY2ggYXMgb2YgdGhpcyB3cml0aW5nIGlzIHN0
aWxsIGJlaW5nIHVzZWQgb24KQEAgLTE1MSwxMyArMTQ1LDYgQEAgYm9vbCBOYXZpZ2F0b3I6Omph
dmFFbmFibGVkKCkgY29uc3QKICAgICByZXR1cm4gbV9mcmFtZS0+c2V0dGluZ3MoKS0+aXNKYXZh
RW5hYmxlZCgpOwogfQogCi1HZW9sb2NhdGlvbiogTmF2aWdhdG9yOjpnZW9sb2NhdGlvbigpIGNv
bnN0Ci17Ci0gICAgaWYgKCFtX2dlb2xvY2F0aW9uKQotICAgICAgICBtX2dlb2xvY2F0aW9uID0g
R2VvbG9jYXRpb246OmNyZWF0ZShtX2ZyYW1lKTsKLSAgICByZXR1cm4gbV9nZW9sb2NhdGlvbi5n
ZXQoKTsKLX0KLQogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiBQb2ludGVyTG9jayogTmF2aWdh
dG9yOjp3ZWJraXRQb2ludGVyKCkgY29uc3QKIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
TmF2aWdhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3Iu
aAkocmV2aXNpb24gMTA4Mzg5KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuaAko
d29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFz
cyBET01NaW1lVHlwZUFycmF5OwogY2xhc3MgRE9NUGx1Z2luQXJyYXk7CiBjbGFzcyBGcmFtZTsK
LWNsYXNzIEdlb2xvY2F0aW9uOwogY2xhc3MgUG9pbnRlckxvY2s7CiBjbGFzcyBQbHVnaW5EYXRh
OwogCkBAIC00NSw4ICs0NCw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxOYXZp
Z2F0b3I+IGNyZWF0ZShGcmFtZSogZnJhbWUpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBOYXZpZ2F0
b3IoZnJhbWUpKTsgfQogICAgIHZpcnR1YWwgfk5hdmlnYXRvcigpOwogCi0gICAgdm9pZCByZXNl
dEdlb2xvY2F0aW9uKCk7Ci0KICAgICBTdHJpbmcgYXBwVmVyc2lvbigpIGNvbnN0OwogICAgIFN0
cmluZyBsYW5ndWFnZSgpIGNvbnN0OwogICAgIERPTVBsdWdpbkFycmF5KiBwbHVnaW5zKCkgY29u
c3Q7CkBAIC01Niw4ICs1Myw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgU3RyaW5nIHVzZXJB
Z2VudCgpIGNvbnN0OwogCi0gICAgR2VvbG9jYXRpb24qIGdlb2xvY2F0aW9uKCkgY29uc3Q7Ci0K
ICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgIFBvaW50ZXJMb2NrKiB3ZWJraXRQb2ludGVy
KCkgY29uc3Q7CiAjZW5kaWYKQEAgLTgwLDcgKzc1LDYgQEAgcHJpdmF0ZToKIAogICAgIG11dGFi
bGUgUmVmUHRyPERPTVBsdWdpbkFycmF5PiBtX3BsdWdpbnM7CiAgICAgbXV0YWJsZSBSZWZQdHI8
RE9NTWltZVR5cGVBcnJheT4gbV9taW1lVHlwZXM7Ci0gICAgbXV0YWJsZSBSZWZQdHI8R2VvbG9j
YXRpb24+IG1fZ2VvbG9jYXRpb247CiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICBtdXRh
YmxlIFJlZlB0cjxQb2ludGVyTG9jaz4gbV9wb2ludGVyOwogI2VuZGlmCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wYWdlL05hdmlnYXRvci5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGFnZS9OYXZpZ2F0b3IuaWRsCShyZXZpc2lvbiAxMDgzODkpCisrKyBTb3VyY2UvV2ViQ29yZS9w
YWdlL05hdmlnYXRvci5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTQwLDEwICs0MCw2IEBAIG1vZHVs
ZSB3aW5kb3cgewogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIG9uTGluZTsK
IAotI2lmIGRlZmluZWQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAmJiBFTkFCTEVfR0VPTE9DQVRJT04K
LSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIEdlb2xvY2F0
aW9uIGdlb2xvY2F0aW9uOwotI2VuZGlmCi0KICNpZiBkZWZpbmVkKEVOQUJMRV9QT0lOVEVSX0xP
Q0spICYmIEVOQUJMRV9QT0lOVEVSX0xPQ0sKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtW
OEVuYWJsZWRBdFJ1bnRpbWVdIFBvaW50ZXJMb2NrIHdlYmtpdFBvaW50ZXI7CiAjZW5kaWYKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmNwcAkocmV2aXNpb24gMTA4Mzg5KQorKysgU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjAwLDcgKzIwMCw3IEBAIFBhZ2U6On5Q
YWdlKCkKICAgICBhbGxQYWdlcy0+cmVtb3ZlKHRoaXMpOwogICAgIAogICAgIGZvciAoRnJhbWUq
IGZyYW1lID0gbWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCktPnRyYXZl
cnNlTmV4dCgpKQotICAgICAgICBmcmFtZS0+cGFnZURlc3Ryb3llZCgpOworICAgICAgICBmcmFt
ZS0+ZGV0YWNoRnJvbVBhZ2UoKTsKIAogICAgIG1fZWRpdG9yQ2xpZW50LT5wYWdlRGVzdHJveWVk
KCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYJKHJldmlzaW9uIDEwODM4OSkKKysrIFNv
dXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgkod29ya2luZyBjb3B5KQpAQCAtMjAxLDMgKzIw
MSw0IEBAIEVYUE9SVFMKICAgICAgICAgP3VwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNo
ZWV0c0BEb2N1bWVudEBXZWJDb3JlQEBRQUVYWFoKICAgICAgICAgP3VzZXJQcmVmZXJyZWRMYW5n
dWFnZXNAV2ViQ29yZUBAWUE/QVY/JFZlY3RvckBWU3RyaW5nQFdURkBAJDBBQEBXVEZAQFhaCiAg
ICAgICAgID92aWV3QERvY3VtZW50QFdlYkNvcmVAQFFCRVBBVkZyYW1lVmlld0AyQFhaCisgICAg
ICAgID93aWxsRGV0YWNoUGFnZUBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXJAV2ViQ29yZUBAVUFF
WFhaCkluZGV4OiBTb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIJKHJldmlzaW9uIDEwODM4OSkKKysrIFNv
dXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIJKHdvcmtpbmcgY29weSkKQEAgLTk2LDYgKzk2
LDcgQEAgX1pON1dlYkNvcmUyNEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlckQyRQogX1pON1dlYkNv
cmUyNEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlckMyRVBOU181RnJhbWVFOwogX1pON1dlYkNvcmUy
NEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlcjEyb2JzZXJ2ZUZyYW1lRVBOU181RnJhbWVFOwogX1pO
N1dlYkNvcmUyNEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlcjE0ZnJhbWVEZXN0cm95ZWRFdjsKK19a
TjdXZWJDb3JlMjRGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIxNHdpbGxEZXRhY2hQYWdlRXY7CiBf
Wk43V2ViQ29yZTIyUnVudGltZUVuYWJsZWRGZWF0dXJlczMxaXNNdWx0aXBsZVNoYWRvd1N1YnRy
ZWVzRW5hYmxlZEU7CiBsb2NhbDoKIF9aKjsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128085</attachid>
            <date>2012-02-21 16:59:22 -0800</date>
            <delta_ts>2012-02-21 18:22:04 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-78860-20120221165920.patch</filename>
            <type>text/plain</type>
            <size>61447</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwODQyMCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU0IEBACisyMDEyLTAyLTIxICBBZGFtIEJh
cnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRnJhbWUgYW5kIE5hdmlnYXRvciBz
aG91bGRuJ3QgbmVlZCB0byB3b3JyeSBhYm91dCBHZW9sb2NhdGlvbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg4NjAKKworICAgICAgICBSZXZpZXdl
ZCBieSBFcmljIFNlaWRlbC4KKworICAgICAgICBUaGlzIHBhdGNoIHJlbW92ZXMgc29tZSBHZW9s
b2NhdGlvbi1zcGVjaWZpYyBjb2RlIGZyb20gRnJhbWUgYW5kCisgICAgICAgIE5hdmlnYXRvciBp
biBmYXZvciBvZiBvdXIgbmV3IHN1cHBsZW1lbnRhbCBtb2R1bGUgbWVjaGFuaXNtLiAgV2UncmUK
KyAgICAgICAgc3RpbGwgcmVmaW5pbmcgdGhlIG1vZHVsZSBzeXN0ZW0sIGJ1dCB3ZSBzZWVtIHRv
IGJlIGNvbnZlcmdpbmcgb24gYQorICAgICAgICBzaW1wbGUgT2JzZXJ2ZXIvU3VwcGxlbWVudCBk
ZXNpZ24uCisKKyAgICAgICAgSW4gYSBmdXR1cmUgcGF0Y2gsIEknbGwgbW92ZSB0aGUgcmVtYWlu
aW5nIEdlb2xvY2F0aW9uLXJlbGF0ZWQgZmlsZXMgaW4KKyAgICAgICAgV2ViQ29yZSBpbnRvIE1v
ZHVsZXMvZ2VvbG9jYXRpb24uICBUaGlzIHBhdGNoIGFwcGVhcnMgdG8gYmUgdGhlIGZpcnN0Cisg
ICAgICAgIHBhdGNoIHRoYXQgaW50cm9kdWNlcyBhIG1vZHVsZSB1c2VkIGJ5IGFsbCB0aGUgdmFy
aW91cyBidWlsZCBzeXN0ZW1zLAorICAgICAgICB3aGljaCBpcyB3aHkgdGhlcmUncyBhIGJpdCBt
b3JlIGJ1aWxkIHN5c3RlbSBvdmVyaGVhZCB0aGFuIHVzdWFsLgorCisgICAgICAgICogTW9kdWxl
cy9nZW9sb2NhdGlvbjogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZp
Z2F0b3JHZW9sb2NhdGlvbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6TmF2aWdhdG9yR2VvbG9jYXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdG9yR2VvbG9jYXRpb246On5OYXZpZ2F0b3JHZW9sb2Nh
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6cGFnZURlc3Ry
b3llZCk6CisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6ZnJvbSk6Cisg
ICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6Z2VvbG9jYXRpb24pOgorICAg
ICAgICAqIE1vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKE5hdmlnYXRvckdlb2xvY2F0aW9uKToKKyAg
ICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmlkbDogQWRk
ZWQuCisgICAgICAgICAgICAtIEkndmUgdGVtcG9yYXJpbHkgZGlzYWJsZWQgdGhpcyBBUEkgZm9y
IEdPYmplY3QgYmVjYXVzZSBpdCBnZW5lcmF0ZXMKKyAgICAgICAgICAgICAgYSBzdHJhbmdlIGNv
bXBpbGUgZXJyb3IuICBPbmNlIEkgbGFuZCB0aGlzIHBhdGNoLCBJJ2xsIHNwZW5kIHNvbWUKKyAg
ICAgICAgICAgICAgbW9yZSB0aW1lIGZpeGluZyB0aGUgY29tcGlsZSBlcnJvci4KKyAgICAgICAg
KiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwYWdl
L0RPTVdpbmRvdy5oOgorICAgICAgICAoRE9NV2luZG93KToKKyAgICAgICAgKiBwYWdlL0ZyYW1l
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpwYWdlRGVzdHJveWVkKToKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lOjp0cmFuc2ZlckNoaWxkRnJhbWVUb05ld0RvY3VtZW50KToKKyAgICAg
ICAgKiBwYWdlL0ZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXI6OnBhZ2VEZXN0cm95ZWQpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgICogcGFnZS9GcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuaDoKKyAgICAg
ICAgKEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlcik6CisgICAgICAgICogcGFnZS9OYXZpZ2F0b3Iu
Y3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGFnZS9OYXZpZ2F0b3IuaDoKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoTmF2aWdhdG9yKToKKyAgICAgICAgKiBwYWdlL05h
dmlnYXRvci5pZGw6CisKIDIwMTItMDItMjEgIEFkYW0gS2xlaW4gIDxhZGFta0BjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgU2V0dGluZyBpbm5lclRleHQgY2F1c2VzIERPTVN1YnRyZWVNb2RpZmll
ZCB0byBiZSBkaXNwYXRjaGVkIHRvbyBlYXJseQpJbmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJl
dmlzaW9uIDEwODQyMCkKKysrIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNiBAQAogU0VUKFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwog
ICAgICIke1dFQkNPUkVfRElSfSIKKyAgICAiJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9nZW9sb2Nh
dGlvbiIKICAgICAiJHtXRUJDT1JFX0RJUn0vYWNjZXNzaWJpbGl0eSIKICAgICAiJHtXRUJDT1JF
X0RJUn0vYmluZGluZ3MiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L2JpbmRpbmdzL2dlbmVyaWMiCkBA
IC04Nyw2ICs4OCw3IEBAIFNFVChXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKICkKIAogU0VU
KFdlYkNvcmVfSURMX0lOQ0xVREVTCisgICAgTW9kdWxlcy9nZW9sb2NhdGlvbgogICAgIGJpbmRp
bmdzL2dlbmVyaWMKICAgICBjc3MKICAgICBkb20KQEAgLTEwNSw2ICsxMDcsOCBAQCBTRVQoV2Vi
Q29yZV9JRExfSU5DTFVERVMKICkKIAogU0VUKFdlYkNvcmVfSURMX0ZJTEVTCisgICAgTW9kdWxl
cy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5pZGwKKwogICAgIGNzcy9Db3VudGVy
LmlkbAogICAgIGNzcy9DU1NDaGFyc2V0UnVsZS5pZGwKICAgICBjc3MvQ1NTRm9udEZhY2VSdWxl
LmlkbApAQCAtNDAwLDYgKzQwNCw4IEBAIFNFVChXZWJDb3JlX0lETF9GSUxFUwogKQogCiBTRVQo
V2ViQ29yZV9TT1VSQ0VTCisgICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2Nh
dGlvbi5jcHAKKwogICAgIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKICAgICBhY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZC5jcHAKICAgICBhY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlBUklBR3JpZENlbGwuY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UJKHJldmlzaW9uIDEwODQyMCkKKysrIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogVlBBVEggPSBcCiAgICAg
JChXZWJDb3JlKSBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2dlb2xvY2F0aW9uIFwKICAgICAk
KFdlYkNvcmUpL2JpbmRpbmdzL2dlbmVyaWMgXAogICAgICQoV2ViQ29yZSkvYmluZGluZ3MvanMg
XAogICAgICQoV2ViQ29yZSkvYmluZGluZ3Mvb2JqYyBcCkBAIC01Myw2ICs1NCw3IEBAIFZQQVRI
ID0gXAogIwogCiBCSU5ESU5HX0lETFMgPSBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmlkbCBcCiAgICAgJChXZWJDb3JlKS9jc3MvQ1NT
Q2hhcnNldFJ1bGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL2Nzcy9DU1NGb250RmFjZVJ1bGUuaWRs
IFwKICAgICAkKFdlYkNvcmUpL2Nzcy9DU1NJbXBvcnRSdWxlLmlkbCBcCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMucHJpCShyZXZpc2lvbiAxMDg0MjApCisrKyBTb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5wcmkJKHdvcmtpbmcgY29weSkKQEAgLTg2LDYgKzg2LDcgQEAgU1RZTEVT
SEVFVFNfRU1CRUQgPSBcCiAgICAgJCRQV0QvY3NzL21vYmlsZVRoZW1lUXQuY3NzCiAKIElETF9C
SU5ESU5HUyArPSBcCisgICAgJCRQV0QvTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9s
b2NhdGlvbi5pZGwgXAogICAgICQkUFdEL2Nzcy9Db3VudGVyLmlkbCBcCiAgICAgJCRQV0QvY3Nz
L0NTU0NoYXJzZXRSdWxlLmlkbCBcCiAgICAgJCRQV0QvY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGwg
XApAQCAtNjg0LDYgKzY4NSw3IEBAIGVsc2U6IGdlbmVyYXRvciA9IEpTCiBnZW5lcmF0ZUJpbmRp
bmdzLmNvbW1hbmRzID0gcGVybCAtSSQkUFdEL2JpbmRpbmdzL3NjcmlwdHMgJCRnZW5lcmF0ZUJp
bmRpbmdzLnNjcmlwdCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS1kZWZpbmVzIFwi
JCR7RkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFR9XCIgXAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC0tZ2VuZXJhdG9yICQkZ2VuZXJhdG9yIFwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAtLWluY2x1ZGUgJCRQV0QvTW9kdWxlcy9nZW9sb2NhdGlvbiBcCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLS1pbmNsdWRlICQkUFdEL2RvbSBcCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLS1pbmNsdWRlICQkUFdEL2ZpbGVhcGkgXAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC0taW5jbHVkZSAkJFBXRC9odG1sIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCShy
ZXZpc2lvbiAxMDg0MjApCisrKyBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkod29ya2lu
ZyBjb3B5KQpAQCAtMTEsNiArMTEsNyBAQCB3ZWJjb3JlX2NwcGZsYWdzICs9IFwKIAktSSQoc3Jj
ZGlyKS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9pbmNsdWRlIFwKIAktSSQoc3JjZGlyKS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9BTkdMRS9pbmNsdWRlL0dMU0xBTkcgXAogCS1JJChzcmNkaXIpL1NvdXJj
ZS9XZWJDb3JlIFwKKwktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0
aW9uIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5IFwKIAktSSQo
c3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncyBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvZ2VuZXJpYyBcCkBAIC03NTgsNiArNzU5LDcgQEAgRGVyaXZlZFNvdXJj
ZXMvQU5HTEUvZ2xzbGFuZ190YWIuY3BwOiBTbwogRGVyaXZlZFNvdXJjZXMvQU5HTEUvZ2xzbGFu
Z190YWIuaDogRGVyaXZlZFNvdXJjZXMvQU5HTEUvZ2xzbGFuZ190YWIuY3BwCiAKIElETF9QQVRI
IDo9IFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvZ2VvbG9jYXRpb24gXAogICAgICQoV2ViQ29y
ZSkvYmluZGluZ3MvanMgXAogICAgICQoV2ViQ29yZSkvY3NzIFwKICAgICAkKFdlYkNvcmUpL2Rv
bSBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9uIDEwODQyMCkK
KysrIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHdvcmtpbmcgY29weSkKQEAg
LTY1MCw2ICs2NTAsNyBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvWFBhdGhHcmFtbWFyLmgKIAogZG9tX2JpbmRpbmdfaWRscyArPSBcCisJJChX
ZWJDb3JlKS9Nb2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmlkbCBcCiAJ
JChXZWJDb3JlKS9jc3MvQ1NTQ2hhcnNldFJ1bGUuaWRsIFwKIAkkKFdlYkNvcmUpL2Nzcy9DU1NG
b250RmFjZVJ1bGUuaWRsIFwKIAkkKFdlYkNvcmUpL2Nzcy9DU1NJbXBvcnRSdWxlLmlkbCBcCkBA
IC05NTEsNiArOTUyLDggQEAgZG9tX2JpbmRpbmdfaWRscyArPSBcCiAJJChXZWJDb3JlKS94bWwv
WFNMVFByb2Nlc3Nvci5pZGwKIAogd2ViY29yZV9zb3VyY2VzICs9IFwKKwlTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmNwcCBcCisJU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZENlbGwuY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZENl
bGwuaCBcCiAJU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdy
aWQuY3BwIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQkocmV2aXNpb24gMTA4NDIwKQorKysgU291cmNlL1dl
YkNvcmUvVGFyZ2V0LnByaQkod29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsOCBAQCBpbmNsdWRl
X3dlYmluc3BlY3RvciB7CiB9CiAKIFNPVVJDRVMgKz0gXAorICAgIE1vZHVsZXMvZ2VvbG9jYXRp
b24vTmF2aWdhdG9yR2VvbG9jYXRpb24uY3BwIFwKKyAgICBcCiAgICAgYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rLmNwcCBcCiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5TWVkaWFDb250cm9scy5jcHAgXAogICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU1lbnVMaXN0LmNwcCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkocmV2aXNpb24gMTA4NDIw
KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4JKHdvcmtpbmcgY29weSkKQEAgLTY3
Miw2ICs2NzIsNyBAQCBfX1pON1dlYkNvcmUyNEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlckQyCiBf
X1pON1dlYkNvcmUyNEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlckMyRVBOU181RnJhbWVFCiBfX1pO
N1dlYkNvcmUyNEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlcjEyb2JzZXJ2ZUZyYW1lRVBOU181RnJh
bWVFCiBfX1pON1dlYkNvcmUyNEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlcjE0ZnJhbWVEZXN0cm95
ZWRFdgorX19aTjdXZWJDb3JlMjRGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIxNHdpbGxEZXRhY2hQ
YWdlRXYKIF9fWk43V2ViQ29yZTI0a2V5SWRlbnRpZmllckZvcktleUV2ZW50RVA3TlNFdmVudAog
X19aTjdXZWJDb3JlMjRub3RpZnlIaXN0b3J5SXRlbUNoYW5nZWRFCiBfX1pON1dlYkNvcmUyNUhp
c3RvcnlQcm9wZXJ0eUxpc3RXcml0ZXIxMXJlbGVhc2VEYXRhRXYKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkJKHJldmlzaW9uIDEwODQyMCkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkod29y
a2luZyBjb3B5KQpAQCAtNzIwLDYgKzcyMCw3IEBACiAgICAgICAgICAgICAnTW9kdWxlcy9nYW1l
cGFkL0dhbWVwYWQuaWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL2dhbWVwYWQvR2FtZXBhZExp
c3QuaWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL2dhbWVwYWQvTmF2aWdhdG9yR2FtZXBhZC5p
ZGwnLAorICAgICAgICAgICAgJ01vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRp
b24uaWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9ET01XaW5kb3dJbmRleGVk
RGF0YWJhc2UuaWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL2ludGVudHMvRE9NV2luZG93SW50
ZW50cy5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW50ZW50cy9JbnRlbnQuaWRsJywKQEAg
LTEyNzcsNiArMTI3OCw4IEBACiAgICAgICAgICAgICAnTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWRM
aXN0LmgnLAogICAgICAgICAgICAgJ01vZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0b3JHYW1lcGFkLmNw
cCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQuaCcsCisg
ICAgICAgICAgICAnTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5jcHAn
LAorICAgICAgICAgICAgJ01vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24u
aCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvRE9NV2luZG93SW5kZXhlZERhdGFi
YXNlLmNwcCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvRE9NV2luZG93SW5kZXhl
ZERhdGFiYXNlLmgnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW50ZW50cy9JbnRlbnQuY3BwJywK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJpCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUucHJpCShyZXZpc2lvbiAxMDg0MjApCisrKyBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnByaQkod29ya2luZyBjb3B5KQpAQCAtMTgsNiArMTgsNyBAQCBXRUJDT1JFX0dFTkVS
QVRFRF9TT1VSQ0VTX0RJUiA9ICQke1JPT1RfCiAKIElOQ0xVREVQQVRIICs9IFwKICAgICAkJFNP
VVJDRV9ESVIgXAorICAgICQkU09VUkNFX0RJUi9Nb2R1bGVzL2dlb2xvY2F0aW9uIFwKICAgICAk
JFNPVVJDRV9ESVIvYWNjZXNzaWJpbGl0eSBcCiAgICAgJCRTT1VSQ0VfRElSL2JpbmRpbmdzIFwK
ICAgICAkJFNPVVJDRV9ESVIvYmluZGluZ3MvZ2VuZXJpYyBcCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0
aW9uLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRp
b24vTmF2aWdhdG9yR2VvbG9jYXRpb24uY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDc3IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICog
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUCisgKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gKKyAq
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTmF2aWdhdG9y
R2VvbG9jYXRpb24uaCIKKworI2luY2x1ZGUgIkdlb2xvY2F0aW9uLmgiCisjaW5jbHVkZSAiTmF2
aWdhdG9yLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworTmF2aWdhdG9yR2VvbG9jYXRpb246
Ok5hdmlnYXRvckdlb2xvY2F0aW9uKEZyYW1lKiBmcmFtZSkKKyAgICA6IERPTVdpbmRvd1Byb3Bl
cnR5KGZyYW1lKQoreworfQorCitOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6fk5hdmlnYXRvckdlb2xv
Y2F0aW9uKCkKK3sKK30KKwordm9pZCBOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6d2lsbERldGFjaFBh
Z2UoKQoreworICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgaWRlYWxseSBhbGxvdyBleGlzdGluZyBH
ZW9sb2NhdGlvbiBhY3Rpdml0aWVzIHRvIGNvbnRpbnVlCisgICAgLy8gd2hlbiB0aGUgR2VvbG9j
YXRpb24ncyBpZnJhbWUgaXMgcmVwYXJlbnRlZC4gKEFzc3VtaW5nIHdlIGNvbnRpbnVlIHRvCisg
ICAgLy8gc3VwcG9ydCByZXBhcmVudGluZyBpZnJhbWVzLikKKyAgICAvLyBTZWUgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU1NTc3CisgICAgLy8gYW5kIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01Mjg3NworICAgIGlmIChtX2dlb2xvY2F0
aW9uKQorICAgICAgICBtX2dlb2xvY2F0aW9uLT5yZXNldCgpOworfQorCitOYXZpZ2F0b3JHZW9s
b2NhdGlvbiogTmF2aWdhdG9yR2VvbG9jYXRpb246OmZyb20oTmF2aWdhdG9yKiBuYXZpZ2F0b3Ip
Cit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgiTmF2aWdh
dG9yR2VvbG9jYXRpb24iKSk7CisgICAgTmF2aWdhdG9yR2VvbG9jYXRpb24qIHN1cHBsZW1lbnQg
PSBzdGF0aWNfY2FzdDxOYXZpZ2F0b3JHZW9sb2NhdGlvbio+KE5hdmlnYXRvclN1cHBsZW1lbnQ6
OmZyb20obmF2aWdhdG9yLCBuYW1lKSk7CisgICAgaWYgKCFzdXBwbGVtZW50KSB7CisgICAgICAg
IHN1cHBsZW1lbnQgPSBuZXcgTmF2aWdhdG9yR2VvbG9jYXRpb24obmF2aWdhdG9yLT5mcmFtZSgp
KTsKKyAgICAgICAgcHJvdmlkZVRvKG5hdmlnYXRvciwgbmFtZSwgYWRvcHRQdHIoc3VwcGxlbWVu
dCkpOworICAgIH0KKyAgICByZXR1cm4gc3VwcGxlbWVudDsKK30KKworR2VvbG9jYXRpb24qIE5h
dmlnYXRvckdlb2xvY2F0aW9uOjpnZW9sb2NhdGlvbihOYXZpZ2F0b3IqIG5hdmlnYXRvcikKK3sK
KyAgICByZXR1cm4gTmF2aWdhdG9yR2VvbG9jYXRpb246OmZyb20obmF2aWdhdG9yKS0+Z2VvbG9j
YXRpb24oKTsKK30KKworR2VvbG9jYXRpb24qIE5hdmlnYXRvckdlb2xvY2F0aW9uOjpnZW9sb2Nh
dGlvbigpIGNvbnN0Cit7CisgICAgaWYgKCFtX2dlb2xvY2F0aW9uKQorICAgICAgICBtX2dlb2xv
Y2F0aW9uID0gR2VvbG9jYXRpb246OmNyZWF0ZShmcmFtZSgpKTsKKyAgICByZXR1cm4gbV9nZW9s
b2NhdGlvbi5nZXQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2Vv
bG9jYXRpb24uaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9j
YXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAqIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAq
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVAorICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNICisg
KiBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBOYXZpZ2F0b3JHZW9sb2NhdGlvbl9oCisjZGVmaW5l
IE5hdmlnYXRvckdlb2xvY2F0aW9uX2gKKworI2luY2x1ZGUgIkRPTVdpbmRvd1Byb3BlcnR5Lmgi
CisjaW5jbHVkZSAiTmF2aWdhdG9yU3VwcGxlbWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIEZyYW1lOworY2xhc3MgR2VvbG9jYXRpb247CitjbGFzcyBOYXZpZ2F0b3I7CisK
K2NsYXNzIE5hdmlnYXRvckdlb2xvY2F0aW9uIDogcHVibGljIE5hdmlnYXRvclN1cHBsZW1lbnQs
IHB1YmxpYyBET01XaW5kb3dQcm9wZXJ0eSB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+TmF2aWdh
dG9yR2VvbG9jYXRpb24oKTsKKyAgICBzdGF0aWMgTmF2aWdhdG9yR2VvbG9jYXRpb24qIGZyb20o
TmF2aWdhdG9yKik7CisKKyAgICBzdGF0aWMgR2VvbG9jYXRpb24qIGdlb2xvY2F0aW9uKE5hdmln
YXRvciopOworICAgIEdlb2xvY2F0aW9uKiBnZW9sb2NhdGlvbigpIGNvbnN0OworCitwcml2YXRl
OgorICAgIE5hdmlnYXRvckdlb2xvY2F0aW9uKEZyYW1lKik7CisKKyAgICB2aXJ0dWFsIHZvaWQg
d2lsbERldGFjaFBhZ2UoKSBPVkVSUklERTsKKworICAgIG11dGFibGUgUmVmUHRyPEdlb2xvY2F0
aW9uPiBtX2dlb2xvY2F0aW9uOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gTmF2aWdhdG9yR2VvbG9jYXRpb25faApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5pZGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5pZGwJ
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL05hdmln
YXRvckdlb2xvY2F0aW9uLmlkbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAq
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCittb2R1
bGUgd2luZG93IHsKKworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPUdFT0xP
Q0FUSU9OLAorICAgICAgICBTdXBwbGVtZW50YWw9TmF2aWdhdG9yCisgICAgXSBOYXZpZ2F0b3JH
ZW9sb2NhdGlvbiB7CisjaWYgIWRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkgfHwgIUxBTkdVQUdF
X0dPQkpFQ1QKKyAgICAgICAgLy8gRklYTUU6IEVuYWJsZSB0aGlzIGludGVyZmFjZSBmb3IgR09C
SkVDVC4KKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIEdl
b2xvY2F0aW9uIGdlb2xvY2F0aW9uOworI2VuZGlmCisgICAgfTsKKworfQpJbmRleDogU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAJKHJldmlzaW9uIDEwODQyMCkKKysrIFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCSh3b3JraW5nIGNvcHkpCkBAIC01Miw2
ICs1Miw3IEBACiAgICAgICAnLi4vJywKICAgICAgICcuLi8uLicsCiAgICAgICAnLi4vTW9kdWxl
cy9nYW1lcGFkJywKKyAgICAgICcuLi9Nb2R1bGVzL2dlb2xvY2F0aW9uJywKICAgICAgICcuLi9N
b2R1bGVzL2ludGVudHMnLAogICAgICAgJy4uL01vZHVsZXMvaW5kZXhlZGRiJywKICAgICAgICcu
Li9hY2Nlc3NpYmlsaXR5JywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCShyZXZpc2lvbiAxMDg0MjApCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtMjQwNTEsNiArMjQw
NTEsMjIgQEAKIAkJCTwvRmlsZT4KIAkJPC9GaWx0ZXI+CiAJCTxGaWx0ZXIKKwkJCU5hbWU9Ik1v
ZHVsZXMiCisJCQk+CisJCQk8RmlsdGVyCisJCQkJTmFtZT0iZ2VvbG9jYXRpb24iCisJCQkJPgor
CQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xnZW9sb2NhdGlvblxOYXZp
Z2F0b3JHZW9sb2NhdGlvbi5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXGdlb2xvY2F0aW9uXE5hdmlnYXRvckdlb2xvY2F0
aW9uLmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQk8L0ZpbHRlcj4KKwkJPC9GaWx0ZXI+CisJ
CTxGaWx0ZXIKIAkJCU5hbWU9ImFjY2Vzc2liaWxpdHkiCiAJCQk+CiAJCQk8RmlsZQpJbmRleDog
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZUNvbW1vbi52c3Byb3BzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmVDb21tb24udnNw
cm9wcwkocmV2aXNpb24gMTA4NDIwKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZUNvbW1vbi52c3Byb3BzCSh3b3JraW5nIGNvcHkpCkBAIC03LDcgKzcsNyBAQAogCT4K
IAk8VG9vbAogCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQlBZGRpdGlvbmFsSW5jbHVkZURp
cmVjdG9yaWVzPSImcXVvdDskKFByb2plY3REaXIpLi4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXGFjY2Vzc2liaWxpdHkmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGFjY2Vzc2liaWxp
dHlcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxicmlkZ2UmcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKS4uXGJyaWRnZVxjJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxicmlkZ2Vc
anNjJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxjc3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKS4uXGVkaXRpbmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGZpbGVhcGkmcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHJlbmRlcmluZyZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
Li5ccmVuZGVyaW5nXG1hdGhtbCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccmVuZGVyaW5n
XHN0eWxlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxyZW5kZXJpbmdcc3ZnJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcikuLlxiaW5kaW5ncyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5c
YmluZGluZ3NcZ2VuZXJpYyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYmluZGluZ3NcanMm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJpbmRpbmdzXGpzXHNwZWNpYWxpemF0aW9uJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxkb20mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4u
XGRvbVxkZWZhdWx0JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxoaXN0b3J5JnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcikuLlxodG1sJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxodG1s
XGNhbnZhcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5caHRtbFxwYXJzZXImcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXGh0bWxcc2hhZG93JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpciku
LlxpbnNwZWN0b3ImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGxvYWRlciZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpLi5cbG9hZGVyXGFwcGNhY2hlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cikuLlxsb2FkZXJcYXJjaGl2ZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbG9hZGVyXGFy
Y2hpdmVcY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGxvYWRlclxjYWNoZSZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpLi5cbG9hZGVyXGljb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXG1hdGhtbCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbm90aWZpY2F0aW9ucyZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGFnZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5c
cGFnZVxhbmltYXRpb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBhZ2Vcc2Nyb2xsaW5n
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwYWdlXHdpbiZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5ccGxhdGZvcm0mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGFu
aW1hdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cbW9jayZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cc3FsJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cikuLlxwbGF0Zm9ybVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXG5l
dHdvcmsmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXG5ldHdvcmtcd2luJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxjZiZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBs
YXRmb3JtXGdyYXBoaWNzXGNhJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxn
cmFwaGljc1xmaWx0ZXJzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFw
aGljc1xmaWx0ZXJzXGFybSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3Jh
cGhpY3Ncb3BlbnR5cGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBo
aWNzXHRyYW5zZm9ybXMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXHRleHQm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXHRleHRcdHJhbnNjb2RlciZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3Ncd2luJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcikuLlx4bWwmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHhtbFxwYXJz
ZXImcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialxXZWJDb3JlXERlcml2
ZWRTb3VyY2VzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbHVnaW5zJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcikuLlxwbHVnaW5zXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5c
c3ZnXGFuaW1hdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cc3ZnXGdyYXBoaWNzJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxzdmdccHJvcGVydGllcyZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpLi5cc3ZnXGdyYXBoaWNzXGZpbHRlcnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXHN2ZyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cdGVzdGluZyZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5cd21sJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxzdG9yYWdlJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlx3ZWJzb2NrZXRzJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcikuLlx3b3JrZXJzJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxpbmNs
dWRlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxpbmNsdWRlXHByaXZhdGUm
cXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXGluY2x1ZGVcSmF2YVNjcmlwdENv
cmUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXGluY2x1ZGVccHJpdmF0ZVxK
YXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cRm9yd2FyZGluZ0hlYWRl
cnMmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGUmcXVvdDs7JnF1b3Q7
JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVccHJpdmF0ZSZxdW90OzsmcXVvdDskKFdlYktp
dExpYnJhcmllc0RpcilcaW5jbHVkZVxwcml2YXRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90
OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXHB0aHJlYWRzJnF1b3Q7OyZxdW90OyQoV2Vi
S2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXHNxbGl0ZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJh
cmllc0RpcilcaW5jbHVkZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJh
cmllc0RpcilcaW5jbHVkZVx6bGliJnF1b3Q7IgorCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9y
aWVzPSImcXVvdDskKFByb2plY3REaXIpLi4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXE1v
ZHVsZXNcZ2VvbG9jYXRpb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGFjY2Vzc2liaWxp
dHkmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGFjY2Vzc2liaWxpdHlcd2luJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcikuLlxicmlkZ2UmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJy
aWRnZVxjJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxicmlkZ2VcanNjJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcikuLlxjc3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGVkaXRpbmcm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGZpbGVhcGkmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKS4uXHJlbmRlcmluZyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccmVuZGVyaW5nXG1h
dGhtbCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccmVuZGVyaW5nXHN0eWxlJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcikuLlxyZW5kZXJpbmdcc3ZnJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cikuLlxiaW5kaW5ncyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYmluZGluZ3NcZ2VuZXJp
YyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYmluZGluZ3NcanMmcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKS4uXGJpbmRpbmdzXGpzXHNwZWNpYWxpemF0aW9uJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxkb20mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGRvbVxkZWZhdWx0JnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxoaXN0b3J5JnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cikuLlxodG1sJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxodG1sXGNhbnZhcyZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpLi5caHRtbFxwYXJzZXImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXGh0bWxcc2hhZG93JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxpbnNwZWN0b3ImcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGxvYWRlciZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
Li5cbG9hZGVyXGFwcGNhY2hlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxsb2FkZXJcYXJj
aGl2ZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbG9hZGVyXGFyY2hpdmVcY2YmcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGxvYWRlclxjYWNoZSZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpLi5cbG9hZGVyXGljb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXG1hdGhtbCZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpLi5cbm90aWZpY2F0aW9ucyZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5ccGFnZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGFnZVxhbmltYXRpb24m
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBhZ2Vcc2Nyb2xsaW5nJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcikuLlxwYWdlXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZv
cm0mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGFuaW1hdGlvbiZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cbW9jayZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpLi5ccGxhdGZvcm1cc3FsJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVx3
aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXG5ldHdvcmsmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXG5ldHdvcmtcd2luJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxwbGF0Zm9ybVxjZiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZv
cm1cZ3JhcGhpY3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNz
XGNhJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1xmaWx0ZXJz
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1xmaWx0ZXJzXGFy
bSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3Ncb3BlbnR5cGUm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzXHRyYW5zZm9ybXMm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXHRleHQmcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKS4uXHBsYXRmb3JtXHRleHRcdHJhbnNjb2RlciZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3Ncd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpciku
Llx4bWwmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHhtbFxwYXJzZXImcXVvdDs7JnF1b3Q7
JChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialxXZWJDb3JlXERlcml2ZWRTb3VyY2VzJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcikuLlxwbHVnaW5zJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpciku
LlxwbHVnaW5zXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cc3ZnXGFuaW1hdGlvbiZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cc3ZnXGdyYXBoaWNzJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxzdmdccHJvcGVydGllcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cc3Zn
XGdyYXBoaWNzXGZpbHRlcnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2ZyZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpLi5cdGVzdGluZyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5c
d21sJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxzdG9yYWdlJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlx3ZWJzb2NrZXRzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlx3b3JrZXJz
JnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxpbmNsdWRlJnF1b3Q7OyZxdW90
OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxpbmNsdWRlXHByaXZhdGUmcXVvdDs7JnF1b3Q7JChD
b25maWd1cmF0aW9uQnVpbGREaXIpXGluY2x1ZGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7
JChDb25maWd1cmF0aW9uQnVpbGREaXIpXGluY2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0Q29yZSZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cRm9yd2FyZGluZ0hlYWRlcnMmcXVvdDs7JnF1b3Q7
JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJp
ZXNEaXIpXGluY2x1ZGVccHJpdmF0ZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0Rpcilc
aW5jbHVkZVxwcml2YXRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFy
aWVzRGlyKVxpbmNsdWRlXHB0aHJlYWRzJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGly
KVxpbmNsdWRlXHNxbGl0ZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVk
ZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVk
ZVx6bGliJnF1b3Q7IgogCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iX19XSU4zMl9fO0RJU0FC
TEVfM0RfUkVOREVSSU5HO1dFQkNPUkVfQ09OVEVYVF9NRU5VUyIKIAkJVXNlUHJlY29tcGlsZWRI
ZWFkZXI9IjIiCiAJCVByZWNvbXBpbGVkSGVhZGVyVGhyb3VnaD0iV2ViQ29yZVByZWZpeC5oIgpJ
bmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkocmV2aXNpb24gMTA4NDIwKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0zMzIzLDYgKzMzMjMsOCBAQAog
CQk5NzA1OTk3QTEwN0Q5NzUyMDBBNTBBN0MgLyogUG9saWN5Q2hlY2tlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcwNTk5NzYxMDdEOTc1MjAwQTUw
QTdDIC8qIFBvbGljeUNoZWNrZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk5NzBCNzI4QTE0NEZGQUM2MDBGMDBBMzcgLyogRXZlbnRJbnRlcmZh
Y2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzBC
NzI4OTE0NEZGQUM2MDBGMDBBMzcgLyogRXZlbnRJbnRlcmZhY2VzLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTcwQjcyQTYxNDUwMDhFQjAwRjAw
QTM3IC8qIEV2ZW50SGVhZGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTcwQjcyQTUxNDUwMDhFQjAwRjAwQTM3IC8qIEV2ZW50SGVhZGVycy5oICov
OyB9OworCQk5NzExNDYwMzE0RUYwMDlBMDA2NzRGRDkgLyogTmF2aWdhdG9yR2VvbG9jYXRpb24u
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcxMTQ2
MDAxNEVGMDA5QTAwNjc0RkQ5IC8qIE5hdmlnYXRvckdlb2xvY2F0aW9uLmNwcCAqLzsgfTsKKwkJ
OTcxMTQ2MDQxNEVGMDA5QTAwNjc0RkQ5IC8qIE5hdmlnYXRvckdlb2xvY2F0aW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzExNDYwMTE0RUYwMDlB
MDA2NzRGRDkgLyogTmF2aWdhdG9yR2VvbG9jYXRpb24uaCAqLzsgfTsKIAkJOTcyMDVBQUYxMjM5
MjhDQTAwQjE3MzgwIC8qIEZUUERpcmVjdG9yeURvY3VtZW50LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MjA1QUFEMTIzOTI4Q0EwMEIxNzM4MCAv
KiBGVFBEaXJlY3RvcnlEb2N1bWVudC5jcHAgKi87IH07CiAJCTk3MjA1QUIwMTIzOTI4Q0EwMEIx
NzM4MCAvKiBGVFBEaXJlY3RvcnlEb2N1bWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTcyMDVBQUUxMjM5MjhDQTAwQjE3MzgwIC8qIEZUUERpcmVj
dG9yeURvY3VtZW50LmggKi87IH07CiAJCTk3MjA1QUI1MTIzOTI5MTAwMEIxNzM4MCAvKiBJbWFn
ZURvY3VtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk3MjA1QUIxMTIzOTI5MTAwMEIxNzM4MCAvKiBJbWFnZURvY3VtZW50LmNwcCAqLzsgfTsK
QEAgLTEwMTg0LDYgKzEwMTg2LDkgQEAKIAkJOTcwNTk5NzYxMDdEOTc1MjAwQTUwQTdDIC8qIFBv
bGljeUNoZWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUG9saWN5Q2hl
Y2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzBCNzI4OTE0NEZGQUM2MDBG
MDBBMzcgLyogRXZlbnRJbnRlcmZhY2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEV2ZW50SW50ZXJmYWNlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzBC
NzJBNTE0NTAwOEVCMDBGMDBBMzcgLyogRXZlbnRIZWFkZXJzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEV2ZW50SGVhZGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk5NzExNDYwMDE0RUYwMDlBMDA2NzRGRDkgLyogTmF2aWdhdG9yR2VvbG9jYXRpb24uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTmF2aWdhdG9yR2VvbG9jYXRp
b24uY3BwOyBwYXRoID0gTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk3MTE0NjAxMTRFRjAwOUEwMDY3NEZE
OSAvKiBOYXZpZ2F0b3JHZW9sb2NhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBOYXZpZ2F0b3JHZW9sb2NhdGlvbi5oOyBwYXRoID0gTW9kdWxlcy9nZW9sb2NhdGlvbi9O
YXZpZ2F0b3JHZW9sb2NhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NzEx
NDYwMjE0RUYwMDlBMDA2NzRGRDkgLyogTmF2aWdhdG9yR2VvbG9jYXRpb24uaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgbmFtZSA9IE5hdmlnYXRvckdlb2xvY2F0aW9uLmlkbDsgcGF0aCA9IE1vZHVsZXMv
Z2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5NzIwNUFBRDEyMzkyOENBMDBCMTczODAgLyogRlRQRGlyZWN0b3J5RG9jdW1l
bnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRlRQRGlyZWN0b3J5
RG9jdW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzIwNUFBRTEyMzky
OENBMDBCMTczODAgLyogRlRQRGlyZWN0b3J5RG9jdW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRlRQRGlyZWN0b3J5RG9jdW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTcyMDVBQjExMjM5MjkxMDAwQjE3MzgwIC8qIEltYWdlRG9jdW1lbnQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW1hZ2VEb2N1bWVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzQ1OCw2ICsxMzQ2Myw3IEBACiAJCQkJ
RURFQzk4MDIwQUVEN0UxNzAwNTkxMzdGIC8qIFdlYkNvcmVQcmVmaXguaCAqLywKIAkJCQk5MzA3
MDYxMzA5RTBDQTgyMDBCMTdGRTQgLyogRGVyaXZlZFNvdXJjZXMubWFrZSAqLywKIAkJCQk5M0Yx
OUIxOTA4MjQ1RTU5MDAxRTlBQkMgLyogSW5mby5wbGlzdCAqLywKKwkJCQk5NzExNDVGRTE0RUYw
MDZFMDA2NzRGRDkgLyogTW9kdWxlcyAqLywKIAkJCQkyOUE4MTIwNDBGQkI5QjQxMDA1MTAyOTMg
LyogYWNjZXNzaWJpbGl0eSAqLywKIAkJCQlCQzFBMzc5MDA5N0M2Rjk3MDAxOUYzRDggLyogYmlu
ZGluZ3MgKi8sCiAJCQkJMUE1NjlDQzQwRDdFMkI2MDAwN0MzOTgzIC8qIGJyaWRnZSAqLywKQEAg
LTE3MDc2LDYgKzE3MDgyLDI0IEBACiAJCQl0YWJXaWR0aCA9IDQ7CiAJCQl1c2VzVGFicyA9IDA7
CiAJCX07CisJCTk3MTE0NUZFMTRFRjAwNkUwMDY3NEZEOSAvKiBNb2R1bGVzICovID0geworCQkJ
aXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk5NzExNDVGRjE0RUYwMDc5MDA2
NzRGRDkgLyogZ2VvbG9jYXRpb24gKi8sCisJCQkpOworCQkJbmFtZSA9IE1vZHVsZXM7CisJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQk5NzExNDVGRjE0RUYwMDc5MDA2NzRGRDkg
LyogZ2VvbG9jYXRpb24gKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0g
KAorCQkJCTk3MTE0NjAwMTRFRjAwOUEwMDY3NEZEOSAvKiBOYXZpZ2F0b3JHZW9sb2NhdGlvbi5j
cHAgKi8sCisJCQkJOTcxMTQ2MDExNEVGMDA5QTAwNjc0RkQ5IC8qIE5hdmlnYXRvckdlb2xvY2F0
aW9uLmggKi8sCisJCQkJOTcxMTQ2MDIxNEVGMDA5QTAwNjc0RkQ5IC8qIE5hdmlnYXRvckdlb2xv
Y2F0aW9uLmlkbCAqLywKKwkJCSk7CisJCQluYW1lID0gZ2VvbG9jYXRpb247CisJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOworCQl9OwogCQk5NzZENkM1NzEyMkI4QTE4MDAxRkQxRjcgLyogZmls
ZWFwaSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0yMzI4
Miw2ICsyMzMwNiw3IEBACiAJCQkJOTc5RjQzRDQxMDc1RTQ0QTAwMDBGODNCIC8qIE5hdmlnYXRp
b25TY2hlZHVsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE5QzZFNUE2MEQ3NDY0NTgwMDY0NDJF
OSAvKiBOYXZpZ2F0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxMjcxOUM3MEVFRUMxNjgwMEY2
MTIxMyAvKiBOYXZpZ2F0b3JCYXNlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5NzExNDYwNDE0RUYw
MDlBMDA2NzRGRDkgLyogTmF2aWdhdG9yR2VvbG9jYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJ
CTk3Q0MzQUUzMTRFOEU0QTIwMDg5NDk4OCAvKiBOYXZpZ2F0b3JTdXBwbGVtZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk4QTMwOUM5RjEyMzk1MEJFMDBDQjkyMDQgLyogTmVzdGluZ0xldmVsSW5j
cmVtZW50ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NkQzNzQzMEFEQkE1REUwMEE0NTU0RCAv
KiBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjQzNiw2
ICsyNjQ2MSw3IEBACiAJCQkJOTc5RjQzRDMxMDc1RTQ0QTAwMDBGODNCIC8qIE5hdmlnYXRpb25T
Y2hlZHVsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTlDNkU1QTUwRDc0NjQ1ODAwNjQ0MkU5
IC8qIE5hdmlnYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMTI3MTlDQTBFRUVDMjEzMDBG
NjEyMTMgLyogTmF2aWdhdG9yQmFzZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5NzExNDYwMzE0
RUYwMDlBMDA2NzRGRDkgLyogTmF2aWdhdG9yR2VvbG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJOTdDQzNBRTIxNEU4RTRBMjAwODk0OTg4IC8qIE5hdmlnYXRvclN1cHBsZW1lbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNUQ4NzRGMTMwRDE2MUQzMjAwNzk2QzNCIC8qIE5ldHNjYXBl
UGx1Z0luU3RyZWFtTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU5QzI3RjA1MTM4RDI4
QzEwMDc5QjdFMiAvKiBOZXR3b3JrUmVzb3VyY2VzRGF0YS5jcHAgaW4gU291cmNlcyAqLywKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3Qu
cG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yR09iamVjdC5wbQkocmV2aXNpb24gMTA4NDIwKQorKysgU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQkod29ya2luZyBjb3B5KQpAQCAt
NDE4LDcgKzQxOCw3IEBAIHN1YiBHZW5lcmF0ZVByb3BlcnR5IHsKICAgICAgICAgcHVzaChAdHh0
R2V0UHJvcHMsICIgICAgICAgIGdfdmFsdWVfdGFrZV9zdHJpbmcodmFsdWUsIGNvbnZlcnRUb1VU
RjhTdHJpbmcoJHtnZXR0ZXJGdW5jdGlvbk5hbWV9KCIgLiBqb2luKCIsICIsIEBnZXR0ZXJBcmd1
bWVudHMpIC4gIikpKTtcbiIpOwogICAgICAgICAkZG9uZSA9IDE7CiAgICAgfSBlbHNpZiAoJGd0
eXBlIGVxICJvYmplY3QiKSB7Ci0gICAgICAgIHB1c2goQHR4dEdldFByb3BzLCAiICAgICAgICBS
ZWZQdHI8V2ViQ29yZTo6JHtwcm9wVHlwZX0+IHB0ciA9IGNvcmVTZWxmLT4ke2dldFByb3BOYW1l
RnVuY3Rpb259KCIgLiAoQHskYXR0cmlidXRlLT5nZXR0ZXJFeGNlcHRpb25zfSA/ICJlYyIgOiAi
IikgLiAiKTtcbiIpOworICAgICAgICBwdXNoKEB0eHRHZXRQcm9wcywgIiAgICAgICAgUmVmUHRy
PFdlYkNvcmU6OiR7cHJvcFR5cGV9PiBwdHIgPSAke2dldHRlckZ1bmN0aW9uTmFtZX0oIiAuIGpv
aW4oIiwgIiwgQGdldHRlckFyZ3VtZW50cykgLiAiKTtcbiIpOwogICAgICAgICBwdXNoKEB0eHRH
ZXRQcm9wcywgIiAgICAgICAgZ192YWx1ZV9zZXRfb2JqZWN0KHZhbHVlLCBXZWJLaXQ6OmtpdChw
dHIuZ2V0KCkpKTtcbiIpOwogICAgICAgICAkZG9uZSA9IDE7CiAgICAgfQpJbmRleDogU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RTdXBwbGVtZW50YWwuaWRsCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0U3VwcGxl
bWVudGFsLmlkbAkocmV2aXNpb24gMTA4NDIwKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Rlc3RTdXBwbGVtZW50YWwuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2
ICszNiw3IEBAIG1vZHVsZSB0ZXN0IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0
cmluZyBzdXBwbGVtZW50YWxTdHIxOwogICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIHN1cHBs
ZW1lbnRhbFN0cjI7CiAgICAgICAgIGF0dHJpYnV0ZSBbQ3VzdG9tR2V0dGVyLCBDdXN0b21TZXR0
ZXJdIERPTVN0cmluZyBzdXBwbGVtZW50YWxTdHIzOworICAgICAgICBhdHRyaWJ1dGUgTm9kZSBz
dXBwbGVtZW50YWxOb2RlOwogCiAgICAgICAgIHZvaWQgc3VwcGxlbWVudGFsTWV0aG9kMSgpOwog
ICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gVGVzdE9iaiBzdXBwbGVt
ZW50YWxNZXRob2QyKGluIERPTVN0cmluZyBzdHJBcmcsIGluIFRlc3RPYmogb2JqQXJnKSByYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9DUFAvV2ViRE9NVGVzdEludGVyZmFjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0SW50ZXJmYWNlLmNwcAko
cmV2aXNpb24gMTA4NDIwKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0NQUC9XZWJET01UZXN0SW50ZXJmYWNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUsOCArMjUs
MTAgQEAKICNpbmNsdWRlICJXZWJET01UZXN0SW50ZXJmYWNlLmgiCiAKICNpbmNsdWRlICJLVVJM
LmgiCisjaW5jbHVkZSAiTm9kZS5oIgogI2luY2x1ZGUgIlRlc3RJbnRlcmZhY2UuaCIKICNpbmNs
dWRlICJUZXN0U3VwcGxlbWVudGFsLmgiCisjaW5jbHVkZSAiV2ViRE9NTm9kZS5oIgogI2luY2x1
ZGUgIldlYkRPTVN0cmluZy5oIgogI2luY2x1ZGUgIldlYkV4Y2VwdGlvbkhhbmRsZXIuaCIKICNp
bmNsdWRlICJ3dGYvdGV4dC9BdG9taWNTdHJpbmcuaCIKQEAgLTEwNiw2ICsxMDgsMjQgQEAgdm9p
ZCBXZWJET01UZXN0SW50ZXJmYWNlOjpzZXRTdXBwbGVtZW50YQogfQogCiAjZW5kaWYKKyNpZiBF
TkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKK1dlYkRPTU5vZGUgV2Vi
RE9NVGVzdEludGVyZmFjZTo6c3VwcGxlbWVudGFsTm9kZSgpIGNvbnN0Cit7CisgICAgaWYgKCFp
bXBsKCkpCisgICAgICAgIHJldHVybiBXZWJET01Ob2RlKCk7CisKKyAgICByZXR1cm4gdG9XZWJL
aXQoV1RGOjpnZXRQdHIoVGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsTm9kZShpbXBsKCkp
KSk7Cit9CisKK3ZvaWQgV2ViRE9NVGVzdEludGVyZmFjZTo6c2V0U3VwcGxlbWVudGFsTm9kZShj
b25zdCBXZWJET01Ob2RlJiBuZXdTdXBwbGVtZW50YWxOb2RlKQoreworICAgIGlmICghaW1wbCgp
KQorICAgICAgICByZXR1cm47CisKKyAgICBUZXN0U3VwcGxlbWVudGFsOjpzZXRTdXBwbGVtZW50
YWxOb2RlKGltcGwoKSwgdG9XZWJDb3JlKG5ld1N1cHBsZW1lbnRhbE5vZGUpKTsKK30KKworI2Vu
ZGlmCiAKICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKIHZv
aWQgV2ViRE9NVGVzdEludGVyZmFjZTo6c3VwcGxlbWVudGFsTWV0aG9kMSgpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RJbnRlcmZhY2Uu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQ
L1dlYkRPTVRlc3RJbnRlcmZhY2UuaAkocmV2aXNpb24gMTA4NDIwKQorKysgU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0SW50ZXJmYWNlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgVGVz
dEludGVyZmFjZTsKIH07CiAKK2NsYXNzIFdlYkRPTU5vZGU7CiAKIGNsYXNzIFdlYkRPTVRlc3RJ
bnRlcmZhY2UgOiBwdWJsaWMgV2ViRE9NT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTU4LDYgKzU5LDEw
IEBAIHB1YmxpYzoKICAgICBXZWJET01TdHJpbmcgc3VwcGxlbWVudGFsU3RyMigpIGNvbnN0Owog
ICAgIHZvaWQgc2V0U3VwcGxlbWVudGFsU3RyMihjb25zdCBXZWJET01TdHJpbmcmKTsKICNlbmRp
ZgorI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQorICAgIFdl
YkRPTU5vZGUgc3VwcGxlbWVudGFsTm9kZSgpIGNvbnN0OworICAgIHZvaWQgc2V0U3VwcGxlbWVu
dGFsTm9kZShjb25zdCBXZWJET01Ob2RlJik7CisjZW5kaWYKIAogICAgIHZvaWQgc3VwcGxlbWVu
dGFsTWV0aG9kMSgpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvR09iamVjdC9XZWJLaXRET01UZXN0SW50ZXJmYWNlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0SW50
ZXJmYWNlLmNwcAkocmV2aXNpb24gMTA4NDIwKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdEludGVyZmFjZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI4LDExICsyOCwxNCBAQAogI2luY2x1ZGUgIkRPTU9iamVjdENhY2hlLmgiCiAj
aW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkpTTWFpblRocmVhZEV4ZWNTdGF0
ZS5oIgorI2luY2x1ZGUgIk5vZGUuaCIKICNpbmNsdWRlICJUZXN0SW50ZXJmYWNlLmgiCiAjaW5j
bHVkZSAiVGVzdE9iai5oIgogI2luY2x1ZGUgIlRlc3RTdXBwbGVtZW50YWwuaCIKICNpbmNsdWRl
ICJXZWJLaXRET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiZ29iamVjdC9Db252ZXJ0VG9VVEY4U3Ry
aW5nLmgiCisjaW5jbHVkZSAid2Via2l0L1dlYktpdERPTU5vZGUuaCIKKyNpbmNsdWRlICJ3ZWJr
aXQvV2ViS2l0RE9NTm9kZVByaXZhdGUuaCIKICNpbmNsdWRlICJ3ZWJraXQvV2ViS2l0RE9NVGVz
dEludGVyZmFjZS5oIgogI2luY2x1ZGUgIndlYmtpdC9XZWJLaXRET01UZXN0SW50ZXJmYWNlUHJp
dmF0ZS5oIgogI2luY2x1ZGUgIndlYmtpdC9XZWJLaXRET01UZXN0T2JqLmgiCkBAIC0xMzUsNiAr
MTM4LDM4IEBAIHdlYmtpdF9kb21fdGVzdF9pbnRlcmZhY2Vfc2V0X3N1cHBsZW1lbnQKICNlbmRp
ZiAvKiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikgKi8KIH0KIAor
V2ViS2l0RE9NTm9kZSoKK3dlYmtpdF9kb21fdGVzdF9pbnRlcmZhY2VfZ2V0X3N1cHBsZW1lbnRh
bF9ub2RlKFdlYktpdERPTVRlc3RJbnRlcmZhY2UqIHNlbGYpCit7CisjaWYgRU5BQkxFKENvbmRp
dGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwo
c2VsZiwgMCk7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAg
IFdlYkNvcmU6OlRlc3RJbnRlcmZhY2UgKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAg
IFBhc3NSZWZQdHI8V2ViQ29yZTo6Tm9kZT4gZ19yZXMgPSBXVEY6OmdldFB0cihUZXN0U3VwcGxl
bWVudGFsOjpzdXBwbGVtZW50YWxOb2RlKGl0ZW0pKTsKKyAgICBXZWJLaXRET01Ob2RlKiByZXMg
PSBXZWJLaXQ6OmtpdChnX3Jlcy5nZXQoKSk7CisgICAgcmV0dXJuIHJlczsKKyNlbHNlCisgICAg
cmV0dXJuIE5VTEw7CisjZW5kaWYgLyogRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29u
ZGl0aW9uMTIpICovCit9CisKK3ZvaWQKK3dlYmtpdF9kb21fdGVzdF9pbnRlcmZhY2Vfc2V0X3N1
cHBsZW1lbnRhbF9ub2RlKFdlYktpdERPTVRlc3RJbnRlcmZhY2UqIHNlbGYsIFdlYktpdERPTU5v
ZGUqIHZhbHVlKQoreworI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlv
bjEyKQorICAgIGdfcmV0dXJuX2lmX2ZhaWwoc2VsZik7CisgICAgV2ViQ29yZTo6SlNNYWluVGhy
ZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIFdlYkNvcmU6OlRlc3RJbnRlcmZhY2UgKiBpdGVtID0g
V2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwodmFsdWUpOworICAgIFdl
YkNvcmU6Ok5vZGUgKiBjb252ZXJ0ZWRfdmFsdWUgPSBOVUxMOworICAgIGlmICh2YWx1ZSAhPSBO
VUxMKSB7CisgICAgICAgIGNvbnZlcnRlZF92YWx1ZSA9IFdlYktpdDo6Y29yZSh2YWx1ZSk7Cisg
ICAgICAgIGdfcmV0dXJuX2lmX2ZhaWwoY29udmVydGVkX3ZhbHVlKTsKKyAgICB9CisgICAgVGVz
dFN1cHBsZW1lbnRhbDo6c2V0U3VwcGxlbWVudGFsTm9kZShpdGVtLCBjb252ZXJ0ZWRfdmFsdWUp
OworI2VuZGlmIC8qIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKSAq
LworfQorCiAKIEdfREVGSU5FX1RZUEUoV2ViS2l0RE9NVGVzdEludGVyZmFjZSwgd2Via2l0X2Rv
bV90ZXN0X2ludGVyZmFjZSwgV0VCS0lUX1RZUEVfRE9NX09CSkVDVCkKIApAQCAtMTU5LDYgKzE5
NCw5IEBAIGVudW0gewogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlv
bjEyKQogICAgIFBST1BfU1VQUExFTUVOVEFMX1NUUjIsCiAjZW5kaWYgLyogRU5BQkxFKENvbmRp
dGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpICovCisjaWYgRU5BQkxFKENvbmRpdGlvbjEx
KSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCisgICAgUFJPUF9TVVBQTEVNRU5UQUxfTk9ERSwKKyNl
bmRpZiAvKiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikgKi8KIH07
CiAKIApAQCAtMjE4LDYgKzI1NiwxNCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX3Rlc3RfaW50
ZXJmYWNlX2dlCiAgICAgICAgIGJyZWFrOwogICAgIH0KICNlbmRpZiAvKiBFTkFCTEUoQ29uZGl0
aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikgKi8KKyNpZiBFTkFCTEUoQ29uZGl0aW9uMTEp
IHx8IEVOQUJMRShDb25kaXRpb24xMikKKyAgICBjYXNlIFBST1BfU1VQUExFTUVOVEFMX05PREU6
CisgICAgeworICAgICAgICBSZWZQdHI8V2ViQ29yZTo6Tm9kZT4gcHRyID0gVGVzdFN1cHBsZW1l
bnRhbDo6c3VwcGxlbWVudGFsTm9kZShjb3JlU2VsZik7CisgICAgICAgIGdfdmFsdWVfc2V0X29i
amVjdCh2YWx1ZSwgV2ViS2l0OjpraXQocHRyLmdldCgpKSk7CisgICAgICAgIGJyZWFrOworICAg
IH0KKyNlbmRpZiAvKiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikg
Ki8KICAgICBkZWZhdWx0OgogICAgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlf
SUQob2JqZWN0LCBwcm9wX2lkLCBwc3BlYyk7CiAgICAgICAgIGJyZWFrOwpAQCAtMjU4LDYgKzMw
NCwxNSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX3Rlc3RfaW50ZXJmYWNlX2NsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiLCAv
KiBkZWZhdWx0ICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEV1JJVEUpKTsKICNlbmRpZiAvKiBFTkFC
TEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikgKi8KKyNpZiBFTkFCTEUoQ29u
ZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKKyAgICBnX29iamVjdF9jbGFzc19pbnN0
YWxsX3Byb3BlcnR5KGdvYmplY3RDbGFzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFBST1BfU1VQUExFTUVOVEFMX05PREUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBnX3BhcmFtX3NwZWNfb2JqZWN0KCJzdXBwbGVtZW50YWwtbm9kZSIsIC8qIG5h
bWUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgInRlc3RfaW50ZXJmYWNlX3N1cHBsZW1lbnRhbC1ub2RlIiwgLyogc2hvcnQgZGVz
Y3JpcHRpb24gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgInJlYWQtd3JpdGUgIFdlYktpdERPTU5vZGUqIFRlc3RJbnRlcmZhY2Uu
c3VwcGxlbWVudGFsLW5vZGUiLCAvKiBsb25nZXIgLSBjb3VsZCBkbyB3aXRoIHNvbWUgZXh0cmEg
ZG9jIHN0dWZmIGhlcmUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgV0VCS0lUX1RZUEVfRE9NX05PREUsIC8qIGdvYmplY3QgdHlw
ZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBXRUJLSVRfUEFSQU1fUkVBRFdSSVRFKSk7CisjZW5kaWYgLyogRU5BQkxFKENvbmRp
dGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpICovCiAKIAogfQpJbmRleDogU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdEludGVyZmFj
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9H
T2JqZWN0L1dlYktpdERPTVRlc3RJbnRlcmZhY2UuaAkocmV2aXNpb24gMTA4NDIwKQorKysgU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdElu
dGVyZmFjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDAsNiArMTAwLDI3IEBAIHdlYmtpdF9kb21f
dGVzdF9pbnRlcmZhY2VfZ2V0X3N1cHBsZW1lbnQKIFdFQktJVF9BUEkgdm9pZAogd2Via2l0X2Rv
bV90ZXN0X2ludGVyZmFjZV9zZXRfc3VwcGxlbWVudGFsX3N0cjIoV2ViS2l0RE9NVGVzdEludGVy
ZmFjZSogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAorLyoqCisgKiB3ZWJraXRfZG9tX3Rl
c3RfaW50ZXJmYWNlX2dldF9zdXBwbGVtZW50YWxfbm9kZToKKyAqIEBzZWxmOiBBICNXZWJLaXRE
T01UZXN0SW50ZXJmYWNlCisgKgorICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOgorICoKKyoq
LworV0VCS0lUX0FQSSBXZWJLaXRET01Ob2RlKgord2Via2l0X2RvbV90ZXN0X2ludGVyZmFjZV9n
ZXRfc3VwcGxlbWVudGFsX25vZGUoV2ViS2l0RE9NVGVzdEludGVyZmFjZSogc2VsZik7CisKKy8q
KgorICogd2Via2l0X2RvbV90ZXN0X2ludGVyZmFjZV9zZXRfc3VwcGxlbWVudGFsX25vZGU6Cisg
KiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdEludGVyZmFjZQorICogQHZhbHVlOiBBICNXZWJLaXRE
T01Ob2RlCisgKgorICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOgorICoKKyoqLworV0VCS0lU
X0FQSSB2b2lkCit3ZWJraXRfZG9tX3Rlc3RfaW50ZXJmYWNlX3NldF9zdXBwbGVtZW50YWxfbm9k
ZShXZWJLaXRET01UZXN0SW50ZXJmYWNlKiBzZWxmLCBXZWJLaXRET01Ob2RlKiB2YWx1ZSk7CisK
IEdfRU5EX0RFQ0xTCiAKICNlbmRpZiAvKiBXZWJLaXRET01UZXN0SW50ZXJmYWNlX2ggKi8KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZh
Y2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCShyZXZpc2lvbiAxMDg0MjApCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzUsMTAgKzM1LDE1IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogCiAj
aWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCisjaW5jbHVkZSAi
SlNOb2RlLmgiCiAjaW5jbHVkZSAiS1VSTC5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNTdHJpbmcu
aD4KICNlbmRpZgogCisjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9u
MTIpCisjaW5jbHVkZSAiTm9kZS5oIgorI2VuZGlmCisKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTU3LDExICs2MiwxNCBAQCBzdGF0aWMgY29uc3QgSGFz
aFRhYmxlVmFsdWUgSlNUZXN0SW50ZXJmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFC
TEUoQ29uZGl0aW9uMTIpCiAgICAgeyAic3VwcGxlbWVudGFsU3RyMyIsIERvbnREZWxldGUsIChp
bnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0SW50
ZXJmYWNlU3VwcGxlbWVudGFsU3RyMyksIChpbnRwdHJfdClzZXRKU1Rlc3RJbnRlcmZhY2VTdXBw
bGVtZW50YWxTdHIzLCBOb0ludHJpbnNpYyB9LAogI2VuZGlmCisjaWYgRU5BQkxFKENvbmRpdGlv
bjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCisgICAgeyAic3VwcGxlbWVudGFsTm9kZSIsIERv
bnREZWxldGUsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVu
Yz4oanNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsTm9kZSksIChpbnRwdHJfdClzZXRKU1Rlc3RJ
bnRlcmZhY2VTdXBwbGVtZW50YWxOb2RlLCBOb0ludHJpbnNpYyB9LAorI2VuZGlmCiAgICAgeyAi
Y29uc3RydWN0b3IiLCBEb250RW51bSB8IFJlYWRPbmx5LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yKSwg
KGludHB0cl90KTAsIE5vSW50cmluc2ljIH0sCiAgICAgeyAwLCAwLCAwLCAwLCBOb0ludHJpbnNp
YyB9CiB9OwogCi1zdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTVGVzdEludGVyZmFjZVRhYmxlID0g
eyA5LCA3LCBKU1Rlc3RJbnRlcmZhY2VUYWJsZVZhbHVlcywgMCB9Oworc3RhdGljIGNvbnN0IEhh
c2hUYWJsZSBKU1Rlc3RJbnRlcmZhY2VUYWJsZSA9IHsgMTYsIDE1LCBKU1Rlc3RJbnRlcmZhY2VU
YWJsZVZhbHVlcywgMCB9OwogLyogSGFzaCB0YWJsZSBmb3IgY29uc3RydWN0b3IgKi8KIAogc3Rh
dGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yVGFibGVW
YWx1ZXNbXSA9CkBAIC0yNTcsNiArMjY1LDE4IEBAIEpTVmFsdWUganNUZXN0SW50ZXJmYWNlU3Vw
cGxlbWVudGFsU3RyMygKIAogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVO
QUJMRShDb25kaXRpb24xMikKK0pTVmFsdWUganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsTm9k
ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50aWZpZXImKQor
eworICAgIEpTVGVzdEludGVyZmFjZSogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdElu
dGVyZmFjZSo+KGFzT2JqZWN0KHNsb3RCYXNlKSk7CisgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwor
ICAgIFRlc3RJbnRlcmZhY2UqIGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0SW50ZXJmYWNlKj4oY2Fz
dGVkVGhpcy0+aW1wbCgpKTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IHRvSlMoZXhlYywgY2FzdGVk
VGhpcy0+Z2xvYmFsT2JqZWN0KCksIFdURjo6Z2V0UHRyKFRlc3RTdXBwbGVtZW50YWw6OnN1cHBs
ZW1lbnRhbE5vZGUoaW1wbCkpKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCisjZW5kaWYKKwog
SlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFs
dWUgc2xvdEJhc2UsIGNvbnN0IElkZW50aWZpZXImKQogewogICAgIEpTVGVzdEludGVyZmFjZSog
ZG9tT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNUZXN0SW50ZXJmYWNlKj4oYXNPYmplY3Qoc2xvdEJh
c2UpKTsKQEAgLTI5MCw2ICszMTAsMTYgQEAgdm9pZCBzZXRKU1Rlc3RJbnRlcmZhY2VTdXBwbGVt
ZW50YWxTdHIzKAogCiAjZW5kaWYKIAorI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxF
KENvbmRpdGlvbjEyKQordm9pZCBzZXRKU1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxOb2RlKEV4
ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCit7Cisg
ICAgSlNUZXN0SW50ZXJmYWNlKiBjYXN0ZWRUaGlzID0gc3RhdGljX2Nhc3Q8SlNUZXN0SW50ZXJm
YWNlKj4odGhpc09iamVjdCk7CisgICAgVGVzdEludGVyZmFjZSogaW1wbCA9IHN0YXRpY19jYXN0
PFRlc3RJbnRlcmZhY2UqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOworICAgIFRlc3RTdXBwbGVtZW50
YWw6OnNldFN1cHBsZW1lbnRhbE5vZGUoaW1wbCwgdG9Ob2RlKHZhbHVlKSk7Cit9CisKKyNlbmRp
ZgorCiBKU1ZhbHVlIEpTVGVzdEludGVyZmFjZTo6Z2V0Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBl
eGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogewogICAgIHJldHVybiBnZXRET01D
b25zdHJ1Y3RvcjxKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rvcj4oZXhlYywgc3RhdGljX2Nhc3Q8
SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNl
LmgJKHJldmlzaW9uIDEwODQyMCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuaAkod29ya2luZyBjb3B5KQpAQCAtMTU5LDYgKzE1OSw4
IEBAIEpTQzo6SlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWwKIHZvaWQgc2V0SlNU
ZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmpl
Y3QqLCBKU0M6OkpTVmFsdWUpOwogSlNDOjpKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVN1cHBsZW1l
bnRhbFN0cjMoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6SWRlbnRp
ZmllciYpOwogdm9pZCBzZXRKU1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIzKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6SlNWYWx1ZSk7CitKU0M6OkpTVmFsdWUganNU
ZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsTm9kZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1
ZSwgY29uc3QgSlNDOjpJZGVudGlmaWVyJik7Cit2b2lkIHNldEpTVGVzdEludGVyZmFjZVN1cHBs
ZW1lbnRhbE5vZGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpKU1ZhbHVl
KTsKIEpTQzo6SlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpJZGVudGlmaWVyJik7CiAvLyBDb25zdGFudHMK
IApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVz
dEludGVyZmFjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9PYmpDL0RPTVRlc3RJbnRlcmZhY2UuaAkocmV2aXNpb24gMTA4NDIwKQorKysgU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdEludGVyZmFjZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBXRUJLSVRfVkVSU0lPTl9N
QVhfQUxMT1dFRCA+PSBXRUJLSVRfVkVSU0lPTl9MQVRFU1QKIAorQGNsYXNzIERPTU5vZGU7CiBA
Y2xhc3MgRE9NVGVzdE9iajsKIEBjbGFzcyBOU1N0cmluZzsKIApAQCAtNTMsNiArNTQsMTAgQEAg
ZW51bSB7CiAtIChOU1N0cmluZyAqKXN1cHBsZW1lbnRhbFN0cjM7CiAtICh2b2lkKXNldFN1cHBs
ZW1lbnRhbFN0cjM6KE5TU3RyaW5nICopbmV3U3VwcGxlbWVudGFsU3RyMzsKICNlbmRpZgorI2lm
IEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQorLSAoRE9NTm9kZSAq
KXN1cHBsZW1lbnRhbE5vZGU7CistICh2b2lkKXNldFN1cHBsZW1lbnRhbE5vZGU6KERPTU5vZGUg
KiluZXdTdXBwbGVtZW50YWxOb2RlOworI2VuZGlmCiAtICh2b2lkKXN1cHBsZW1lbnRhbE1ldGhv
ZDE7CiAtIChET01UZXN0T2JqICopc3VwcGxlbWVudGFsTWV0aG9kMjooTlNTdHJpbmcgKilzdHJB
cmcgb2JqQXJnOihET01UZXN0T2JqICopb2JqQXJnOwogLSAodm9pZClzdXBwbGVtZW50YWxNZXRo
b2QzOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9N
VGVzdEludGVyZmFjZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0SW50ZXJmYWNlLm1tCShyZXZpc2lvbiAxMDg0MjApCisr
KyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0SW50ZXJm
YWNlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00Myw2ICs0Myw3IEBACiAjaW1wb3J0ICJFeGNlcHRp
b25IYW5kbGVycy5oIgogI2ltcG9ydCAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCiAjaW1wb3J0
ICJLVVJMLmgiCisjaW1wb3J0ICJOb2RlLmgiCiAjaW1wb3J0ICJUZXN0SW50ZXJmYWNlLmgiCiAj
aW1wb3J0ICJUZXN0T2JqLmgiCiAjaW1wb3J0ICJUZXN0U3VwcGxlbWVudGFsLmgiCkBAIC0xMDgs
NiArMTA5LDIyIEBAIC0gKHZvaWQpc2V0U3VwcGxlbWVudGFsU3RyMzooTlNTdHJpbmcgKikKIH0K
ICNlbmRpZgogCisjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIp
CistIChET01Ob2RlICopc3VwcGxlbWVudGFsTm9kZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4ga2l0KFdURjo6Z2V0UHRyKFRlc3RTdXBw
bGVtZW50YWw6OnN1cHBsZW1lbnRhbE5vZGUoSU1QTCkpKTsKK30KKworLSAodm9pZClzZXRTdXBw
bGVtZW50YWxOb2RlOihET01Ob2RlICopbmV3U3VwcGxlbWVudGFsTm9kZQoreworICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBBU1NFUlQobmV3U3VwcGxlbWVu
dGFsTm9kZSk7CisKKyAgICBUZXN0U3VwcGxlbWVudGFsOjpzZXRTdXBwbGVtZW50YWxOb2RlKElN
UEwsIGNvcmUobmV3U3VwcGxlbWVudGFsTm9kZSkpOworfQorI2VuZGlmCisKIAogI2lmIEVOQUJM
RShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQogLSAodm9pZClzdXBwbGVtZW50
YWxNZXRob2QxCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgv
VjhUZXN0SW50ZXJmYWNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0SW50ZXJmYWNlLmNwcAkocmV2aXNpb24gMTA4NDIwKQor
KysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEludGVyZmFj
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJWOEJpbmRp
bmdTdGF0ZS5oIgogI2luY2x1ZGUgIlY4RE9NV3JhcHBlci5oIgogI2luY2x1ZGUgIlY4SXNvbGF0
ZWRDb250ZXh0LmgiCisjaW5jbHVkZSAiVjhOb2RlLmgiCiAjaW5jbHVkZSAiVjhQcm94eS5oIgog
I2luY2x1ZGUgIlY4VGVzdE9iai5oIgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KQEAgLTgzLDYg
Kzg0LDMwIEBAIHN0YXRpYyB2b2lkIHN1cHBsZW1lbnRhbFN0cjJBdHRyU2V0dGVyKHYKIAogI2lm
IEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQogCitzdGF0aWMgdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IHN1cHBsZW1lbnRhbE5vZGVBdHRyR2V0dGVyKHY4OjpMb2NhbDx2
ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQoreworICAgIElO
Q19TVEFUUygiRE9NLlRlc3RJbnRlcmZhY2Uuc3VwcGxlbWVudGFsTm9kZS5fZ2V0Iik7CisgICAg
VGVzdEludGVyZmFjZSogaW1wID0gVjhUZXN0SW50ZXJmYWNlOjp0b05hdGl2ZShpbmZvLkhvbGRl
cigpKTsKKyAgICByZXR1cm4gdG9WOChUZXN0U3VwcGxlbWVudGFsOjpzdXBwbGVtZW50YWxOb2Rl
KGltcCkpOworfQorCisjZW5kaWYgLy8gRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29u
ZGl0aW9uMTIpCisKKyNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24x
MikKKworc3RhdGljIHZvaWQgc3VwcGxlbWVudGFsTm9kZUF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4
OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBjb25zdCB2ODo6QWNj
ZXNzb3JJbmZvJiBpbmZvKQoreworICAgIElOQ19TVEFUUygiRE9NLlRlc3RJbnRlcmZhY2Uuc3Vw
cGxlbWVudGFsTm9kZS5fc2V0Iik7CisgICAgVGVzdEludGVyZmFjZSogaW1wID0gVjhUZXN0SW50
ZXJmYWNlOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKKyAgICBOb2RlKiB2ID0gVjhOb2RlOjpI
YXNJbnN0YW5jZSh2YWx1ZSkgPyBWOE5vZGU6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVj
dD46OkNhc3QodmFsdWUpKSA6IDA7CisgICAgVGVzdFN1cHBsZW1lbnRhbDo6c2V0U3VwcGxlbWVu
dGFsTm9kZShpbXAsIFdURjo6Z2V0UHRyKHYpKTsKKyAgICByZXR1cm47Cit9CisKKyNlbmRpZiAv
LyBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKKworI2lmIEVOQUJM
RShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQorCiBzdGF0aWMgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IHN1cHBsZW1lbnRhbE1ldGhvZDFDYWxsYmFjayhjb25zdCB2ODo6QXJndW1l
bnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUygiRE9NLlRlc3RJbnRlcmZhY2Uuc3VwcGxlbWVu
dGFsTWV0aG9kMSIpOwpAQCAtMTM1LDYgKzE2MCwxMCBAQCBzdGF0aWMgY29uc3QgQmF0Y2hlZEF0
dHJpYnV0ZSBUZXN0SW50ZXJmCiAgICAgLy8gQXR0cmlidXRlICdzdXBwbGVtZW50YWxTdHIzJyAo
VHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJ0N1c3RvbVNldHRlciBDdXN0b21HZXR0ZXIgQ29u
ZGl0aW9uYWwgSW1wbGVtZW50ZWRCeScpCiAgICAgeyJzdXBwbGVtZW50YWxTdHIzIiwgVjhUZXN0
SW50ZXJmYWNlOjpzdXBwbGVtZW50YWxTdHIzQWNjZXNzb3JHZXR0ZXIsIFY4VGVzdEludGVyZmFj
ZTo6c3VwcGxlbWVudGFsU3RyM0FjY2Vzc29yU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRp
Y19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQ
cm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKICNlbmRp
ZiAvLyBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKKyNpZiBFTkFC
TEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKKyAgICAvLyBBdHRyaWJ1dGUg
J3N1cHBsZW1lbnRhbE5vZGUnIChUeXBlOiAnYXR0cmlidXRlJyBFeHRBdHRyOiAnQ29uZGl0aW9u
YWwgSW1wbGVtZW50ZWRCeScpCisgICAgeyJzdXBwbGVtZW50YWxOb2RlIiwgVGVzdEludGVyZmFj
ZUludGVybmFsOjpzdXBwbGVtZW50YWxOb2RlQXR0ckdldHRlciwgVGVzdEludGVyZmFjZUludGVy
bmFsOjpzdXBwbGVtZW50YWxOb2RlQXR0clNldHRlciwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNf
Y2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJv
cGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCisjZW5kaWYg
Ly8gRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCiB9OwogCiBzdGF0
aWMgY29uc3QgQmF0Y2hlZENhbGxiYWNrIFRlc3RJbnRlcmZhY2VDYWxsYmFja3NbXSA9IHsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAkocmV2aXNpb24gMTA4NDIwKQor
KysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjQzOSw4ICsyNDM5LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y2xvc2VBbmRSZW1vdmVDaGls
ZChGcgogICAgIGNoaWxkLT5zZXRWaWV3KDApOwogICAgIGlmIChjaGlsZC0+b3duZXJFbGVtZW50
KCkgJiYgY2hpbGQtPnBhZ2UoKSkKICAgICAgICAgY2hpbGQtPnBhZ2UoKS0+ZGVjcmVtZW50RnJh
bWVDb3VudCgpOwotICAgIC8vIEZJWE1FOiBUaGUgcGFnZSBpc24ndCBiZWluZyBkZXN0cm95ZWQs
IHNvIGl0J3Mgbm90IHJpZ2h0IHRvIGNhbGwgYSBmdW5jdGlvbiBuYW1lZCBwYWdlRGVzdHJveWVk
KCkuCi0gICAgY2hpbGQtPnBhZ2VEZXN0cm95ZWQoKTsKKyAgICBjaGlsZC0+ZGV0YWNoRnJvbVBh
Z2UoKTsKIAogICAgIG1fZnJhbWUtPnRyZWUoKS0+cmVtb3ZlQ2hpbGQoY2hpbGQpOwogfQpAQCAt
MjUxOCw4ICsyNTE3LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6ZGV0YWNoRnJvbVBhcmVudCgpCiAg
ICAgICAgIHBhcmVudC0+bG9hZGVyKCktPnNjaGVkdWxlQ2hlY2tDb21wbGV0ZWQoKTsKICAgICB9
IGVsc2UgewogICAgICAgICBtX2ZyYW1lLT5zZXRWaWV3KDApOwotICAgICAgICAvLyBGSVhNRTog
VGhlIHBhZ2UgaXNuJ3QgYmVpbmcgZGVzdHJveWVkLCBzbyBpdCdzIG5vdCByaWdodCB0byBjYWxs
IGEgZnVuY3Rpb24gbmFtZWQgcGFnZURlc3Ryb3llZCgpLgotICAgICAgICBtX2ZyYW1lLT5wYWdl
RGVzdHJveWVkKCk7CisgICAgICAgIG1fZnJhbWUtPmRldGFjaEZyb21QYWdlKCk7CiAgICAgfQog
fQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCShyZXZpc2lvbiAxMDg0MjApCisr
KyBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4
MCw2ICs0ODAsMjEgQEAgdm9pZCBET01XaW5kb3c6OmZyYW1lRGVzdHJveWVkKCkKICAgICBjbGVh
cigpOwogfQogCit2b2lkIERPTVdpbmRvdzo6d2lsbERldGFjaFBhZ2UoKQoreworICAgIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVXaW5kb3dEaXNjYXJkZWQobV9mcmFtZSwgdGhpcyk7
CisKKyNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKKyAgICAvLyBDbGVhcmluZyBOb3RpZmljYXRp
b25zIHJlcXVlc3RzIGludm9sdmVzIGFjY2Vzc2luZyB0aGUgY2xpZW50IHNvIGl0IG11c3QgYmUg
ZG9uZQorICAgIC8vIGJlZm9yZSB0aGUgZnJhbWUgaXMgZGV0YWNoZWQuCisgICAgcmVzZXROb3Rp
ZmljYXRpb25zKCk7CisjZW5kaWYKKworICAgIEhhc2hTZXQ8RE9NV2luZG93UHJvcGVydHkqPjo6
aXRlcmF0b3Igc3RvcCA9IG1fcHJvcGVydGllcy5lbmQoKTsKKyAgICBmb3IgKEhhc2hTZXQ8RE9N
V2luZG93UHJvcGVydHkqPjo6aXRlcmF0b3IgaXQgPSBtX3Byb3BlcnRpZXMuYmVnaW4oKTsgaXQg
IT0gc3RvcDsgKytpdCkKKyAgICAgICAgKCppdCktPndpbGxEZXRhY2hQYWdlKCk7Cit9CisKIHZv
aWQgRE9NV2luZG93OjpyZWdpc3RlclByb3BlcnR5KERPTVdpbmRvd1Byb3BlcnR5KiBwcm9wZXJ0
eSkKIHsKICAgICBtX3Byb3BlcnRpZXMuYWRkKHByb3BlcnR5KTsKQEAgLTczMSwyMyArNzQ2LDYg
QEAgdm9pZCBET01XaW5kb3c6OnJlc2V0Tm90aWZpY2F0aW9ucygpCiB9CiAjZW5kaWYKIAotdm9p
ZCBET01XaW5kb3c6OnBhZ2VEZXN0cm95ZWQoKQotewotICAgIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZnJhbWVXaW5kb3dEaXNjYXJkZWQobV9mcmFtZSwgdGhpcyk7Ci0jaWYgRU5BQkxFKE5P
VElGSUNBVElPTlMpCi0gICAgLy8gQ2xlYXJpbmcgTm90aWZpY2F0aW9ucyByZXF1ZXN0cyBpbnZv
bHZlcyBhY2Nlc3NpbmcgdGhlIGNsaWVudCBzbyBpdCBtdXN0IGJlIGRvbmUKLSAgICAvLyBiZWZv
cmUgdGhlIGZyYW1lIGlzIGRldGFjaGVkLgotICAgIHJlc2V0Tm90aWZpY2F0aW9ucygpOwotI2Vu
ZGlmCi19Ci0KLXZvaWQgRE9NV2luZG93OjpyZXNldEdlb2xvY2F0aW9uKCkKLXsKLSAgICAvLyBH
ZW9sb2NhdGlvbiBzaG91bGQgY2FuY2VsIGFjdGl2aXRpZXMgYW5kIHBlcm1pc3Npb24gcmVxdWVz
dHMgd2hlbiB0aGUgcGFnZSBpcyBkZXRhY2hlZC4KLSAgICBpZiAobV9uYXZpZ2F0b3IpCi0gICAg
ICAgIG1fbmF2aWdhdG9yLT5yZXNldEdlb2xvY2F0aW9uKCk7Ci19Ci0KICNpZiBFTkFCTEUoSU5E
RVhFRF9EQVRBQkFTRSkKIHZvaWQgRE9NV2luZG93OjpzZXRJREJGYWN0b3J5KFBhc3NSZWZQdHI8
SURCRmFjdG9yeT4gaWRiRmFjdG9yeSkKIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAko
cmV2aXNpb24gMTA4NDIwKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAkod29y
a2luZyBjb3B5KQpAQCAtOTIsOCArOTIsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAg
ICAgdmlydHVhbCBET01XaW5kb3cqIHRvRE9NV2luZG93KCk7CiAKLSAgICAgICAgdmlydHVhbCB2
b2lkIGZyYW1lRGVzdHJveWVkKCkgT1ZFUlJJREU7Ci0KICAgICAgICAgdm9pZCByZWdpc3RlclBy
b3BlcnR5KERPTVdpbmRvd1Byb3BlcnR5Kik7CiAgICAgICAgIHZvaWQgdW5yZWdpc3RlclByb3Bl
cnR5KERPTVdpbmRvd1Byb3BlcnR5Kik7CiAKQEAgLTIzMSw5ICsyMjksNiBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgIHZvaWQgcHJpbnRFcnJvck1lc3NhZ2UoY29uc3QgU3RyaW5nJik7
CiAgICAgICAgIFN0cmluZyBjcm9zc0RvbWFpbkFjY2Vzc0Vycm9yTWVzc2FnZShET01XaW5kb3cq
IGFjdGl2ZVdpbmRvdyk7CiAKLSAgICAgICAgdm9pZCBwYWdlRGVzdHJveWVkKCk7Ci0gICAgICAg
IHZvaWQgcmVzZXRHZW9sb2NhdGlvbigpOwotCiAgICAgICAgIHZvaWQgcG9zdE1lc3NhZ2UoUGFz
c1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1lc3NhZ2UsIGNvbnN0IE1lc3NhZ2VQb3J0
QXJyYXkqLCBjb25zdCBTdHJpbmcmIHRhcmdldE9yaWdpbiwgRE9NV2luZG93KiBzb3VyY2UsIEV4
Y2VwdGlvbkNvZGUmKTsKICAgICAgICAgLy8gRklYTUU6IHJlbW92ZSB0aGlzIHdoZW4gd2UgdXBk
YXRlIHRoZSBPYmpDIGJpbmRpbmdzIChidWcgIzI4Nzc0KS4KICAgICAgICAgdm9pZCBwb3N0TWVz
c2FnZShQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbWVzc2FnZSwgTWVzc2FnZVBv
cnQqLCBjb25zdCBTdHJpbmcmIHRhcmdldE9yaWdpbiwgRE9NV2luZG93KiBzb3VyY2UsIEV4Y2Vw
dGlvbkNvZGUmKTsKQEAgLTQxOSw2ICs0MTQsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
cHJpdmF0ZToKICAgICAgICAgZXhwbGljaXQgRE9NV2luZG93KEZyYW1lKik7CiAKKyAgICAgICAg
dmlydHVhbCB2b2lkIGZyYW1lRGVzdHJveWVkKCkgT1ZFUlJJREU7CisgICAgICAgIHZpcnR1YWwg
dm9pZCB3aWxsRGV0YWNoUGFnZSgpIE9WRVJSSURFOworCiAgICAgICAgIHZpcnR1YWwgdm9pZCBy
ZWZFdmVudFRhcmdldCgpIHsgcmVmKCk7IH0KICAgICAgICAgdmlydHVhbCB2b2lkIGRlcmVmRXZl
bnRUYXJnZXQoKSB7IGRlcmVmKCk7IH0KICAgICAgICAgdmlydHVhbCBFdmVudFRhcmdldERhdGEq
IGV2ZW50VGFyZ2V0RGF0YSgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3dQ
cm9wZXJ0eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3dQ
cm9wZXJ0eS5jcHAJKHJldmlzaW9uIDEwODQyMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93UHJvcGVydHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OSw0ICs0OSw5IEBAIHZvaWQg
RE9NV2luZG93UHJvcGVydHk6OmRpc2Nvbm5lY3RGcmFtZSgKICAgICBtX2ZyYW1lID0gMDsKIH0K
IAordm9pZCBET01XaW5kb3dQcm9wZXJ0eTo6d2lsbERldGFjaFBhZ2UoKQoreworICAgIC8vIFN1
YmNsYXNzZXMgc2hvdWxkIG92ZXJyaWRlIHRoaXMgZnVuY3Rpb24gdG8gaGFuZGxlIHRoaXMgbm90
aWZpY2F0aW9uLgorfQorCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd1By
b3BlcnR5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3dQcm9w
ZXJ0eS5oCShyZXZpc2lvbiAxMDg0MjApCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
d1Byb3BlcnR5LmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDkgQEAgY2xhc3MgRnJhbWU7
CiBjbGFzcyBET01XaW5kb3dQcm9wZXJ0eSB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgRE9NV2lu
ZG93UHJvcGVydHkoRnJhbWUqKTsKKwogICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0RnJhbWUo
KTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbERldGFjaFBhZ2UoKTsKIAogICAgIEZyYW1lKiBmcmFt
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWU7IH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAJ
KHJldmlzaW9uIDEwODQyMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC02NjAsMjEgKzY2MCwxOSBAQCBET01XaW5kb3cqIEZyYW1lOjpkb21XaW5k
b3coKSBjb25zdAogICAgIHJldHVybiBtX2RvbVdpbmRvdy5nZXQoKTsKIH0KIAotdm9pZCBGcmFt
ZTo6cGFnZURlc3Ryb3llZCgpCit2b2lkIEZyYW1lOjp3aWxsRGV0YWNoUGFnZSgpCiB7Ci0gICAg
Ly8gRklYTUU6IFJlbmFtZSB0aGlzIGZ1bmN0aW9uLCBzaW5jZSBpdCdzIGNhbGxlZCBub3Qgb25s
eSBmcm9tIFBhZ2UgZGVzdHJ1Y3RvciwgYnV0IGluIHNldmVyYWwgb3RoZXIgY2FzZXMuCi0gICAg
Ly8gVGhpcyBjbGVhbnVwIGlzIG5lZWRlZCB3aGVuZXZlciB3ZSByZW1vdmUgYSBmcmFtZSBmcm9t
IHBhZ2UuCi0KICAgICBpZiAoRnJhbWUqIHBhcmVudCA9IHRyZWUoKS0+cGFyZW50KCkpCiAgICAg
ICAgIHBhcmVudC0+bG9hZGVyKCktPmNoZWNrTG9hZENvbXBsZXRlKCk7CiAKLSAgICBpZiAobV9k
b21XaW5kb3cpIHsKLSAgICAgICAgbV9kb21XaW5kb3ctPnJlc2V0R2VvbG9jYXRpb24oKTsKICNp
ZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKKyAgICBpZiAobV9kb21XaW5kb3cpCiAgICAgICAgIG1f
ZG9tV2luZG93LT5yZXNldE5vdGlmaWNhdGlvbnMoKTsKICNlbmRpZgotICAgICAgICBtX2RvbVdp
bmRvdy0+cGFnZURlc3Ryb3llZCgpOwotICAgIH0KKworICAgIEhhc2hTZXQ8RnJhbWVEZXN0cnVj
dGlvbk9ic2VydmVyKj46Oml0ZXJhdG9yIHN0b3AgPSBtX2Rlc3RydWN0aW9uT2JzZXJ2ZXJzLmVu
ZCgpOworICAgIGZvciAoSGFzaFNldDxGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIqPjo6aXRlcmF0
b3IgaXQgPSBtX2Rlc3RydWN0aW9uT2JzZXJ2ZXJzLmJlZ2luKCk7IGl0ICE9IHN0b3A7ICsraXQp
CisgICAgICAgICgqaXQpLT53aWxsRGV0YWNoUGFnZSgpOwogCiAgICAgLy8gRklYTUU6IEl0J3Mg
dW5jbGVhciBhcyB0byB3aHkgdGhpcyBpcyBjYWxsZWQgbW9yZSB0aGFuIG9uY2UsIGJ1dCBpdCBp
cywKICAgICAvLyBzbyBwYWdlKCkgY291bGQgYmUgTlVMTC4KQEAgLTY4Myw4ICs2ODEsNiBAQCB2
b2lkIEZyYW1lOjpwYWdlRGVzdHJveWVkKCkKIAogICAgIHNjcmlwdCgpLT5jbGVhclNjcmlwdE9i
amVjdHMoKTsKICAgICBzY3JpcHQoKS0+dXBkYXRlUGxhdGZvcm1TY3JpcHRPYmplY3RzKCk7Ci0K
LSAgICBkZXRhY2hGcm9tUGFnZSgpOwogfQogCiB2b2lkIEZyYW1lOjpkaXNjb25uZWN0T3duZXJF
bGVtZW50KCkKQEAgLTcxOCwxNyArNzE0LDE2IEBAIHZvaWQgRnJhbWU6OnRyYW5zZmVyQ2hpbGRG
cmFtZVRvTmV3RG9jdW0KICAgICAgICAgICAgICBtX3BhZ2UtPmRlY3JlbWVudEZyYW1lQ291bnQo
KTsKICAgICAgICAgfQogCi0gICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgaWRlYWxseSBhbGxv
dyBleGlzdGluZyBHZW9sb2NhdGlvbiBhY3Rpdml0aWVzIHRvIGNvbnRpbnVlCi0gICAgICAgIC8v
IHdoZW4gdGhlIEdlb2xvY2F0aW9uJ3MgaWZyYW1lIGlzIHJlcGFyZW50ZWQuCi0gICAgICAgIC8v
IFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTU1NzcKLSAgICAg
ICAgLy8gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01Mjg3Nwog
ICAgICAgICBpZiAobV9kb21XaW5kb3cpIHsKLSAgICAgICAgICAgIG1fZG9tV2luZG93LT5yZXNl
dEdlb2xvY2F0aW9uKCk7CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCiAgICAgICAgICAgICBt
X2RvbVdpbmRvdy0+cmVzZXROb3RpZmljYXRpb25zKCk7CiAjZW5kaWYKICAgICAgICAgfQogCisg
ICAgICAgIEhhc2hTZXQ8RnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyKj46Oml0ZXJhdG9yIHN0b3Ag
PSBtX2Rlc3RydWN0aW9uT2JzZXJ2ZXJzLmVuZCgpOworICAgICAgICBmb3IgKEhhc2hTZXQ8RnJh
bWVEZXN0cnVjdGlvbk9ic2VydmVyKj46Oml0ZXJhdG9yIGl0ID0gbV9kZXN0cnVjdGlvbk9ic2Vy
dmVycy5iZWdpbigpOyBpdCAhPSBzdG9wOyArK2l0KQorICAgICAgICAgICAgKCppdCktPndpbGxE
ZXRhY2hQYWdlKCk7CisKICAgICAgICAgbV9wYWdlID0gbmV3UGFnZTsKIAogICAgICAgICBpZiAo
bmV3UGFnZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgJKHJldmlzaW9uIDEwODQyMCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaAkod29ya2luZyBjb3B5KQpAQCAtODksOCArODksOCBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgYWRkRGVzdHJ1Y3Rpb25PYnNlcnZlcihG
cmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIqKTsKICAgICAgICAgdm9pZCByZW1vdmVEZXN0cnVjdGlv
bk9ic2VydmVyKEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlciopOwogCisgICAgICAgIHZvaWQgd2ls
bERldGFjaFBhZ2UoKTsKICAgICAgICAgdm9pZCBkZXRhY2hGcm9tUGFnZSgpOwotICAgICAgICB2
b2lkIHBhZ2VEZXN0cm95ZWQoKTsKICAgICAgICAgdm9pZCBkaXNjb25uZWN0T3duZXJFbGVtZW50
KCk7CiAKICAgICAgICAgUGFnZSogcGFnZSgpIGNvbnN0OwpAQCAtMzQ4LDYgKzM0OCw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGlubGluZSB2b2lkIEZyYW1lOjpkZXRhY2hGcm9tUGFn
ZSgpCiAgICAgeworICAgICAgICB3aWxsRGV0YWNoUGFnZSgpOwogICAgICAgICBtX3BhZ2UgPSAw
OwogICAgIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZURlc3RydWN0aW9uT2Jz
ZXJ2ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVEZXN0cnVj
dGlvbk9ic2VydmVyLmNwcAkocmV2aXNpb24gMTA4NDIwKQorKysgU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OCw0ICs1
OCw5IEBAIHZvaWQgRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyOjpmcmFtZURlc3QKICAgICBtX2Zy
YW1lID0gMDsKIH0KIAordm9pZCBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXI6OndpbGxEZXRhY2hQ
YWdlKCkKK3sKKyAgICAvLyBTdWJjbGFzc2VzIHNob3VsZCBvdmVycmlkZSB0aGlzIGZ1bmN0aW9u
IHRvIGhhbmRsZSB0aGlzIG5vdGlmaWNhdGlvbi4KK30KKwogfQpJbmRleDogU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlci5oCShyZXZpc2lvbiAxMDg0MjAp
CisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMyw3ICszMywxMCBAQCBjbGFzcyBGcmFtZTsKIGNsYXNzIEZyYW1lRGVz
dHJ1Y3Rpb25PYnNlcnZlciB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgRnJhbWVEZXN0cnVjdGlv
bk9ic2VydmVyKEZyYW1lKik7CisKICAgICB2aXJ0dWFsIHZvaWQgZnJhbWVEZXN0cm95ZWQoKTsK
KyAgICB2aXJ0dWFsIHZvaWQgd2lsbERldGFjaFBhZ2UoKTsKKwogICAgIEZyYW1lKiBmcmFtZSgp
IGNvbnN0IHsgcmV0dXJuIG1fZnJhbWU7IH0KIAogcHJvdGVjdGVkOgpJbmRleDogU291cmNlL1dl
YkNvcmUvcGFnZS9OYXZpZ2F0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvTmF2aWdhdG9yLmNwcAkocmV2aXNpb24gMTA4NDIwKQorKysgU291cmNlL1dlYkNvcmUvcGFn
ZS9OYXZpZ2F0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NywxMiArNjcsNiBAQCBOYXZpZ2F0
b3JTdXBwbGVtZW50KiBOYXZpZ2F0b3I6OnJlcXVpcmVTCiAgICAgcmV0dXJuIG1fc3VwcGxpbWVu
dHMuZ2V0KG5hbWUuaW1wbCgpKTsKIH0KIAotdm9pZCBOYXZpZ2F0b3I6OnJlc2V0R2VvbG9jYXRp
b24oKQotewotICAgIGlmIChtX2dlb2xvY2F0aW9uKQotICAgICAgICBtX2dlb2xvY2F0aW9uLT5y
ZXNldCgpOwotfQotCiAvLyBJZiB0aGlzIGZ1bmN0aW9uIHJldHVybnMgdHJ1ZSwgd2UgbmVlZCB0
byBoaWRlIHRoZSBzdWJzdHJpbmcgIjQuIiB0aGF0IHdvdWxkIG90aGVyd2lzZQogLy8gYXBwZWFy
IGluIHRoZSBhcHBWZXJzaW9uIHN0cmluZy4gVGhpcyBpcyB0byBhdm9pZCBwcm9ibGVtcyB3aXRo
IG9sZCB2ZXJzaW9ucyBvZiBhCiAvLyBsaWJyYXJ5IGNhbGxlZCBPcGVuQ3ViZSBRdWlja01lbnUs
IHdoaWNoIGFzIG9mIHRoaXMgd3JpdGluZyBpcyBzdGlsbCBiZWluZyB1c2VkIG9uCkBAIC0xNTEs
MTMgKzE0NSw2IEBAIGJvb2wgTmF2aWdhdG9yOjpqYXZhRW5hYmxlZCgpIGNvbnN0CiAgICAgcmV0
dXJuIG1fZnJhbWUtPnNldHRpbmdzKCktPmlzSmF2YUVuYWJsZWQoKTsKIH0KIAotR2VvbG9jYXRp
b24qIE5hdmlnYXRvcjo6Z2VvbG9jYXRpb24oKSBjb25zdAotewotICAgIGlmICghbV9nZW9sb2Nh
dGlvbikKLSAgICAgICAgbV9nZW9sb2NhdGlvbiA9IEdlb2xvY2F0aW9uOjpjcmVhdGUobV9mcmFt
ZSk7Ci0gICAgcmV0dXJuIG1fZ2VvbG9jYXRpb24uZ2V0KCk7Ci19Ci0KICNpZiBFTkFCTEUoUE9J
TlRFUl9MT0NLKQogUG9pbnRlckxvY2sqIE5hdmlnYXRvcjo6d2Via2l0UG9pbnRlcigpIGNvbnN0
CiB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmgJKHJldmlzaW9uIDEwODQyMCkKKysrIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0
LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRE9NTWltZVR5cGVBcnJheTsKIGNsYXNz
IERPTVBsdWdpbkFycmF5OwogY2xhc3MgRnJhbWU7Ci1jbGFzcyBHZW9sb2NhdGlvbjsKIGNsYXNz
IFBvaW50ZXJMb2NrOwogY2xhc3MgUGx1Z2luRGF0YTsKIApAQCAtNDUsOCArNDQsNiBAQCBwdWJs
aWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8TmF2aWdhdG9yPiBjcmVhdGUoRnJhbWUqIGZyYW1l
KSB7IHJldHVybiBhZG9wdFJlZihuZXcgTmF2aWdhdG9yKGZyYW1lKSk7IH0KICAgICB2aXJ0dWFs
IH5OYXZpZ2F0b3IoKTsKIAotICAgIHZvaWQgcmVzZXRHZW9sb2NhdGlvbigpOwotCiAgICAgU3Ry
aW5nIGFwcFZlcnNpb24oKSBjb25zdDsKICAgICBTdHJpbmcgbGFuZ3VhZ2UoKSBjb25zdDsKICAg
ICBET01QbHVnaW5BcnJheSogcGx1Z2lucygpIGNvbnN0OwpAQCAtNTYsOCArNTMsNiBAQCBwdWJs
aWM6CiAKICAgICB2aXJ0dWFsIFN0cmluZyB1c2VyQWdlbnQoKSBjb25zdDsKIAotICAgIEdlb2xv
Y2F0aW9uKiBnZW9sb2NhdGlvbigpIGNvbnN0OwotCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykK
ICAgICBQb2ludGVyTG9jayogd2Via2l0UG9pbnRlcigpIGNvbnN0OwogI2VuZGlmCkBAIC04MCw3
ICs3NSw2IEBAIHByaXZhdGU6CiAKICAgICBtdXRhYmxlIFJlZlB0cjxET01QbHVnaW5BcnJheT4g
bV9wbHVnaW5zOwogICAgIG11dGFibGUgUmVmUHRyPERPTU1pbWVUeXBlQXJyYXk+IG1fbWltZVR5
cGVzOwotICAgIG11dGFibGUgUmVmUHRyPEdlb2xvY2F0aW9uPiBtX2dlb2xvY2F0aW9uOwogI2lm
IEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgbXV0YWJsZSBSZWZQdHI8UG9pbnRlckxvY2s+IG1f
cG9pbnRlcjsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuaWRs
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmlkbAkocmV2aXNp
b24gMTA4NDIwKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuaWRsCSh3b3JraW5n
IGNvcHkpCkBAIC00MCwxMCArNDAsNiBAQCBtb2R1bGUgd2luZG93IHsKIAogICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgYm9vbGVhbiBvbkxpbmU7CiAKLSNpZiBkZWZpbmVkKEVOQUJMRV9HRU9M
T0NBVElPTikgJiYgRU5BQkxFX0dFT0xPQ0FUSU9OCi0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBbVjhFbmFibGVkQXRSdW50aW1lXSBHZW9sb2NhdGlvbiBnZW9sb2NhdGlvbjsKLSNlbmRpZgot
CiAjaWYgZGVmaW5lZChFTkFCTEVfUE9JTlRFUl9MT0NLKSAmJiBFTkFCTEVfUE9JTlRFUl9MT0NL
CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVjhFbmFibGVkQXRSdW50aW1lXSBQb2ludGVy
TG9jayB3ZWJraXRQb2ludGVyOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAJKHJldmlz
aW9uIDEwODQyMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTIwMCw3ICsyMDAsNyBAQCBQYWdlOjp+UGFnZSgpCiAgICAgYWxsUGFnZXMtPnJlbW92
ZSh0aGlzKTsKICAgICAKICAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IG1haW5GcmFtZSgpOyBmcmFt
ZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLT50cmF2ZXJzZU5leHQoKSkKLSAgICAgICAgZnJhbWUt
PnBhZ2VEZXN0cm95ZWQoKTsKKyAgICAgICAgZnJhbWUtPmRldGFjaEZyb21QYWdlKCk7CiAKICAg
ICBtX2VkaXRvckNsaWVudC0+cGFnZURlc3Ryb3llZCgpOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi93aW4vV2ViS2l0Mi5kZWYKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvd2luL1dlYktp
dDIuZGVmCShyZXZpc2lvbiAxMDg0MjApCisrKyBTb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5k
ZWYJKHdvcmtpbmcgY29weSkKQEAgLTIwMSwzICsyMDEsNCBAQCBFWFBPUlRTCiAgICAgICAgID91
cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHNARG9jdW1lbnRAV2ViQ29yZUBAUUFF
WFhaCiAgICAgICAgID91c2VyUHJlZmVycmVkTGFuZ3VhZ2VzQFdlYkNvcmVAQFlBP0FWPyRWZWN0
b3JAVlN0cmluZ0BXVEZAQCQwQUBAV1RGQEBYWgogICAgICAgICA/dmlld0BEb2N1bWVudEBXZWJD
b3JlQEBRQkVQQVZGcmFtZVZpZXdAMkBYWgorICAgICAgICA/d2lsbERldGFjaFBhZ2VARnJhbWVE
ZXN0cnVjdGlvbk9ic2VydmVyQFdlYkNvcmVAQFVBRVhYWgpJbmRleDogU291cmNlL2F1dG90b29s
cy9zeW1ib2xzLmZpbHRlcgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMu
ZmlsdGVyCShyZXZpc2lvbiAxMDg0MjApCisrKyBTb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmls
dGVyCSh3b3JraW5nIGNvcHkpCkBAIC05Niw2ICs5Niw3IEBAIF9aTjdXZWJDb3JlMjRGcmFtZURl
c3RydWN0aW9uT2JzZXJ2ZXJEMkUKIF9aTjdXZWJDb3JlMjRGcmFtZURlc3RydWN0aW9uT2JzZXJ2
ZXJDMkVQTlNfNUZyYW1lRTsKIF9aTjdXZWJDb3JlMjRGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIx
Mm9ic2VydmVGcmFtZUVQTlNfNUZyYW1lRTsKIF9aTjdXZWJDb3JlMjRGcmFtZURlc3RydWN0aW9u
T2JzZXJ2ZXIxNGZyYW1lRGVzdHJveWVkRXY7CitfWk43V2ViQ29yZTI0RnJhbWVEZXN0cnVjdGlv
bk9ic2VydmVyMTR3aWxsRGV0YWNoUGFnZUV2OwogX1pON1dlYkNvcmUyMlJ1bnRpbWVFbmFibGVk
RmVhdHVyZXMzMWlzTXVsdGlwbGVTaGFkb3dTdWJ0cmVlc0VuYWJsZWRFOwogbG9jYWw6CiBfWio7
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>